Laravel & amp; Пространства имен

Это, вероятно, придирчиво, но мне было интересно, как работает пространство имен для «Маршрута» Laravel 4.2 (используя функцию ресурса).

Итак … во всей документации (http://laravel.com/docs/4.2/controllers#resource-controllers), ты видишь это:

Route::resource('photo', 'PhotoController');

Тем не менее, когда я иду к «Маршрут» документации (http://laravel.com/api/4.2/Illuminate/Routing/Route.html) видно, что функции «ресурс» там не существует. Вместо этого он существует в разделе «Маршрутр«(http://laravel.com/api/4.2/Illuminate/Routing/Router.html).

Как использовать операторы PHP «use», чтобы указать, что я использую функцию ресурса? Сам пример точен и работает, когда я звоню (в нем показаны все маршруты, которые я ожидаю):

php artisan routes

Как Laravel заставляет работать пространство имен Route vs. Router?

3

Решение

Laravel интенсивно использует Фасады. Это в основном классы, которые позволяют статический доступ (Route::resource()) к методам, которые не являются статичными вообще. На заднем плане это делает новый экземпляр Router класс, а затем вызывает метод resource(), Вы можете найти больше информации об этом в документы

Если вы ищете правильное автозаполнение и другие функции IDE, которые зависят от разрешения класса, попробуйте Laravel Ide Helper

3

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

Дело в том, что Route здесь не класс, но это фасад. Если вы посмотрите на Ссылка на класс фасадов вы увидите, что Route фасад использует Illuminate\Routing\Router маршрутизатор, так что это класс, который вы хотите

1

Route в app/routes.php это просто еще один из Различные фасады Ларавела и содержит правила обработано Laravel Routing Engine для получения фактического маршруты это будет использоваться в вашем приложении.

Чтобы лучше понять, я бы предложил проверить это краткое руководство по архитектуре Laravel чтобы понять, как запросы принимаются и обрабатываются в рамках, а также Восстановление Laravel который объясняет, как создаются различные компоненты Laravel, начиная с первого обрабатываемого файла.

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