Прежде всего, модули не должны ограничиваться моделью из базы данных. У вас может быть модуль Foo, который не зависит от содержимого базы данных, и модуль Bar, который в основном основан на трех разных моделях. Разделение модулей — это способ логически разбить ваш сайт на управляемые разделы. Например, сайт электронной коммерции может иметь модуль «Продукты», модуль «Категории», модуль «Корзина» и так далее.
Ваше последнее предложение может быть разделено на 2 части:
1) Статическая информация может быть на любой странице — если она предназначена для таких вещей, как «О нас», «Часто задаваемые вопросы» и т. д., я лично предпочитаю использовать модуль «по умолчанию» или «домашний» и создавать там различные действия:
./symfony generate:module appname home
и
class homeActions extends sfActions
{
public function executeAbout(sfWebRequest $request)
{
// ...
}
public function executeFaq(sfWebRequest $request)
{
// ...
}
}
с соответствующими файлами шаблонов (aboutSuccess.php, faqSuccess.php).
2) Страница может состоять из данных из множества разных моделей — просто используйте предпочитаемый вами метод ORM для получения данных и установите его для представления ($this->data = MyModel->findByColumn(...)
и т. д.). Если вы имеете в виду данные из разных модулей, то вам, вероятно, лучше искать части или компоненты для элементов страницы, которые можно использовать в разных модулях (навигация и т. д.). Подробнее о эти.
person
richsage
schedule
06.01.2010