igniphp/framework

Swoole, PSR-7, PSR-15 模块化微反框架。

2.0.1 2018-12-08 18:06 UTC

This package is not auto-updated.

Last update: 2024-09-21 10:03:20 UTC


README

License: MIT Build Status Scrutinizer Code Quality Code Coverage

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 应用程序相当,几乎无需配置。

详细文档

详细文档和更多示例可以在 此处 和示例目录中找到。