next / simple
一款支持swoole/workerman/cli-server/FPM环境的PHP框架。
Installs: 27
Dependents: 0
Suggesters: 0
Security: 0
Stars: 26
Watchers: 0
Forks: 1
Open Issues: 0
Type:project
pkg:composer/next/simple
Requires
- php: ^8.2
- monolog/monolog: ^3.7
- next/di: ^0.1
- next/http-server: ^0.2
- next/routing: ^0.2
- next/utils: ^0.2
- vlucas/phpdotenv: ^5.6
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.11
- next/var-dumper: ^0.1
- phpstan/phpstan: ^1.11
- zircote/swagger-php: ^5.5
README
轻量 • 简单 • 快速
一款支持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/simple
启动服务
php bin/cli-server.php // 内置服务 php bin/swoole.php // swoole php bin/workerman.php // workerman
FPM模式,将请求指向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
参与开发
欢迎有兴趣的朋友参与开发