Это, вероятно, придирчиво, но мне было интересно, как работает пространство имен для «Маршрута» 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?
Laravel интенсивно использует Фасады. Это в основном классы, которые позволяют статический доступ (Route::resource()
) к методам, которые не являются статичными вообще. На заднем плане это делает новый экземпляр Router
класс, а затем вызывает метод resource()
, Вы можете найти больше информации об этом в документы
Если вы ищете правильное автозаполнение и другие функции IDE, которые зависят от разрешения класса, попробуйте Laravel Ide Helper
Дело в том, что Route
здесь не класс, но это фасад. Если вы посмотрите на Ссылка на класс фасадов вы увидите, что Route
фасад использует Illuminate\Routing\Router
маршрутизатор, так что это класс, который вы хотите
Route
в app/routes.php
это просто еще один из Различные фасады Ларавела и содержит правила обработано Laravel Routing Engine для получения фактического маршруты это будет использоваться в вашем приложении.
Чтобы лучше понять, я бы предложил проверить это краткое руководство по архитектуре Laravel чтобы понять, как запросы принимаются и обрабатываются в рамках, а также Восстановление Laravel который объясняет, как создаются различные компоненты Laravel, начиная с первого обрабатываемого файла.