PHP资源汇总大全
一个偏实用的 PHP 资源导航,适合 PHP 后端开发、接口开发、Web 项目、企业系统、Composer 包管理和日常工程化参考。
目录
- 贡献
- 依赖管理 Dependency Management
- 其他的依赖管理 Dependency Management Extras
- 框架 Frameworks
- 微框架 Micro Frameworks
- 模板 Template Engines
- 数据库 Database
- 缓存 Cache
- 日志 Logging
- HTTP 客户端 HTTP Clients
- 安全 Security
- 代码质量 Code Quality
- 测试 Testing
- 配置 Configuration
- Web 工具 Web Tools
- 书籍 Books
- 经典博文 Classic Posts
- 示例代码 Example Code
贡献
详细内容请查看贡献。
如果你想维护自己的资源列表,建议按以下原则整理:
- 资源名称尽量使用官方名称。
- 链接优先使用 GitHub、官网或官方文档。
- 每条资源后面用一句话说明用途。
- 不建议把已经长期不维护的库放到核心推荐区域。
- 可以按“入门、常用、进阶、企业级”分层整理。
依赖管理 Dependency Management
依赖和包管理库
- Composer / Packagist - PHP 最常用的包和依赖管理器。
- Composer Installers - 一个多框架 Composer 库安装器。
- Pickle - 一个 PHP 扩展安装器。
- Private Packagist - Composer 私有包仓库服务,适合企业内部组件管理。
- Prestissimo - Composer 并行安装插件,老项目中可能会遇到。
其他的依赖管理 Dependency Management Extras
依赖管理相关工具和实践
- Composer Normalize - 格式化 composer.json,便于团队统一规范。
- Composer Patches - 给 Composer 依赖包打补丁。
- Composer Require Checker - 检查代码中是否使用了未声明的依赖。
- Symfony Flex - Symfony 项目常用的 Composer 增强插件。
框架 Frameworks
Web 开发框架和应用框架
- Laravel - 优雅、生态完整的现代 PHP Web 框架。
- Symfony - 企业级 PHP 框架和组件集合。
- Yii - 高性能 PHP 框架,适合中后台系统。
- CodeIgniter - 轻量级 PHP 框架,入门简单。
- CakePHP - 约定优于配置的 PHP 框架。
- Hyperf - 基于 Swoole 的高性能协程框架。
- ThinkPHP - 国内使用较多的 PHP 框架。
- Yaf - PHP 扩展形式的高性能框架,适合性能敏感项目。
微框架 Micro Frameworks
轻量级接口服务框架
- Slim - 适合快速构建 REST API 的微框架。
- Lumen - Laravel 官方微框架,适合轻量接口服务。
- Flight - 简单、快速的小型 PHP 框架。
- Mezzio - 基于 PSR 标准的中间件框架。
模板 Template Engines
模板引擎和视图渲染工具
数据库 Database
数据库抽象、ORM 和迁移工具
- Doctrine ORM - PHP 生态中成熟的 ORM。
- Eloquent ORM - Laravel 默认 ORM,写法简洁。
- Medoo - 轻量级数据库操作库。
- Phinx - 数据库迁移工具。
- Laravel Migrations - Laravel 数据库迁移方案。
- Cycle ORM - 支持 DataMapper 模式的 ORM。
缓存 Cache
缓存、队列和高性能数据访问工具
- Predis - 纯 PHP Redis 客户端。
- phpredis - PHP Redis 扩展,性能较好。
- Symfony Cache - Symfony 缓存组件。
- Laravel Cache - Laravel 缓存系统。
- phpfastcache - 支持多种后端的缓存库。
日志 Logging
日志记录和日志分析工具
- Monolog - PHP 最常用的日志库之一。
- Analog - 简单灵活的 PHP 日志库。
- KLogger - PSR-3 兼容的轻量日志库。
- Graylog - 集中化日志管理平台。
- ELK Stack - Elasticsearch、Logstash、Kibana 组成的日志分析方案。
HTTP 客户端 HTTP Clients
请求接口、调用第三方服务常用工具
- Guzzle - 功能强大的 PHP HTTP 客户端。
- Symfony HttpClient - Symfony 官方 HTTP 客户端。
- Requests - WordPress 生态使用的 HTTP 请求库。
- Buzz - 轻量 HTTP 客户端。
安全 Security
安全、加密、权限和防护工具
- PHP Security Advisories - PHP 依赖安全漏洞数据库。
- Roave Security Advisories - 防止安装存在安全漏洞的 Composer 包。
- Defuse PHP Encryption - PHP 加密库。
- PHP JWT - JWT 生成和验证库。
- Laravel Sanctum - Laravel 轻量 API Token 认证方案。
- Laravel Passport - Laravel OAuth2 认证方案。
- HTML Purifier - HTML 内容过滤,防止 XSS。
代码质量 Code Quality
静态分析、代码规范和重构辅助工具
- PHPStan - PHP 静态分析工具。
- Psalm - 静态分析和类型检查工具。
- PHP_CodeSniffer - PHP 代码规范检查工具。
- PHP CS Fixer - 自动修复 PHP 代码风格。
- Rector - PHP 自动化重构和版本升级工具。
- Deptrac - 检查项目分层依赖是否合理。
测试 Testing
单元测试、接口测试和行为测试工具
- PHPUnit - PHP 单元测试事实标准。
- Pest - 语法更简洁的 PHP 测试框架。
- Codeception - 支持单元测试、功能测试和验收测试。
- Behat - BDD 行为驱动测试框架。
- Mockery - Mock 对象测试库。
- FakerPHP - 生成测试假数据。
配置 Configuration
配置文件、环境变量和参数管理工具
- phpdotenv - 从
.env文件加载环境变量。 - Symfony Config - Symfony 配置组件。
- Noodlehaus Config - 支持多种格式的配置读取库。
- Laminas Config - Laminas 配置组件。
Web 工具 Web Tools
Web 调试、接口、队列和后台工具
- Laravel Horizon - Laravel Redis 队列监控面板。
- Laravel Telescope - Laravel 调试和请求观察工具。
- Symfony VarDumper - 变量调试工具。
- Whoops - PHP 错误页面美化工具。
- Adminer - 单文件数据库管理工具。
- phpMyAdmin - MySQL/MariaDB Web 管理工具。
书籍 Books
PHP 和 Web 开发相关书籍
- PHP The Right Way - PHP 现代开发实践指南。
- Modern PHP - 介绍现代 PHP 特性和工程实践。
- PHP Objects, Patterns, and Practice - PHP 面向对象、设计模式和实践。
- Laravel Documentation - Laravel 官方文档,也是很好的系统学习材料。
- Symfony Documentation - Symfony 官方文档。
经典博文 Classic Posts
值得长期阅读的文章和教程
- PHP: The Right Way - 现代 PHP 编码规范、依赖管理和部署实践。
- Composer Documentation - Composer 官方文档。
- PSR Standards - PHP-FIG 标准规范。
- Laravel Best Practices - Laravel 最佳实践整理。
- Symfony Best Practices - Symfony 官方最佳实践。
示例代码 Example Code
安装 Composer 依赖
composer init
composer require monolog/monolog vlucas/phpdotenv guzzlehttp/guzzle
一个简单的日志示例
<?php
require __DIR__ . '/vendor/autoload.php';
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
// 创建日志对象
$logger = new Logger('app');
// 日志写入到 storage/app.log
$logger->pushHandler(new StreamHandler(__DIR__ . '/storage/app.log', Logger::DEBUG));
// 记录不同级别的日志
$logger->info('用户登录成功', [
'user_id' => 1001,
'ip' => $_SERVER['REMOTE_ADDR'] ?? '127.0.0.1',
]);
$logger->warning('接口响应较慢', [
'api' => '/api/order/list',
'cost_ms' => 1380,
]);
$logger->error('数据库连接失败', [
'host' => '127.0.0.1',
'database' => 'demo',
]);
一个简单的 Guzzle 请求示例
<?php
require __DIR__ . '/vendor/autoload.php';
use GuzzleHttp\Client;
$client = new Client([
'timeout' => 10,
]);
$response = $client->get('https://api.github.com/repos/php/php-src');
$data = json_decode((string) $response->getBody(), true);
echo '项目名称:' . $data['full_name'] . PHP_EOL;
echo 'Star 数:' . $data['stargazers_count'] . PHP_EOL;
推荐的项目目录结构
project/
├── app/
│ ├── Controller/
│ ├── Service/
│ ├── Model/
│ └── Middleware/
├── config/
│ ├── app.php
│ └── database.php
├── public/
│ └── index.php
├── routes/
│ └── web.php
├── storage/
│ ├── logs/
│ └── cache/
├── tests/
├── vendor/
├── .env
├── composer.json
└── README.md
资源维护建议
- 每 1 到 3 个月检查一次链接是否失效。
- 给资源加上“推荐指数”或“适合场景”,方便团队选择。
- 企业项目优先选择维护活跃、文档完整、生态成熟的库。
- 对生产系统使用的依赖,建议配合安全扫描和版本锁定。
- 新项目优先使用 Composer、PSR 标准、自动化测试和静态分析工具。