devvime/modularis 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

devvime/modularis

最新稳定版本:1.0.1

Composer 安装命令:

composer require devvime/modularis

包简介

A Minimal and Expressive PHP Micro Routing Framework

README 文档

README

A Minimal and Expressive PHP Micro Routing Framework

Getting Started

require dirname(__DIR__) . '/vendor/autoload.php';

use Modularis\Router;

$router = new Router();

// Define your routes here

$router->dispatch();

Defining Routes

Supported HTTP methods: GET, POST, PUT, DELETE, PATCH, OPTIONS, HEAD

$router->get('/', function ($request, $response) {
    $response->render('Hello World!');
});

Route with Controller Method

use Modularis\Controller\UserController;

$router->get('/', UserController::class .  '@show');

Route with Middleware

$router->get('/', function ($request, $response) {
    $response->render('Hello World!');
}, function ($request, $response) {
    // Middleware logic
});

Route with Multiple Middlewares

$router->get('/', function ($request, $response) {
    $response->render('Hello World!');
}, [
    function ($request, $response) {
        // First middleware logic
    },
    function ($request, $response) {
        // Second middleware logic
    }
]);

Middleware Classes

use Modularis\Middleware\AuthMiddleware;
use Modularis\Controller\AuthController;

$router->get('/', function ($request, $response) {
    $response->render('Hello World!');
}, AuthMiddleware::class . '@verify');

$router->get('/', function ($request, $response) {
    $response->render('Hello World!');
}, [
    AuthMiddleware::class . '@verify',
    AuthMiddleware::class . '@permissions'
]);

$router->get('/', AuthController::class . '@index', [
    AuthMiddleware::class . '@verify',
    AuthMiddleware::class . '@permissions'
]);

Route Groups

Basic Group

$router->group('/user')->init()
    ->get('/', function ($request, $response) {
        // GET logic
    })
    ->post('/', function ($request, $response) {
        // POST logic
    })
    ->put('/', function ($request, $response) {
        // PUT logic
    })
    ->delete('/', function ($request, $response) {
        // DELETE logic
    })
    ->endGroup();

With Controllers

use Modularis\Controller\UserController;

$router->group('/user')->init()
    ->get('/', UserController::class . '@index')
    ->post('/', UserController::class . '@store')
    ->put('/', UserController::class . '@update')
    ->delete('/', UserController::class . '@destroy')
    ->endGroup();

Route Group with Middleware

Anonymous Middleware

use Modularis\Controller\UserController;

$router->group('/user', function ($request, $response) {
    // Group-level middleware logic
})->init()
    ->get('/', UserController::class . '@index', function ($request, $response) {
        // Route-level middleware logic
    })
    ->post('/', UserController::class . '@store')
    ->put('/', UserController::class . '@update', [
        function ($request, $response) {
            // First middleware logic
        },
        function ($request, $response) {
            // Second middleware logic
        }
    ])
    ->delete('/', UserController::class . '@destroy')
    ->endGroup();

Using Middleware Classes

use Modularis\Controller\UserController;
use Modularis\Middleware\AuthMiddleware;

$router->group('/user', AuthMiddleware::class . '@verify')->init()
    ->get('/', UserController::class . '@index', AuthMiddleware::class . '@permissions')
    ->post('/', UserController::class . '@store')
    ->put('/', UserController::class . '@update', [
        AuthMiddleware::class . '@verify',
        AuthMiddleware::class . '@permissions'
    ])
    ->delete('/', UserController::class . '@destroy')
    ->endGroup();

Route Parameters

Typed parameters syntax: /user/{id:int}/{name:string}/{token:uuid}

$router->get('/user/{id:int}', function ($request, $response) {
    $userId = $request->params['id'];

    print_r($request->params);  // URL parameters
    print_r($request->body);    // POST data
    print_r($request->query);   // GET query parameters
    print_r($request->headers); // HTTP headers

    $response->render('Hello World!');

    $response->json([
        'status' => 200,
        'message' => 'Success'
    ]);
});

Using a Controller

namespace Modularis\Controller;

class UserController
{
    public function show($request, $response)
    {
        $userId = $request->params['id'];

        print_r($request->params);
        print_r($request->body);
        print_r($request->query);
        print_r($request->headers);

        $response->render('Hello World!');

        $response->json([
            'status' => 200,
            'message' => 'Success'
        ]);
    }
}
//=========================================

use Modularis\Controller\UserController;

$router->get('/user/{id:int}', UserController::class . '@show');

Router Execution

require dirname(__DIR__) . '/vendor/autoload.php';

use Modularis\Router;
use Modularis\Controller\UserController;

$router = new Router();

$router->group('/user')->init()
    ->get('/', UserController::class . '@index')
    ->post('/', UserController::class . '@store')
    ->put('/', UserController::class . '@update')
    ->delete('/', UserController::class . '@destroy')
    ->endGroup();

$router->dispatch();

统计信息

  • 总下载量: 13
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-05-29