gteixeira/router
Composer 安装命令:
composer require gteixeira/router
包简介
A fork of a classic CoffeeCode Router
README 文档
README
Disponível via Composer:
composer require gteixeira/router
Observações
Foi adicionado o suporte ao PHP-DI, não havendo mudanças na forma como o Router funciona (todas as configurações e formas de se usar continuam de acordo com a documentação, sendo necessária a mudança apenas nos arquivo de Rotas e nos Controllers caso queira utilizar o PHP-DI para resolver as dependências dos construtores).
Vislumbre de melhoria: Abstrair a lógica de implementação da feat para uma interface, de forma a esperar um método (ex:
get($id)cujo $id representa o nome da classe com seu namespace ex:CoffeeCode\Router\Router) que retorne a instância do objeto $id (assim como o PHP-DI funciona), permitindo ao usuário escolher alguma outra implementação de container de injeção de dependências (desde que siga o contrato estabelecido pela interface).
Para mais detalhes, checar a documentação original!!
Documentação
Antes:
Routes
<?php use CoffeeCode\Router\Router; $router = new Router("https://www.youdomain.com"); /** * routes * The controller must be in the namespace Test\Controller */ $router->namespace("Test")->group("name"); $router->get("/", "Name:home", "name.home"); $router->get("/hello", "Name:hello", "name.hello"); $router->get("/redirect", "Name:redirect", "name.redirect"); /** * This method executes the routes */ $router->dispatch(); /* * Redirect all errors */ if ($router->error()) { $router->redirect("name.hello"); }
Named Controller
<?php class Name { public function __construct($router) { $this->router = $router; } public function home(): void { echo "<h1>Home</h1>"; echo "<p>", $this->router->route("name.home"), "</p>"; echo "<p>", $this->router->route("name.hello"), "</p>"; echo "<p>", $this->router->route("name.redirect"), "</p>"; } public function redirect(): void { $this->router->redirect("name.hello"); } }
Depois:
Routes
<?php use DI\ContainerBuilder; use DI\Container; use CoffeeCode\Router\Router; $builder = new ContainerBuilder(); $builder->addDefinitions([ Router::class => function (Container $container) { return new Router(projectUrl: "https://www.youdomain.com", container: $container); } ]); $container = $builder->build(); $router = $container->get(Router::class); /** * routes * The controller must be in the namespace Test\Controller */ $router->namespace("Test")->group("name"); $router->get("/", "Name:home", "name.home"); $router->get("/hello", "Name:hello", "name.hello"); $router->get("/redirect", "Name:redirect", "name.redirect"); /** * This method executes the routes */ $router->dispatch(); /* * Redirect all errors */ if ($router->error()) { $router->redirect("name.hello"); }
Named Controller
<?php use CoffeeCode\Router\Router; class Name { public function __construct( protected Router $router ) { } public function home(): void { echo "<h1>Home</h1>"; echo "<p>", $this->router->route("name.home"), "</p>"; echo "<p>", $this->router->route("name.hello"), "</p>"; echo "<p>", $this->router->route("name.redirect"), "</p>"; } public function redirect(): void { $this->router->redirect("name.hello"); } }
Creditos
- Robson V. Leite (Dev e autor do projeto)
- UpInside Treinamentos (Time)
- Todos os Contribuidores (Engrenagem que gira o sistema)
- Gustavo Teixeira (Autor da modificação/nova feature)
Licença
The MIT License (MIT). Please see License File for more information.
gteixeira/router 适用场景与选型建议
gteixeira/router 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 9 次下载、GitHub Stars 达 0, 最近一次更新时间为 2024 年 06 月 18 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「route」 「router」 「routes」 「upinside」 「Coffeecode」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 gteixeira/router 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 gteixeira/router 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 gteixeira/router 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Generates a Blade directive exporting all of your named Laravel routes. Also provides a nice route() helper function in JavaScript.
Block routes by IP
Provides caching methods which can be easily used for caching routes.
Provide a way to secure accesses to all routes of an symfony application.
Write down your routing mapping at one place
A Laravel-like router for the WordPress Rewrite API
统计信息
- 总下载量: 9
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 13
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-06-18