igniphp / framework
Swoole, PSR-7, PSR-15 模块化微反框架。
2.0.1
2018-12-08 18:06 UTC
Requires
- php: >=7.1.0
- igniphp/container: >=1.1.0
- igniphp/exception: >=1.0
- igniphp/network: >=0.3.2
- psr/container: >=1.0
- psr/http-message: >=1.0
- psr/http-server-middleware: >=1.0
- psr/log: >=1.0
- psr/simple-cache: >=1.0
- symfony/routing: >=4.1
- zendframework/zend-httphandlerrunner: ^1.0
Requires (Dev)
- league/container: >=1.0.0
- mockery/mockery: >=1.0.0
- phpstan/phpstan: >=0.9.2
- phpunit/phpunit: >=7.0.0
Suggests
- ext-swoole: for build in http server support.
This package is not auto-updated.
Last update: 2024-09-21 10:03:20 UTC
README
Igni 是一个内置了 swoole 服务器 和模块化架构支持的 PHP7 反框架,可以帮助您快速编写可扩展的 PSR-7 和 PSR-15 兼容的 REST 服务。
其主要目标是使您的应用程序尽可能透明且不可见。
<?php require 'vendor/autoload.php'; use Igni\Application\Config; use Igni\Application\HttpApplication; use Igni\Application\Providers\ConfigProvider; use Igni\Network\Http\Response; use Igni\Network\Http\Request; $application = new HttpApplication(); // Routing $application->get('/hello/{name}', function (Request $request) : Response { return Response::asText("Hello {$request->getAttribute('name')}."); }); // Middleware - no interfaces no binding with framework code is required in order things to work. $application->use(function($request, /** callable|RequestHandlerInterface */$next) { $response = $next($request); return $response->withAddedHeader('Version', $this->getConfig()->get('version')); }); // Extending application is a brief just create and implement methods for your needs. $application->extend(new class implements ConfigProvider { public function provideConfig(Config $config): void { $config->set('version', '1.0'); } }); $application->run();
安装和需求
Igni 框架推荐的安装方式是使用 composer
composer install igniphp/framework
需求
- PHP 7.1 或更高版本
- swoole 扩展以支持内置 http 服务器
新增功能
从版本 2.0 开始,网络包从框架代码中提取出来,错误处理得到了整体改进,以及服务器的监听器。更多详细信息可以在变更日志文件中找到。
快速开始
或者,您可以使用包含启动应用的 快速开始 来开始使用框架。
特性
路由
Igni 路由基于非常快速的 symfony 路由库。
PSR-7, PSR-15 支持
Igni 完全支持 PSR 消息标准,用于操作 HTTP 响应、请求和 HTTP 中间件。
依赖注入和自动解决
Igni 会为您自动解决依赖,并提供直观的依赖容器。它还允许您使用您选择的任何 PSR 兼容容器。
模块化架构
模块化和可扩展的解决方案是此框架诞生的最重要的方面之一。只需创建一个模块类,实现所需的接口,并通过您的模块扩展应用程序。
性能卓越、生产就绪的 http 服务器
当安装了 swoole
时,不需要 nginx 或 apache,应用程序可以像在 node.js 世界中一样运行
php examples/build_in_server_example.php
Igni 的 http 服务器速度与 express.js 应用程序相当,几乎无需配置。
详细文档
详细文档和更多示例可以在 此处 和示例目录中找到。