Files
FendxPHP/README.md
Lawson 2782d765fb feat(database): 添加用户角色权限系统及相关监控功能
- 创建用户表(users)包含基本信息和认证字段
- 创建角色表(roles)用于权限控制
- 创建权限表(permissions)定义系统权限
- 创建用户角色关联表(user_roles)建立用户与角色关系
- 创建角色权限关联表(role_permissions)建立角色与权限关系
- 创建迁移记录表(migrations)追踪数据库变更
- 添加AdminController提供管理员面板功能
- 实现系统监控、配置管理、缓存清理等功能
- 添加AOP切面编程支持的各种通知类型
- 实现告警管理AlertManager支持多渠道告警
- 添加文档注解接口规范
2026-04-08 17:00:28 +08:00

8.6 KiB
Raw Permalink Blame History

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

安装配置

  1. 克隆项目
git clone <repository-url>
cd FendxPHP
  1. 安装依赖
composer install
  1. 环境配置
cp .env.example .env
# 编辑 .env 文件配置数据库和缓存信息
  1. 数据库初始化
# 方法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
  1. 配置验证
# 检查数据库状态
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>📚 文档

🎯 默认账号

用户名 密码 角色 权限
admin password 超级管理员 所有权限
test_user password 普通用户 基础权限
developer dev123 管理员 管理权限
moderator mod123 版主 内容管理

🤝 贡献

欢迎提交 Issue 和 Pull Request

开发规范

  1. 遵循PSR-4自动加载标准
  2. 编写单元测试
  3. 更新相关文档
  4. 通过所有CI检查

📄 许可证

MIT License


作者: Lawson
邮箱: lawson@fendx.cn
版本: 1.0.0
更新: 2024-01-15