Laravel по-русски

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

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

#1 29.05.2012 14:09:24

medar
Откуда: Москва
Сообщений: 36

Скринкаст: пример приложения на Laravel c нуля

http://vimeo.com/43014286

Самое интересное в этом видео, имхо - показан в действии один из вариантов работы view-подсистемы, которая в laravel сделана довольно своеобразно. Насколько я вижу по репам на гитхабе, народ так и не определился с гайдлайнами, как же именно её лучше юзать. Вариант, который предложен здесь, имхо, нельзя юзать на большом сайте (в каждой вьюхе писать @layout - это не DRY), но зато понятно что за зверь такой @yield.

Не в сети

#2 30.05.2012 22:28:43

Re: Скринкаст: пример приложения на Laravel c нуля

В видео что-то воды много, хотя может для новичков самое то smile

Шаблоны в Laravel действительно своеобразные (имеется в виду, естественно, Blade, т.к. стандартные "шаблоны" - это обычные PHP-файлы). Пожалуй, это одна из немногих вещей, к которой я до сих пор полностью не привык из-за ограничений Blade; например, периодически вылазят какие-то косяки со вложенными/перекрытими секциями.

но зато понятно что за зверь такой @yield.

С ним тоже есть косяк - почему, например, разделены переменные шаблона (View->with()) и секции (@section)? Бывают случаи, когда нужно вставить переменную-"секцию" из строки или наоборот и приходится что-то придумывать. Опять же, не очень правильно, что от того, как в шаблоне определён вывод переменной (по сути что {{ }}, что @section - одно) зависит как эту переменную привязывать контроллером или другой частью логики.

Хотя идея с @section и @parent очень интересная.

в каждой вьюхе писать @layout - это не DRY

Я обычно делаю метод build() в базовом классе контроллера и тот оборачивает вывод в шаблон полной страницы нужного дизайна (обычный, "коробка" типа формы входа и т.п.), но в принципе в @layout('regular') или @layout('box') нет ничего плохого. Другое дело, что не каждая страница может генериться из шаблона и получается, что там пишем @layout, а в другом месте - view()->with().

Не в сети

#3 31.05.2012 08:36:45

medar
Откуда: Москва
Сообщений: 36

Re: Скринкаст: пример приложения на Laravel c нуля

Я обычно делаю метод build() в базовом классе контроллера и тот оборачивает вывод в шаблон полной страницы нужного дизайна (обычный, "коробка" типа формы входа и т.п.)

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

View::make("home.index")->

, который юзается в хэлпах и в инструменте bob, в реальном проекте (есть layout, который должен поддерживать смены дизайна) абсолютно бесполезен, его приходится везде менять на что-то типа

$this->build_view("home.index")->

и делать свой Base_Controller с функцией build_view. Раз ларавель - это такие рельсы-на-php , то почему сразу не зашить в него удобную структуру ?

Изменено medar (31.05.2012 08:39:26)

Не в сети

#4 31.05.2012 09:02:36

Re: Скринкаст: пример приложения на Laravel c нуля

Согласен. Видимо, у Тейлора свои соображения по этому поводу. В целом, шаблоны/Blade выглядят наименее проработанной частью библиотеки, и вроде как единственной.

Не в сети

#5 03.08.2012 18:14:37

Re: Скринкаст: пример приложения на Laravel c нуля

Если используешь контроллеры + layout, самое то. Все удобно и просто. И использовать секции как в видео, тоже удобно.

Не в сети

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