Laravel 5 Расширение базового класса

Я пытаюсь расширить базовый класс Laravel 5. То, что я хочу достичь, это то, что я могу иметь собственные генераторы URL, например. URL :: test (), создаст пользовательскую ссылку.

Пока у меня есть:

  1. Создано приложение / папка Acme / lib
  2. Добавлен путь app / Acme / lib к карте классов composer.json

    "autoload": {
    "classmap": [
    ....
    app/Acme/lib
    ]
    }
    
  3. Создан пользовательский класс UrlGenerator в Acme / lib / CustomUrlGenerator.php

    <?php namespace App\Acme\lib;
    use \Illuminate\Routing\UrlGenerator;
    class CustomUrlGenerator extends UrlGenerator {
    public function test() {
    return $this->to('/test');
    }
    }
    
  4. Создано приложение поставщика услуг / Acme / lib / CustomUrlServiceProvider.php

    <?php namespace App\Acme\lib;
    use \Illuminate\Routing\RoutingServiceProvider;
    class CustomUrlServiceProvider extends RoutingServiceProvider {
    public function boot() {
    App::bind('url', function() {
    return new CustomUrlGenerator(
    App::make('router')->getRoutes(),
    App::make('request')
    );
    });
    parent::boot();
    }
    }
    
  5. Зарегистрированный поставщик услуг в app / config / app.php

  6. Запустите composer dump-autoload

Теперь, когда я бегу {!! URL :: test () !!}, я получаю 404 за каждый маршрут

Sorry, the page you are looking for could not be found.
NotFoundHttpException in /vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php line 143:

Есть что-то, чего мне не хватает?
Большое спасибо за любую помощь ..

4

Решение

Вы говорите об ошибке в RouteCollection.php файл, но вы не включаете его в свой вопрос. Кроме того, я бы написал по-другому в composer.json, как это:

"autoload": {
"classmap": [
// ....
"App\\Your_Namespace\\" : "app/Acme/lib",
]
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]