# PHP (Laravel) 项目:内容管理系统 (CMS) ## 概述 使用 PHP 和 Laravel 构建一个功能齐全的 CMS,支持多角色用户、文章、页面管理和媒体库。 ## 功能需求 ### 1. 后台管理 (Admin) - **仪表盘**: `GET /admin/dashboard` - 显示网站统计信息。 - **用户管理**: `GET, POST, PUT, DELETE /admin/users` - 管理用户及角色(Admin, Editor, Author)。 - **角色权限管理**: (可选) `GET, POST /admin/roles` - 定义角色权限。 ### 2. 内容管理 - **文章管理**: `GET, POST, PUT, DELETE /admin/posts` - 使用富文本编辑器创建/编辑文章,支持分类、标签、特色图片和发布状态。作者/编辑有权限限制。 - **页面管理**: `GET, POST, PUT, DELETE /admin/pages` - 管理“关于我们”等静态页面。 - **媒体库**: `GET /admin/media` - 网格化显示和上传媒体文件,支持从编辑器调用。 ### 3. 前台显示 - **首页**: `GET /` - 显示最新文章列表。 - **详情页**: `GET /blog/{slug}` - 显示单篇文章。 - **静态页**: `GET /{slug}` - 显示静态页面。 - **分类/标签页**: `GET /category/{slug}`, `GET /tag/{slug}` - 显示该分类/标签下的文章。 ## 技术栈 - **语言**: PHP 8.1+ - **框架**: Laravel 10.x - **数据库**: MySQL 或 PostgreSQL - **前端**: Blade + Bootstrap 5 / Tailwind CSS - **认证**: Laravel Breeze - **授权**: Laravel Gates & Policies ## 项目结构 ``` /laravel-cms ├── app/ │ ├── Http/Controllers/ # Admin/ & Front/ 控制器 │ ├── Models/ # Eloquent 模型 (User, Post, Page, etc.) │ └── Policies/ # 授权策略 ├── database/ # Migrations, Factories, Seeders ├── resources/views/ # Blade 视图 (admin/, front/, layouts/) ├── routes/web.php # 路由定义 └── composer.json ``` ## 任务步骤 1. **初始化**: 创建 Laravel 项目并安装 Laravel Breeze。 2. **数据库**: 创建 `posts`, `pages`, `categories` 等迁移,并定义模型关系。 3. **模型与工厂**: 创建 Eloquent 模型及对应的 Factory。 4. **路由**: 在 `web.php` 中使用路由组和中间件组织后台 (`/admin`) 和前台路由。 5. **后台开发**: 创建后台管理的控制器和 Blade 视图。 6. **授权**: 使用 Policies 控制用户对文章等资源的 CUD 权限。 7. **前台开发**: 创建用于展示文章和页面的控制器和视图。 8. **富文本集成**: 在编辑视图中集成 JS 富文本编辑器。 9. **数据填充**: 创建 Seeder 填充初始数据(如管理员用户)。 10. **测试**: 使用 Pest 或 PHPUnit 编写 Feature 和 Unit 测试。 **先行任务**: 设计数据库 ER 图和后台管理界面的线框图。