Я вижу, куда вы идете, но, возможно, я думал о пространствах логики, где вы могли бы изменить две или более таблиц одновременно. Как вы сказали, это должно быть изолировано от кода контроллера, но, строго говоря, я не верю, что такая логика также принадлежит классу Lithium "Model". Существует множество аспектов класса Model, которые подразумевают его как специфичный для таблицы - у него есть члены схемы, ключа и идентификатора, которые центрируют каждый его экземпляр вокруг определенной таблицы. Я полагаю, что ответ, таким образом, заключается в том, что разработчик приложения должен предоставить слой между таблицами между классами Model и Controller.

олее или менее ориентированная на фреймворк версияПрошлый вопрос переполнения стекао том, как в большинстве вводных материалов по приложениям MVC присутствует тесная связь между моделями, представлениями и контроллерами. Например, у вас будет таблица User, которая модифицируется контроллером пользователя, который, в свою очередь, передает отфильтрованные данные в представление пользователя. У меня сложилось впечатление, что многие MVC-фреймворки, как правило, также отражают этот паттерн. Это все хорошо, но это никогда не приводит меня к чему-либо, кроме создания и отображения монотонных списков вещей в форме HTML.

Структура MVC, которая смотрит прямо сейчаслитий, что представляется довольно интересным примером использования умных техник кодирования PHP5.3. На одном конце Литий имеетModel Класс, который предлагает объекты-оболочки вокруг отдельных таблиц и абстрагирует некоторые простые запросы. С другой стороны, у него есть отличное соглашение о маршрутизации URL-адресов для вызовов методов на объектах контроллера, которые затем отображаются для отображения шаблонов.

Но посреди этого я не понимаю, куда поместить всю интересную логику, которая связывает данные в таблице A с данными в таблицах от B до Z. Или, по крайней мере, я не уверен, где разместить такие логика таким образом, который согласуется с дизайном структуры. Насколько я понимаю, ЛитийModel абстракция не делает намного больше, чем просто устраняет некоторые шаблоны вставки / обновления / удаления на уровне строк, а архитектура контроллера / представления в основном связана с пользовательским интерфейсом. Я не хотел бы помещать много бизнес-логики в одно и то жеController класс, получающий перенаправленные вызовы функций из запросов URL.

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

Что мне здесь не хватает? Есть ли рекомендуемая архитектура или философия для использования этого типа фреймворка?

Ответы на вопрос(1)

Ваш ответ на вопрос