Laravel передать $_SERVER во все шаблоны blade

a1exey

Новичок
Добрый день господа. ПОдскажите как на супер крутом фреймворке laravel с используемом внутри шаблонизаторе blade можно передать значение глобальной переменной окружения $_SERVER во все шаблоны?
Создал я новый контроллер, внутри сделал метод __construct(), всё работает, код вызывается на всех страницах, но не пойму как во все шаблоны передать значение. Версия laravel 6.20

p.s. странно что в smarty это уже по умолчанию встроено и работает $smarty.SERVER а тут почему-то это не завезли.
 
Последнее редактирование:

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
В laravel используется по-дефолту blade, а не twig, ничего не напутал?
 

AmdY

Пью пиво
Команда форума
p.s. странно что в smarty это уже по умолчанию встроено и работает $smarty.SERVER а тут почему-то это не завезли.
Потому что смарти изначально был грязным шаблонизатором, без режима песочницы и даже тег php включал.
Вот и вам стоит задуматься, зачем вам такая переменная в шаблоне?
 

a1exey

Новичок
Потому что смарти изначально был грязным шаблонизатором, без режима песочницы и даже тег php включал.
Вот и вам стоит задуматься, зачем вам такая переменная в шаблоне?
тег пхп включал до опред. версии, потом это убрали. грязным в каком плане? песочница? а кому она нужна? мне нужен хороший шаблонизатор, который выполняет свои функции, смарти в отличие от blade в разы лучше. за немного времени я понял что:
1. в blade нет глобальных переменных в отличие от смарти, где я могу получать ГЕТ, ПОСТ, _SERVER параметры
2. в blade разный синтаксис напсания, иногда это {{ }} а для условий это @IF ... каких ещё костылей разработчики наделали даже боюсь представить
3. вызов методов из шаблонизатора это вобще край. шаблонизатор нужен ИСКЛЮЧИТЕЛЬНО для вывода и логики там должно быть минимум! (условия и циклы не берем в расчёт).
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
тег пхп включал до опред. версии, потом это убрали. грязным в каком плане? песочница? а кому она нужна? мне нужен хороший шаблонизатор, который выполняет свои функции, смарти в отличие от blade в разы лучше.
Задача шаблонизатора вывести в нужном месте верстки значение, а вовсе не то, что делаете вы реализуя в шаблонах бизнес-логику, а наличие необходимости в шаблоне что-то делать с суперглобальными переменными как раз указывает на это.
 

a1exey

Новичок
Задача шаблонизатора вывести в нужном месте верстки значение, а вовсе не то, что делаете вы реализуя в шаблонах бизнес-логику, а наличие необходимости в шаблоне что-то делать с суперглобальными переменными как раз указывает на это.
вы же не спросили зачем мне $_SERVER значения, как вы можете знать? :) а нужно мне это чтобы определить url по которому зашёл человек на сайт, чтобы сделать активным пункт меню т.е. для простого условия $_SERVER["REQUEST_URI"] == "/"
 

AmdY

Пью пиво
Команда форума
вы же не спросили зачем мне $_SERVER значения, как вы можете знать? :) а нужно мне это чтобы определить url по которому зашёл человек на сайт, чтобы сделать активным пункт меню т.е. для простого условия $_SERVER["REQUEST_URI"] == "/"
вот и не надо вам $_SERVER в шаблоны, надо читать документацию https://laravel.com/docs/9.x/requests#inspecting-the-request-path
 

a1exey

Новичок
вот и не надо вам $_SERVER в шаблоны, надо читать документацию https://laravel.com/docs/9.x/requests#inspecting-the-request-path
это про то, как получить урл в контроллере, возможно через эти методы можно получить урл и в шаблонизаторе, но как по мне, юзать методы из шаблонизатора муветон.
 

AmdY

Пью пиво
Команда форума
Муветон - это юзать $_SERVER.
В ларавел есть роутинг, есть именованные роуты, сами ссылки надо формировать через роуты и проверять совпедение через routeIs
 

a1exey

Новичок
Муветон - это юзать $_SERVER.
В ларавел есть роутинг, есть именованные роуты, сами ссылки надо формировать через роуты и проверять совпедение через routeIs
В ларавел много чего есть, но не все это передаётся в шаблонизтор.
В чём-то вы правы, но мне это надо для простой проверки на активный раздел, поэтому простой $_SERVER подойдёт отлично.
 

WMix

герр M:)ller
Партнер клуба
я не понимяю, че ты мучаешься, выкинь blade смени engine на голый php и будет все.
 

a1exey

Новичок
Да не подойдет оно, это криво, есть же гугл - https://www.google.com/search?q=laravel+check+route+is+current
Мне в шаблонизаторе блейда так и вызывать {{ Route::getCurrentRoute()->getPath() == "/" }} ?
я не понимяю, че ты мучаешься, выкинь blade смени engine на голый php и будет все.
Голый PHP тоже не вариант, сменил бы на смарти, но исполнители сделали 15 проектов на ларавел и все как один под копирку, нет желания сильно заморачиваться с этим.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Можно как хочешь, хоть по имени роута сравнить
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Ну так займитесь отладкой, выясните почему 500, самое простое это найти в фасаде роутинга это: Route::currentRouteName(), или сделать как на SF написано, если роутинг подразумевает динамику идентиифкаторов страничек (новости и прочее, там будет одно название роута и сравнивать стоит с адресом)
 

a1exey

Новичок
Ну так займитесь отладкой, выясните почему 500, самое простое это найти в фасаде роутинга это: Route::currentRouteName(), или сделать как на SF написано, если роутинг подразумевает динамику идентиифкаторов страничек (новости и прочее, там будет одно название роута и сравнивать стоит с адресом)
:)) спасибо, но я уже $_SERVER передал и всё работает. Тратить кучу времени чтобы разобраться в этом гомне вобще нет желания. эти фреймворки только усложняют жизнь, но никак не упрощают, но молодеж может не согласиться и говорить насколько крут фреймворк, вебпак, галп, реакт и прочее гуано.
 
Сверху