Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Доброе время суток, Друзья!
Наткнулся на такую вот неприятную вещь.
Пишу в файлик routes/web.php такую строчку
Categories::installRoutes();
Собственно это мой класс, который генерит маршруты. На него создан фасад.
class Categories extends Facade {
protected static function getFacadeAccessor() { return '\App\Libs\Categories'; }
}
И все великолепно работает в вебе, но как только я запускаю команду artisan он вываливает мне на экран файлик '\App\Libs\Categories, все как пологается со всеми классми и функциями и пишет ошибку:
[ReflectionException]
Class \App\Libs\Categories does not exist
я понять то не могу какого он лезет в файл web.php (вроде как для веба он ), а во вторых, как он не может найти класс если он мне его в этом же сообщении на экран вывалил. Может я что то не догоняю просто.
Сервис контейнер не делал для него, вернее делал но там похожая котовасия. я так понимаю при создани фасадов Ларавел как бы создает одиночный экземпляр класса, который и нормально доступен в системе... Мне большего не нужно от этого класса.
Вот, версия самая последняя, только обновился...
Спасибо!
Не в сети
Сам спросил сам отвечаю ... Вообщем не надо использовать шорттэги в пхп, в консоли они не работают :-). Как догодался даже понятия не имею, бубен все таки вещь хорошая ;-) . <? заменил на <?php ...
Не в сети
Сам спросил сам отвечаю ... Вообщем не надо использовать шорттэги в пхп, в консоли они не работают :-). Как догодался даже понятия не имею, бубен все таки вещь хорошая ;-) . <? заменил на <?php ...
php.ini
найти short_open_tag и выставить в on
по дефолту короткие теги включены - http://php.net/manual/ru/ini.core.php
если у тебя шорттэги работают в вебе, но не работают в терминале - то у тебя все хитро настроено.
Не в сети
ну вообще в дебиане и убунте у каждого типа пхп свой конфиг. отдельно у php-cli, отдельно у mod-php, отдельно у php-fpm и т.д. это по-моему только центос и прочие редхаты держат один php.ini на всё
Не в сети
ну вообще в дебиане и убунте у каждого типа пхп свой конфиг. отдельно у php-cli, отдельно у mod-php, отдельно у php-fpm и т.д. это по-моему только центос и прочие редхаты держат один php.ini на всё
спасибо, буду иметь в виду, я как раз на центосе и сижу.
я и говорю, что хитро настроено)
Изменено covobo (08.03.2017 02:47:20)
Не в сети
Угу все верно конфиг разный, в php.ini я сам писал. Кстати раз уж пошла такая тема, когда пересоздовал все таблицы все равно валиться в ошибку, так как таблицы не находит, решил вот так
if (!App::runningInConsole()){
Categories::installRoutes();
}
но честно говоря тоже не идеал, так как надо проверять команду работы с миграциями.
Не в сети
а если без фасадов?
app()->make(\App\Libs\Categories::class)->installRoutes();
Не в сети
а если без фасадов?
app()->make(\App\Libs\Categories::class)->installRoutes();
Можно и так но у меня там структура вся в этом классе, виде дерева, она при каждом запросе нужна и много где используется и не однократно за запуск приложения...
Не в сети
routes.php – это просто пхп-файл, в нём необязательно вызывать только фасады. в нём вообще что угодно можно выполнить
Не в сети
routes.php – это просто пхп-файл, в нём необязательно вызывать только фасады. в нём вообще что угодно можно выполнить
Это хорошо. я вот хочу вынести часть когда из роутев в отдельное место, создал для админки пространство имено новое, вот туда бы вынести куда то. Как это грамотно сделать?
Не в сети
в 5.x маршруты подключаются в App\Providers\RouteServiceProvider, код слегка отличается, но в целом никто не мешает подключить там и другие файлы кроме стандартных. назвать admin.php и сразу определить набор миддлварей для них в сервис провайдере и подключить также как и остальные группы маршрутов
Не в сети
Просто штука такая, я админку делаю и буду таскать ее между проектами постоянно, мне надо как то автоматизировать процесс добавления всего этого дела, типа копи паст и все работает :-).
Не в сети
Страницы 1