Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Самое интересное в этом видео, имхо - показан в действии один из вариантов работы view-подсистемы, которая в laravel сделана довольно своеобразно. Насколько я вижу по репам на гитхабе, народ так и не определился с гайдлайнами, как же именно её лучше юзать. Вариант, который предложен здесь, имхо, нельзя юзать на большом сайте (в каждой вьюхе писать @layout - это не DRY), но зато понятно что за зверь такой @yield.
Не в сети
В видео что-то воды много, хотя может для новичков самое то
Шаблоны в Laravel действительно своеобразные (имеется в виду, естественно, Blade, т.к. стандартные "шаблоны" - это обычные PHP-файлы). Пожалуй, это одна из немногих вещей, к которой я до сих пор полностью не привык из-за ограничений Blade; например, периодически вылазят какие-то косяки со вложенными/перекрытими секциями.
но зато понятно что за зверь такой @yield.
С ним тоже есть косяк - почему, например, разделены переменные шаблона (View->with()) и секции (@section)? Бывают случаи, когда нужно вставить переменную-"секцию" из строки или наоборот и приходится что-то придумывать. Опять же, не очень правильно, что от того, как в шаблоне определён вывод переменной (по сути что {{ }}, что @section - одно) зависит как эту переменную привязывать контроллером или другой частью логики.
Хотя идея с @section и @parent очень интересная.
в каждой вьюхе писать @layout - это не DRY
Я обычно делаю метод build() в базовом классе контроллера и тот оборачивает вывод в шаблон полной страницы нужного дизайна (обычный, "коробка" типа формы входа и т.п.), но в принципе в @layout('regular') или @layout('box') нет ничего плохого. Другое дело, что не каждая страница может генериться из шаблона и получается, что там пишем @layout, а в другом месте - view()->with().
Не в сети
Я обычно делаю метод build() в базовом классе контроллера и тот оборачивает вывод в шаблон полной страницы нужного дизайна (обычный, "коробка" типа формы входа и т.п.)
Вот-вот, это, имхо, лучший способ организации вьюверов, и мне не очень понятно, зачем в ларавеле затеяли весь остальной зоопарк и не сделали вышеописанную схему дефолтной. Ведь
View::make("home.index")->
, который юзается в хэлпах и в инструменте bob, в реальном проекте (есть layout, который должен поддерживать смены дизайна) абсолютно бесполезен, его приходится везде менять на что-то типа
$this->build_view("home.index")->
и делать свой Base_Controller с функцией build_view. Раз ларавель - это такие рельсы-на-php , то почему сразу не зашить в него удобную структуру ?
Изменено medar (31.05.2012 08:39:26)
Не в сети
Согласен. Видимо, у Тейлора свои соображения по этому поводу. В целом, шаблоны/Blade выглядят наименее проработанной частью библиотеки, и вроде как единственной.
Не в сети
Если используешь контроллеры + layout, самое то. Все удобно и просто. И использовать секции как в видео, тоже удобно.
Не в сети
Страницы 1