如何在laravel中扩展IlluminateRoutingRoute


How to extend IlluminateRoutingRoute in laravel?

我想扩展照亮'路由'路由,并以这种方式使用它:

request()->someCustomFunction();

有什么建议吗

你可以写你自己的类来扩展Illuminate'Routing'Route和你的服务提供商中的n,你可以这样绑定它:

public function register()
{
    $this->app->bind('Illuminate'Routing'Route', 'YourClassThanExtendsRoute');
 }

这个解决方案是自Laravel 5以来的一个hack,因为扩展默认路由器变得更加困难。您只需要将以下内容添加到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论坛讨论过