makise-co / framework
PHP 协程微框架
v2.0.0
2020-12-07 20:52 UTC
Requires
- php: ^7.4
- ext-json: *
- ext-swoole: ^4.4
- monolog/monolog: ^2.0
- nunomaduro/collision: ^4.1
- php-di/php-di: ^6.1
- psr/log: ^1.1
- symfony/console: ^5.0
- symfony/event-dispatcher: ^5.0
- symfony/finder: ^5.0
- symfony/property-access: ^5.0
- symfony/var-dumper: ^5.0
- vlucas/phpdotenv: ^5.0
Requires (Dev)
- phpstan/phpstan: ^0.12.18
- phpstan/phpstan-phpunit: ^0.12.6
- phpunit/phpunit: ^9.0
- swoole/ide-helper: ^4.4
Suggests
- makise-co/auth: To authenticate/authrize HTTP requests
- makise-co/http: To run HTTP server
- makise-co/orm-bundle: To work with modern ORM
- dev-master
- v2.0.0
- v2.0.0-beta3
- v2.0.0-beta2
- v2.0.0-beta1
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
- 0.0.31
- 0.0.30
- 0.0.29
- 0.0.28
- 0.0.27
- 0.0.26
- 0.0.25
- 0.0.24
- 0.0.23
- 0.0.22
- 0.0.21
- 0.0.20
- 0.0.19
- 0.0.18
- 0.0.17
- 0.0.16
- 0.0.15
- 0.0.14
- 0.0.13
- 0.0.12
- 0.0.11
- 0.0.10
- 0.0.9
- 0.0.8
- 0.0.7
- 0.0.6
- 0.0.5
- 0.0.4
- 0.0.3
- 0.0.2
- 0.0.1
- dev-feature/v2
This package is auto-updated.
Last update: 2024-09-26 07:32:36 UTC
README
描述
该框架采用现代 PHP 开发方法,旨在确保内存的高效使用和应对高负载。
为什么选择 Makise?Kurisu Makise 启发了这个工具的创建。
应用领域
该框架主要针对 SOA(面向服务架构),同时也适用于微服务架构。
主要目标是为 HTTP REST API 的开发提供便利(未来将不仅限于 REST)。
特性
- 除了 DI(依赖注入)外,该框架没有魔法。
- 尽可能地使用严格类型(在合理范围内)。
- 没有全局上下文。
- 完全非阻塞 I/O(协程)。
- PSR 兼容,但扩展了功能以确保长期运行应用程序(Long-Live/Long-Running)。
- 该框架实现了与 Laravel 相似的 API。
- 该框架使用了以下常用库:
- symfony/console
- laminas/laminas-diactoros
- symfony/event-dispatcher
- monolog/monolog
- phpdi/phpdi
- vlucas/phpdotenv
要求
- PHP 7.4+
- Swoole 4.4+
- Linux
HTTP 栈结构
- HTTP 栈实现了 PSR-7 和 PSR-15 标准。
- HTTP 请求路由通过 Pipeline-orientated 方法实现(见点1)。
- 调用顺序
- RequestHandler
- 全局中间件
- ExceptionHandlerMiddleware
- RouteDispatchHandler
- Route group 中间件
- RouteInvokeHandler
- 最终请求处理器(控制器)
配置
配置文件位于 config
目录中。可以通过 bootstrap.php(目前为 app.php)重定义文件夹路径。
服务提供者(通过 DI 注入)
在配置中实现接口方法 MakiseCo\Config\AppConfigInterface::getProviders
。
控制台命令
在配置中实现接口方法 MakiseCo\Config\AppConfigInterface::getCommands
。
路由文件
在配置中实现接口方法 MakiseCo\Config\AppConfigInterface::getHttpRoutes
。
全局中间件(CORS、AccessLog 等...)
在配置中实现接口方法 MakiseCo\Config\AppConfigInterface::getGlobalMiddlewares
。
使用全局中间件时,需要自行处理异常(或根本不允许异常发生),因为它们在 exception handler 之前执行。