我想扩展Illuminate \ Routing \ Route并以这种方式使用它:
request()->someCustomFunction();
有什么建议吗?
答案 0 :(得分:3)
您可以编写自己的扩展Illuminate\Routing\Route
的类和服务提供者中的n,您可以像这样绑定它:
public function register()
{
$this->app->bind('Illuminate\Routing\Route', 'YourClassThanExtendsRoute');
}
这应该有效。
答案 1 :(得分:0)
从Laravel 5开始,扩展默认路由器变得更加困难,因此该解决方案更具破解性。您所需要做的就是将以下内容添加到您的bootstrap
文件中。
$app->singleton('router', \App\Services\Router::class);
您存储在App/Services/Router.php
中的新路由器将如下所示:
namespace App\Services;
class Router extends \Illuminate\Routing\Router
{
public function someCustomFunction() {
}
}
那么您将能够做到:
Router::someCustomFunction();
在Laravel论坛here
中讨论了此解决方案