EZ2PHP 中文文档

  • ~2.53K 字
  • 次阅读
  • 条评论

🚀 EZ2PHP

An SUPER simple PHP Framework. > 专为“懒人”设计的轻量级 MVC 解决方案,拒绝反复复制粘贴。

—(本文档由AI优化过)

📖 简介

EZ2PHP 正如其名(Easy to PHP),是为了在处理中小型项目时,既能享受 MVC 模式的清晰结构,又不愿被庞大框架的复杂度困扰而诞生的。

✨ 项目特性

  • 极致轻量:仅包含目录结构、视图渲染和数据库控制,核心极简。
  • 高扩展性:采用原生 PHP 逻辑,方便根据需求进行二次开发。
  • 极简部署:只需简单的 Nginx 伪静态配置即可运行。
  • 简洁语法:支持基础的模板变量替换与循环。

🛠️ 开始使用

1. 安装与部署

你可以通过以下两种方式获取源码:

  • 方式一:使用 Git Clone 到本地。
    git clone https://github.com/ElythraDev/EZ2PHP.git
    
  • 方式二:直接下载源码解压至 Web 目录。

2. 环境配置

config.php 内,你可以配置环境类型及数据库连接信息:

// 设置环境类型: 'development' (开发) 或 'production' (生产)
if (!defined('ENVIRONMENT')) define('ENVIRONMENT', 'development');

3. 服务器部署 (Nginx)

为了让路由正常工作,需要将所有请求重写到 public/index.php。以下是参考配置:

server {
    listen 80;
    root "/your/site/root/public";
    index index.php;

    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }
}

📂 了解目录结构

EZ2PHP 的结构非常直观:

目录/文件 描述
/lib 存储核心 LIB 文件(如视图类等)
/pages 控制器:处理具体的页面业务逻辑
/public 访客入口及静态资源(JS/CSS/IMG)存放地
/templates 视图模板:HTML 结构文件
router.php 路由配置文件
config.php 全局配置文件

💡 提示/pages 默认缺省 404.php,你可以参照 sample.php 快速编写一个。


🚦 路由 (Routing)

router.php 中注册你的路由规则。目前主要支持 GET 请求。

静态路由

$router->get('/', function() {
    require __DIR__ . '/pages/sample.php';
});

动态参数路由

// 示例:匹配 /article/arc101.html
$router->get('/article/arc{id}.html', function($params) {
    $id = (int)$params['id']; // 获取路径中的参数
    require __DIR__ . '/pages/articleDisplay.php';
});

🎮 控制器 (Controller)

/pages/sample.php 为例,这是一个典型的控制器实现:

<?php
require __DIR__ . '/../config.php';   // 数据库连接
require __DIR__ . '/../lib/view.php'; // 视图渲染引擎

// 业务逻辑处理并渲染模板
$content = View::render(__DIR__ . '/../templates/sample.php', [
    'title' => 'EZ2PHP OKKKKKKKK!',
]);

echo $content;
?>

🎨 模板引擎 (Templates)

EZ2PHP 支持基础的变量替换和循环输出。

变量输出

在模板文件中使用 {变量名} 进行输出:

<h1>{title}</h1>
<p>Hello World! EZ2PHP is running.</p>

循环输出

支持与 PHP 语法高度相似的 foreach 循环:

{foreach items as item}
    <div class="card">
        <h3>{item.title}</h3>
        <p>{item.content}</p>
    </div>
{/foreach}

目前还没有像Smarty那样支持模板内的运算。


🗄️ 数据库操作

推荐使用 PDO 预处理方式以保证安全性:

$sql = 'SELECT * FROM article ORDER BY id DESC LIMIT ?, ?';
$stmt = $pdo->prepare($sql);
$stmt->execute([$offset, $itemsPerPage]);

$posts = $stmt->fetchAll(PDO::FETCH_ASSOC);

🤝 贡献与反馈

Code with love. 如果你在使用中遇到任何问题,欢迎通过 GitHub Issues 提出。


Maintained by Elythra

赞助喵
非常感谢您的喜欢!
赞助喵
分享这一刻
让朋友们也来瞅瞅!