mirror of
https://devops.lemonos.cn/lawson/FendxPHP.git
synced 2026-06-15 23:12:49 +08:00
- 创建用户表(users)包含基本信息和认证字段 - 创建角色表(roles)用于权限控制 - 创建权限表(permissions)定义系统权限 - 创建用户角色关联表(user_roles)建立用户与角色关系 - 创建角色权限关联表(role_permissions)建立角色与权限关系 - 创建迁移记录表(migrations)追踪数据库变更 - 添加AdminController提供管理员面板功能 - 实现系统监控、配置管理、缓存清理等功能 - 添加AOP切面编程支持的各种通知类型 - 实现告警管理AlertManager支持多渠道告警 - 添加文档注解接口规范
8.6 KiB
8.6 KiB
FendxPHP - 企业级轻量级 PHP 开发框架
🚀 轻量化 · 🔒 企业级 · ⚡ 高性能 · 🛠️ 易扩展
FendxPHP 是一个专为现代企业级应用设计的轻量级 PHP 开发框架,采用自研内核,提供完整的企业级特性。
✨ 核心特性
🏗️ 架构设计
- 五层分层架构: 业务应用层 → 组件服务层 → 内核引擎层 → 基础支撑层 → 启动与容器层
- 模块化设计: 8个核心模块,职责清晰,易于维护和扩展
- 注解驱动: 全注解配置,约定大于配置
- AOP支持: 完整切面编程,支持事务、日志、权限等横切关注点
🔧 核心功能
- IOC容器: 依赖注入、Bean管理、生命周期控制
- 路由系统: 注解式路由、参数绑定、中间件支持
- 数据库: ORM支持、多数据源、事务管理
- 缓存系统: Redis缓存、本地缓存、防穿透/击穿/雪崩
- 安全认证: JWT认证、RBAC权限、Token管理
- 日志系统: TraceId追踪、异步日志、级别控制
📁 项目结构
FendxPHP/
├── app/ # 业务应用层
│ ├── Controller/ # 控制器
│ ├── Service/ # 业务逻辑
│ ├── Dao/ # 数据访问
│ ├── Entity/ # 数据库实体
│ ├── Validate/ # 参数校验
│ ├── Vo/ # 展示对象
│ ├── Dto/ # 传输对象
│ ├── Job/ # 定时任务
│ └── Interceptor/ # 拦截器
├── config/ # 配置文件
│ ├── app.php # 应用配置
│ ├── database.php # 数据库配置
│ ├── cache.php # 缓存配置
│ ├── config.php # 主配置文件
│ └── routes.php # 路由配置
├── database/ # 数据库相关
│ ├── migrations/ # 数据库迁移
│ ├── seeds/ # 种子数据
│ └── init.sql # 初始化脚本
├── docs/ # 文档目录
│ ├── 部署测试指南.md # 部署测试文档
│ ├── 快速测试指南.md # 快速测试指南
│ └── 分布式架构优化建议.md # 架构优化建议
├── scripts/ # 脚本工具
│ ├── run-tests.sh # 自动化测试脚本
│ ├── check-database.php # 数据库检查脚本
│ ├── check-database.ps1 # PowerShell数据库检查
│ ├── test-database.ps1 # 简化版数据库检查
│ ├── check-docker-db.sh # Docker数据库检查
│ └── quick-db-check.php # 快速数据库检查
├── tests/ # 测试目录
│ ├── Unit/ # 单元测试
│ ├── Integration/ # 集成测试
│ └── API/ # API测试
├── public/ # Web入口
│ └── index.php # Web入口文件
├── runtime/ # 运行时目录
│ ├── logs/ # 日志文件
│ ├── cache/ # 缓存文件
│ └── temp/ # 临时文件
├── reports/ # 测试报告
├── bin/ # 可执行文件
│ └── console # 控制台命令
├── fendx-framework/ # 框架核心
│ ├── fendx-common/ # 公共组件
│ ├── fendx-core/ # 内核引擎
│ ├── fendx-web/ # Web组件
│ ├── fendx-db/ # 数据库组件
│ ├── fendx-cache/ # 缓存组件
│ ├── fendx-security/ # 安全组件
│ ├── fendx-log/ # 日志组件
│ ├── fendx-starter/ # 启动器
│ ├── fendx-service/ # 服务组件
│ └── fendx-observability/ # 可观测性组件
├── docker-compose.test.yml # Docker测试环境
├── docker-compose.yml # Docker生产环境
├── fendx.sql # 完整数据库脚本
├── phpunit.xml # PHPUnit配置
├── fendx.php # CLI入口
├── FendxPHP_项目架构.txt # 架构文档
└── README.md # 项目说明
🚀 快速开始
环境要求
- PHP >= 8.1
- MySQL >= 5.7 或 MariaDB >= 10.2
- Redis >= 5.0
- Docker & Docker Compose (可选)
- Composer
安装配置
- 克隆项目
git clone <repository-url>
cd FendxPHP
- 安装依赖
composer install
- 环境配置
cp .env.example .env
# 编辑 .env 文件配置数据库和缓存信息
- 数据库初始化
# 方法1: 使用完整SQL脚本
mysql -u root -p fendx_php < fendx.sql
# 方法2: 使用迁移命令
php bin/console migrate:run
php bin/console migrate:seed
# 方法3: 使用数据库检查脚本
php scripts/check-database.php --fix
- 配置验证
# 检查数据库状态
php scripts/check-database.php
# Windows PowerShell
.\scripts\check-database.ps1
# Docker环境
./scripts/check-docker-db.sh
运行应用
Web服务:
php -S localhost:8000 -t public
访问 http://localhost:8000 查看应用。
CLI命令:
php bin/console
Docker运行
# 启动完整环境
docker-compose up -d
# 启动测试环境
docker-compose -f docker-compose.test.yml up -d
# 查看服务状态
docker-compose ps
💡 使用示例
控制器示例
<?php
namespace App\Controller;
use Fendx\Core\Annotation\Controller;
use Fendx\Web\Annotation\GetRoute;
use Fendx\Web\Response\Response;
#[Controller]
class UserController
{
#[GetRoute('/users')]
public function index(): array
{
return Response::success(['users' => []]);
}
}
服务示例
<?php
namespace App\Service;
use Fendx\Core\Annotation\Service;
use Fendx\Core\Annotation\Inject;
#[Service]
class UserService
{
#[Inject]
private UserDao $userDao;
public function getUsers(): array
{
return $this->userDao->findAll();
}
}
🧪 测试
运行测试
# 运行所有测试
./scripts/run-tests.sh
# Windows PowerShell
.\scripts\run-tests.ps1
# 使用PHPUnit
vendor/bin/phpunit
# 使用控制台命令
php bin/console test:all
测试类型
- 单元测试:
php bin/console test:unit - 集成测试:
php bin/console test:integration - API测试:
php bin/console test:api - 性能测试:
php bin/console test:performance - 安全测试:
php bin/console test:security
覆盖率报告
# 生成覆盖率报告
php bin/console test:unit --coverage
# 查看HTML报告
open reports/coverage/index.html
<EFBFBD> 部署
本地部署
# 检查环境
php bin/console deploy:local
# 运行迁移
php bin/console migrate:run
# 启动服务
php -S localhost:8000 -t public
Docker部署
# 构建镜像
docker build -t fendx-php .
# 运行容器
docker-compose up -d
# 查看日志
docker-compose logs -f
Kubernetes部署
# 部署到K8s
kubectl apply -f k8s/
# 查看状态
kubectl get pods -l app=fendx-php
详细部署指南请参考:部署测试指南
🔧 开发工具
数据库工具
# 数据库检查
php scripts/check-database.php
# 数据库修复
php scripts/check-database.php --fix
# Windows PowerShell
.\scripts\check-database.ps1 fix
性能基准
# 运行基准测试
php bin/console benchmark:memory
php bin/console benchmark:database
php bin/console benchmark:cache
<EFBFBD>📚 文档
- 📖 部署测试指南 - 完整的部署和测试文档
- ⚡ 快速测试指南 - 快速上手测试指南
- 🏗️ 分布式架构优化建议 - 架构优化建议
- 📋 架构文档 - 详细的架构设计文档
- 🔧 开发指南 - 开发规范和最佳实践
- 📡 API文档 - API接口文档
🎯 默认账号
| 用户名 | 密码 | 角色 | 权限 |
|---|---|---|---|
| admin | password | 超级管理员 | 所有权限 |
| test_user | password | 普通用户 | 基础权限 |
| developer | dev123 | 管理员 | 管理权限 |
| moderator | mod123 | 版主 | 内容管理 |
🤝 贡献
欢迎提交 Issue 和 Pull Request!
开发规范
- 遵循PSR-4自动加载标准
- 编写单元测试
- 更新相关文档
- 通过所有CI检查
📄 许可证
MIT License
作者: Lawson
邮箱: lawson@fendx.cn
版本: 1.0.0
更新: 2024-01-15