php.md 2.7 KB

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 图和后台管理界面的线框图。