# mvc-php-mysql **Repository Path**: yaoyifei/mvc-php-mysql ## Basic Information - **Project Name**: mvc-php-mysql - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-05-26 - **Last Updated**: 2025-05-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 以下是为你的 PHP MVC 框架编写的 README 文件,基于之前提供的 MVC 框架结构(包括路由系统、依赖注入容器、数据库连接、基础控制器、中间件等),并适配了 Nginx 服务器的配置。README 提供了项目的概述、安装步骤、使用说明和基本结构,旨在帮助开发者快速上手。 PHP MVC Framework 一个轻量级、模块化的 PHP MVC 框架,旨在为小型到中型 Web 应用提供灵活、可扩展的开发基础。本框架支持路由、依赖注入、数据库操作、中间件和视图渲染,适合快速开发如博客、CMS 等项目。 功能特性 模块化路由:支持 GET、POST 等 HTTP 方法,易于扩展到动态路由。 依赖注入:通过容器管理类依赖,增强代码解耦。 数据库支持:使用 PDO 提供安全的数据库连接。 中间件:支持认证、CSRF 保护等请求预处理逻辑。 视图渲染:简单的 PHP 模板系统,可扩展到 Twig 等模板引擎。 Nginx 兼容:适配 Nginx 的 URL 重写配置,确保单一入口。 目录结构 project/ ├── app/ │ ├── Controllers/ # 控制器目录 │ │ └── BaseController.php │ ├── Core/ # 核心组件 │ │ ├── Router.php │ │ ├── Container.php │ │ └── Database.php │ ├── Middleware/ # 中间件 │ │ └── AuthMiddleware.php │ ├── Models/ # 模型目录 │ └── Views/ # 视图目录 │ └── test.php ├── config/ │ ├── app.php # 应用配置 │ └── database.php # 数据库配置 ├── public/ │ ├── index.php # 单一入口文件 │ ├── .htaccess # Apache URL 重写(可选) │ └── assets/ # 静态资源(CSS、JS、图片) ├── vendor/ # Composer 依赖 ├── composer.json # Composer 配置文件 └── README.md # 项目说明 安装 前置条件 PHP >= 7.4(推荐 8.1 或更高版本) Composer Nginx(或 Apache) MySQL(或其他 PDO 支持的数据库) 安装步骤 克隆项目或创建目录结构: bash git clone cd your_project 或手动创建上述目录结构。 安装 Composer 依赖: bash composer install 在 composer.json 中确保包含以下内容: json { "autoload": { "psr-4": { "App\\": "app/" } } } 运行 composer dump-autoload 生成自动加载文件。 配置数据库: 编辑 config/database.php,设置数据库连接信息: php 'localhost', 'dbname' => 'your_database_name', 'user' => 'your_username', 'pass' => 'your_password' ]; 配置 Nginx: 创建或编辑 Nginx 配置文件(例如 /etc/nginx/sites-available/your_project.conf): nginx server { listen 80; server_name localhost; # 替换为你的域名 root /var/www/your_project/public; index index.php index.html; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # 替换为你的 PHP-FPM 版本 fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.ht { deny all; } location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ { expires max; log_not_found off; } } 启用配置并重启 Nginx: bash sudo ln -s /etc/nginx/sites-available/your_project.conf /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginx 设置目录权限: 确保 public/ 目录可被 Web 服务器访问: bash sudo chmod -R 755 /var/www/your_project/public sudo chown -R www-data:www-data /var/www/your_project/public 运行项目: 使用 PHP 内置服务器进行测试: bash cd public php -S localhost:8000 或通过 Nginx 访问 http://localhost/。 使用说明 定义路由 在 public/index.php 中添加路由: php use App\Core\Router; Router::get('', function() { echo "Welcome to the MVC Framework!"; }); Router::get('test', ['App\Controllers\TestController', 'index'], ['App\Middleware\AuthMiddleware']); Router::post('test', ['App\Controllers\TestController', 'store']); 创建控制器 继承 BaseController 创建新控制器,例如 app/Controllers/TestController.php: php view('test', ['message' => 'Hello, MVC!']); } public function store() { echo "Handle POST request"; } } 创建视图 在 app/Views/test.php 中编写视图: php Test Page

添加中间件 在 app/Middleware/AuthMiddleware.php 中定义中间件逻辑: php db = (new Database())->getPdo(); } public function find($id) { $stmt = $this->db->prepare("SELECT * FROM users WHERE id = :id"); $stmt->execute(['id' => $id]); return $stmt->fetch(\PDO::FETCH_ASSOC); } } 扩展功能 动态路由:修改 Router.php 支持 /user/{id} 等动态参数。 模板引擎:集成 Twig 或 Blade: bash composer require twig/twig 日志:使用 Monolog 记录错误: bash composer require monolog/monolog 环境配置:使用 vlucas/phpdotenv 支持 .env 文件: bash composer require vlucas/phpdotenv 注意事项 安全性:确保在生产环境中启用 HTTPS,保护 cookie 和敏感数据。 错误调试:检查 Nginx 错误日志(/var/log/nginx/error.log)或 PHP 日志。 PHP-FPM:确认 fastcgi_pass 的 PHP-FPM socket 与你的 PHP 版本匹配。 贡献 欢迎提交 issue 或 pull request 以改进框架功能! 许可证 MIT License 说明: README 提供了项目的核心信息,包括目录结构、安装步骤和基本使用示例。 适配了 Nginx 环境,包含具体的配置文件示例。 提供了扩展功能的建议,方便开发者进一步完善框架。 如果你需要调整 README 的内容(例如添加具体功能说明或更改格式),请告诉我!