transitive/routing
Composer 安装命令:
composer require transitive/routing
包简介
Routing classes of Transitive MVP framework
README 文档
README
Routing layer for the Transitive MVP stack.
This package maps request patterns to Route objects. A route can point to presenter and view instances, or to presenter and view PHP files that are included at runtime.
What is included
Transitive\Routing\Route: executes a presenter/view pair and transfers presenter data into the view.Transitive\Routing\PathRouter: resolves requests to files under presenter and view directories.Transitive\Routing\ListRouter: exact-match router backed by an in-memory route map.Transitive\Routing\ListRegexRouter: regex-based router with match capture support.Transitive\Routing\FrontController: interface implemented by front controller packages such astransitive/coreandtransitive/web.Transitive\Routing\RoutingException: domain exception for missing routes and runtime routing failures.
Installation
composer require transitive/routing
PHP 8.1+ is required.
Basic usage
<?php use Transitive\Core\Presenter; use Transitive\Routing\ListRouter; use Transitive\Routing\Route; use Transitive\Simple\View; $route = new Route(new Presenter(), new View()); $route->presenter->addData('message', 'Hello from a route'); $route->view->addContent(function (array $data) { return $data['message']; }); $router = new ListRouter(); $router->addRoute('home', $route); $matched = $router->execute('home'); $matched?->execute(); echo $matched?->getContent()?->asString() ?? '';
File-based routing
PathRouter is the bridge between URL-like patterns and filesystem-backed presenters/views:
<?php use Transitive\Routing\PathRouter; $router = new PathRouter( __DIR__.'/presenters', __DIR__.'/views' ); $route = $router->execute('blog/post');
With this setup, blog/post resolves to:
presenters/blog/post.phpviews/blog/post.php
The router normalises path traversal segments before resolving the files.
License
统计信息
- 总下载量: 1.31k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 11
- 依赖项目数: 2
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2018-07-27