max/simple

一款支持swoole/workerman/cli-server/FPM环境的PHP框架。

Installs: 66

Dependents: 0

Suggesters: 0

Security: 0

Stars: 7

Watchers: 0

Forks: 1

Open Issues: 0

Type:project

1.1.1 2022-09-16 11:30 UTC

This package is auto-updated.

Last update: 2022-09-16 11:35:15 UTC


README

Max

轻量 • 简单 • 快速

一款支持swoole, workerman, FPM环境的组件化的轻量PHP框架,可以用作API开发,方便快速。框架默认安装了sessionview扩展包,如果不需要可以直接移除。

环境要求

PHP >= 8.0

如果使用swoole,务必安装4.6以上版本,如果使用workerman, 务必使用4.0以上版本

使用

安装

composer create-project max/simple

启动服务

swoole服务

php bin/swoole.php   // 异步模式
php bin/swooleco.php // 协程模式

workerman服务

php bin/workerman.php start

内置服务

php bin/cli-server.php

FPM模式,将请求指向public/index.php即可

区别

使用swoole/workerman支持注解、AOP等特性, FPM模式可以直接卸载AOP包。

简单入门

路由定义

swoole/swooleco/workerman下可以使用注解定义

<?php

namespace App\Controllers;

use App\Http\Response;
use Max\Routing\Annotation\Controller;
use Max\Routing\Annotation\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', 'MaxPHP!'));
    }
}

如上请求0.0.0.0:8080 会指向index方法,控制器方法支持依赖注入,如需当前请求示例,则请求参数名必须是request,其他路由参数均会被注入,控制器方法需要返回ResponseInterface实例。

FPM或内置服务下不能使用注解

路由定义在App\Http\Kernel类的map方法中定义

$router->middleware(TestMiddleware::class)->group(function(Router $router) {
    $router->get('/', [IndexController::class, 'index']);
    $router->get('/test', function(\Psr\Http\Message\ServerRequestInterface $request) {
        return \App\Http\Response::HTML('new');
    });
});

参与开发

欢迎有兴趣的朋友参与开发

致谢

感谢PHP最好用IDE: PHPStorm