Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 04.03.2017 12:38:34

Странности при работе с роутингом и artisan

Доброе время суток, Друзья!

Наткнулся на такую вот неприятную вещь.

Пишу в файлик 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 (вроде как для веба он smile ), а во вторых, как он не может найти класс если он мне его в этом же сообщении на экран вывалил. Может я что то не догоняю просто.

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

Вот, версия самая последняя, только обновился...

Спасибо!

Не в сети

#2 04.03.2017 19:04:13

Re: Странности при работе с роутингом и artisan

Сам спросил сам отвечаю smile... Вообщем не надо использовать шорттэги в пхп, в консоли они не работают :-). Как догодался даже понятия не имею, бубен все таки вещь хорошая ;-) . <? заменил на <?php ...

Не в сети

#3 06.03.2017 17:41:32

Re: Странности при работе с роутингом и artisan

Kiran пишет:

Сам спросил сам отвечаю smile... Вообщем не надо использовать шорттэги в пхп, в консоли они не работают :-). Как догодался даже понятия не имею, бубен все таки вещь хорошая ;-) . <? заменил на <?php ...


php.ini
найти short_open_tag и выставить в on

по дефолту короткие теги включены - http://php.net/manual/ru/ini.core.php

если у тебя шорттэги работают в вебе, но не работают в терминале - то у тебя все хитро настроено.

Не в сети

#4 07.03.2017 05:45:43

Re: Странности при работе с роутингом и artisan

ну вообще в дебиане и убунте у каждого типа пхп свой конфиг. отдельно у php-cli, отдельно у mod-php, отдельно у php-fpm и т.д. это по-моему только центос и прочие редхаты держат один php.ini на всё

Не в сети

#5 08.03.2017 02:46:15

Re: Странности при работе с роутингом и artisan

constb пишет:

ну вообще в дебиане и убунте у каждого типа пхп свой конфиг. отдельно у php-cli, отдельно у mod-php, отдельно у php-fpm и т.д. это по-моему только центос и прочие редхаты держат один php.ini на всё


спасибо, буду иметь в виду, я как раз на центосе и сижу.
я и говорю, что хитро настроено)

Изменено covobo (08.03.2017 02:47:20)

Не в сети

#6 08.03.2017 09:03:08

Re: Странности при работе с роутингом и artisan

Угу все верно конфиг разный, в php.ini я сам писал. Кстати раз уж пошла такая тема, когда пересоздовал все таблицы все равно валиться в ошибку, так как таблицы не находит, решил вот так
if (!App::runningInConsole()){
    Categories::installRoutes();
}
но честно говоря тоже не идеал, так как надо проверять команду работы с миграциями.

Не в сети

#7 09.03.2017 05:27:38

Re: Странности при работе с роутингом и artisan

а если без фасадов?

app()->make(\App\Libs\Categories::class)->installRoutes();

Не в сети

#8 09.03.2017 13:48:13

Re: Странности при работе с роутингом и artisan

constb пишет:

а если без фасадов?

app()->make(\App\Libs\Categories::class)->installRoutes();

Можно и так но у меня там структура вся в этом классе, виде дерева, она при каждом запросе нужна и много где используется и не однократно за запуск приложения...

Не в сети

#9 09.03.2017 14:08:23

Re: Странности при работе с роутингом и artisan

routes.php – это просто пхп-файл, в нём необязательно вызывать только фасады. в нём вообще что угодно можно выполнить smile

Не в сети

#10 09.03.2017 15:33:00

Re: Странности при работе с роутингом и artisan

constb пишет:

routes.php – это просто пхп-файл, в нём необязательно вызывать только фасады. в нём вообще что угодно можно выполнить smile

Это хорошо. я вот хочу вынести часть когда из роутев в отдельное место, создал для админки пространство имено новое, вот туда бы вынести куда то. Как это грамотно сделать?

Не в сети

#11 09.03.2017 15:53:31

Re: Странности при работе с роутингом и artisan

в 5.x маршруты подключаются в App\Providers\RouteServiceProvider, код слегка отличается, но в целом никто не мешает подключить там и другие файлы кроме стандартных. назвать admin.php и сразу определить набор миддлварей для них в сервис провайдере и подключить также как и остальные группы маршрутов

Не в сети

#12 09.03.2017 17:58:54

Re: Странности при работе с роутингом и artisan

Просто штука такая, я админку делаю и буду таскать ее между проектами постоянно, мне надо как то автоматизировать процесс добавления всего этого дела, типа копи паст и все работает :-).

Не в сети

Подвал раздела