morphable/micro
Composer 安装命令:
composer require morphable/micro
包简介
micro framework
README 文档
README
a micro framework based on the psr-15 and psr-7 standard
Simple usage
<?php use \Morphable\Micro; use \Psr\Http\Message\ServerRequestInterface; $micro = new Micro(); $router = $micro->routing(); $router->add('GET', '/user/:id', function (ServerRequestInterface $request, array $args) { $id = $args['id']; /** @link https://www.php-fig.org/psr/psr-7/ */ return $response; }); try { $response = $micro->handle($request); // \Psr\Http\Message\ResponseInterface } catch (\Exception $e) { // 404 }
Callbacks
<?php use \Psr\Http\Message\ServerRequestInterface; // specific method in controller $router->add('GET', '/user/:id', ['controller', 'method']); // __invoke $router->add('GET', '/user/:id', 'controller'); // static method $router->add('GET', '/user/:id', [controller::class, 'method']); function callback(ServerRequestInterface $request, array $args) { return $response; } // function $router->add('GET', '/user/:id', 'callback'); // annonymous function $router->add('GET', '/user/:id', function (ServerRequestInterface $request, array $args) { return $response; });
Route pattern
<?php // : is mandatory argument ?: is optional argument $router->add('GET', '/user/:userId/profile', function ($request, $args){ $args['userId'] // second parameter in url }); $router->add('GET', '/callback/?:channel', function ($request, $args) { $args['channel'] // second parameter or null })
Middleware
<?php use \Psr\Http\Message\ResponseInterface; use \Psr\Http\Message\ServerRequestInterface; use \Psr\Http\Server\MiddlewareInterface; /** @link https://www.php-fig.org/psr/psr-15/ */ class Middleware implements MiddlewareInterface { public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface { // return ResponseInterface or handle next request return $handler->handle($request); } } $router->add('GET', '/user/:id', ['controller', 'method']) ->middleware('middleware'); // from container
Groups
<?php $router->group('api', function ($router) { // prefix of api $router->add('GET', '/', ['controller', 'method']); // pattern: /api $router->group('user', function ($router) { $router->add('GET', '/:id', ['controller', 'method']); // pattern: /api/user/:id })->middleware('middleware'); })->middleware('middleware'); // counts for every route inside
After call
<?php $router->add('GET', '/', ['controller', 'method']) ->after(function ($reqest, $args, $response): void {}) ->after(['class', 'method']) ->after('function');
morphable/micro 适用场景与选型建议
morphable/micro 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 11 次下载、GitHub Stars 达 1, 最近一次更新时间为 2019 年 11 月 28 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 morphable/micro 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 morphable/micro 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 11
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 4
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2019-11-28