Реализация логики

StalkerClasses

Новичок
Хотел бы интегрировать фреймворк (остановился на двух Yii, Laravel) в свой проект.
И заранее хотел узнать правильную реализацию идеи интеграции.

Есть таблица страниц "tbl_pages", контроллер и маршрут который обрабатывает страницы на основе дерева.

Есть таблица "tbl_content" содержимого с разбивкой на тип данных по полю ContentType (текст, картинка, слайдер, форма, плагин новости). Плагин новости выбирает данные из таблицы и по идее должен иметь свой роутер на основе роутера страницы.

Содержимое из таблицы собирается в переменную $content и передается в вид в странице.

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

Изображение с пояснениями приложил.Безымянный.png
 

scorpion-ds

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

WMix

герр M:)ller
Партнер клуба

scorpion-ds

Новичок
Я так понял что вопрос в повторном вызове основного action, а не дополнительных (siderbar, footer и т.п.).
 

StalkerClasses

Новичок
Нет вопрос не в повторном вызове.

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

К sidebar, footer это не имеет отношения.
 

AnrDaemon

Продвинутый новичок
Прости, но… откуда у тебя новости ВНУТРИ контента?…
 

fixxxer

К.О.
Партнер клуба
MVC в rails-подобном виде - это одна из возможных практик (и довольно примитивная), а не руководство к действию.
Никто тебе не запрещает добавить еще один слой.
 

StalkerClasses

Новичок
Прости, но… откуда у тебя новости ВНУТРИ контента?…
Редактор может собрать содержимое страницы из различного набора элементов.
В т.к. может быть вставлены новости, гостевая книга, фотогалерея - это все как правило динамические элементы.
 

StalkerClasses

Новичок
Также добавлю - что контроллер страницы и контроллер новости в принципе друг друга не трогают - за единственным исключением что с новости может быть отправлен title, meta, breadcrums. В остальном они живут отдельно друг от друга.
 

scorpion-ds

Новичок
Редактор может собрать содержимое страницы из различного набора элементов.
В т.к. может быть вставлены новости, гостевая книга, фотогалерея - это все как правило динамические элементы.
Понятно, блочная структура набора страницы, в CMS которую я разрабатывал был такой подход, но у нас не было основного action, при загрузке страница определяла что ей надо показать (как ты и пишешь некоторые блоки могли влиять на title, keywords и т.п.), я бы наверно просто в action вызывал бы свой "контролер" который бы уже набирал страницу из блоков.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
новости не нужен контроллер - она просто выводится где-то, без пользовательских действий и окружения вызова

собрать содержимое из элементов может только модель

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

зачем вы тянете за уши иерархические контроллеры в обычной задаче, которая решается в лоб - не понимаю
 
Последнее редактирование:

WMix

герр M:)ller
Партнер клуба
Это скорее костыль, чем нормальная практика.
я так не считаю, у нас проектик весь изресован внутренними вызовами, и есть 2 вида без js и с ним. без скрипта страничка генерится полностью, с js на клики догружаются блоки. получилось очень прозрачно.
 

fixxxer

К.О.
Партнер клуба
я так не считаю, у нас проектик весь изресован внутренними вызовами, и есть 2 вида без js и с ним. без скрипта страничка генерится полностью, с js на клики догружаются блоки. получилось очень прозрачно.
а если такой action захочет сделать редирект?
 

Yoskaldyr

"Спамер"
Партнер клуба
ты сейчас про комманды (post), а я про запросы (get).
Ну вообще-то редиректы из поста делать - не очень хорошая идея, поэтому скорее всего имелся ввиду именно GET, хотя вопрос можно расширить, что будет если action вернет что либо отличное от обычного ответа - редирект, ошибку доступа, не найдено и т.д. И что будет если будет рекурсия прямая или через несколько вложенных вызовов?
HMVC иногда бывает удобным для быстрого фигак-фигак и в продакшен для определенного типа сайтов, но есть куча нюансов, которые потом вылазят боком.
 

Yoskaldyr

"Спамер"
Партнер клуба
@WMix, Ну вообще-то все зависит от целей редиректа. Редирект можно использовать как для нормализации ссылок так и для возврата куда либо после пост запроса.
Результатом редиректа - должен всегда быть get запрос, но есть нюансы поведения браузера в зависимости от типа запроса и типа редиректа.
Т.е. в зависимости от типа редиректа браузер может переспросить "Вы хотите переотправить данные формы на новый адрес", а может сделать простой get. Любые вопросы при отправке формы не очень в плане юзабилити.

Но все это нюансы типа ответа action-а. Вот почему вопрос стоит шире - как поведет себя шаблон если вызываемые action-ы будут возвращать что-то нестандартное - редиректы, ошибки и т.п.
 
Сверху