轻量 • 简单 • 快速
一款支持swoole, workerman, FPM环境的组件化的轻量PHP框架
PHP ^8.2
如果使用swoole,务必安装4.6以上版本,如果使用workerman, 务必使用4.0以上版本
composer config -g repo.packagist composer https://repo.packagist.org # 更换官方仓库
composer create-project next/simplephp bin/cli-server.php // 内置服务
php bin/swoole.php // swoole
php bin/workerman.php // workermanFPM模式,将请求指向public/index.php即可
使用swoole/workerman/amp/react等服务支持注解、AOP等特性, FPM模式可以直接卸载AOP包。
路由定义在
app/router.php文件中,也可以使用注解定义(需要安装AOP包,且不支持FPM/内置服务)
下面是在app/router.php中定义的路由
$router->middleware(new SessionMiddleware(), new VerifyCSRFToken())
->group(function (Router $router) {
$router->get('/', [new IndexController(), 'index']);
$router->get('openapi', [new IndexController(), 'opanapi']);
});当你使用swoole/swoole/workerman/amp/reactphp并且使用了AOP就可以使用注解定义
<?php
namespace App\Controllers;
use App\Http\Response;use Next\Routing\Attribute\Controller;use Next\Routing\Attribute\GetMapping;use Psr\Http\Message\ResponseInterface;use Psr\Http\Message\ServerRequestInterface;
#[Controller(prefix: '/')]
class IndexController
{
#[GetMapping(path: '/')]
public function index(ServerRequestInterface $request): ResponseInterface
{
return Response::HTML('Hello, ' . $request->query('name', 'nextphp!'));
}
}如上请求0.0.0.0:8989 会指向index方法,控制器方法支持依赖注入,如需当前请求示例,则请求参数名必须是request
,其他路由参数均会被注入,控制器方法需要返回ResponseInterface实例。
其他文档参考相应包的README
欢迎有兴趣的朋友参与开发