r2-packages/framework
Composer 安装命令:
composer create-project r2-packages/framework
包简介
A simple reusable PHP package
README 文档
README
A small reusable PHP routing framework package.
Requirements
- PHP 7.4 or higher
- Composer
Installation
Install the package with Composer:
composer require r2-packages/framework
If you are using this package locally, require Composer's autoloader:
require __DIR__ . '/vendor/autoload.php';
Basic Usage
Create a router, register routes, and run the router with the current request path and method.
use R2Packages\Framework\Route; $route = new Route(); $route->get('/', function ($request) { echo 'Welcome'; }); $route->get('/users/{id}', function ($request) { echo 'User ID: ' . $request['id']; }); $route->post('/users', [UserController::class, 'store']); $route->delete('/users/{id}', [UserController::class, 'delete']); $route->run($_SERVER['REQUEST_URI'], $_SERVER['REQUEST_METHOD']);
Controller Routes
Controller routes should be registered as an array containing the class name and method name.
$route->get('/users/{id}', [UserController::class, 'show']);
The controller is instantiated with the request array, and the matched method receives the request array.
class UserController { private $request; public function __construct($request) { $this->request = $request; } public function show($request) { echo 'User ID: ' . $request['id']; } }
Route Prefixes
Use prefix() to group routes under a shared path.
$route->prefix('api', function ($route) { $route->get('/users', [UserController::class, 'index']); $route->get('/users/{id}', [UserController::class, 'show']); });
The example above registers:
api/usersapi/users/{id}
Middleware
Use globalMiddleware() to apply middleware classes to a group of routes.
$route->globalMiddleware([AuthMiddleware::class], function ($route) { $route->get('/dashboard', [DashboardController::class, 'index']); });
Middleware classes must provide a handle() method.
class AuthMiddleware { public function handle($request) { if (empty($request['Authorization'])) { R2Packages\Framework\Utils::jsonResponse([ 'success' => false, 'message' => 'Unauthorized', ], 401); } } }
Named Routes
Use name() to assign a name to the most recently registered route, then generate the route path with getRouteByName().
$route->get('/users/{id}', [UserController::class, 'show'])->name('users.show'); $path = $route->getRouteByName('users.show', [ 'id' => 10, ]); echo $path; // users/10
Helpers
The Utils class provides helper methods for common responses and formatting.
use R2Packages\Framework\Utils; Utils::jsonResponse([ 'success' => true, 'message' => 'Created successfully', ]); Utils::dd($data); $snakeCase = Utils::camelCaseToSnakeCase('createdAt');
License
MIT
r2-packages/framework 适用场景与选型建议
r2-packages/framework 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 253 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 04 月 28 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 r2-packages/framework 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 r2-packages/framework 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 253
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 23
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-04-28