структура проекта и общий доступ к var под всеми контроллерами модулей - PullRequest
0 голосов
/ 05 мая 2011

У меня следующая структура:

modules/group
modules/group/modules/forum
modules/group/modules/gallery
modules/group/modules/events

Это правильный способ структурирования групп?или лучше

modules/group
modules/group/controllers/ForumController.php
modules/group/controllers/GalleryController.php
modules/group/controllers/EventsController.php

И еще вопрос.Мне нужен групповой объект во всех контроллерах действий под групповым модулем, и я не хочу писать следующий код во всех контроллерах

$group = Group::model()->findByPk($_GET['idgroup']);

URL-адрес как:

/group/<idgroup>/forum/<idforum>
/group/<idgroup>/gallery/<idgallery>

Как правильносделать это?

1 Ответ

1 голос
/ 05 мая 2011

Это правильный способ структурирования групп?

Ответ зависит от нескольких вещей:

  • Вы тянете в форум, галерею и событиямодули сторонних производителей?
  • Содержат ли форумы, галереи и события собственные модели, представления и контроллеры?
  • Планируете ли вы создавать автономные модули для форумов, галерей и событий, которые могут использоваться другимииспользовать в своих приложениях Yii?

Если что-либо из перечисленного выше, то да, имело бы смысл поместить их в свои собственные модули.В противном случае было бы предпочтительнее добавить их в модуль group.

Согласно документации Yii:

Модуль - это автономный программный модуль, состоящий из моделей, видов,контроллеры и другие вспомогательные компоненты.


Что касается добавления объекта группы ко всем действиям контроллера, обычно я добавляю базовый класс Controller для моего модуля (что-то вроде /group/components/GroupController.php)и расширить этот контроллер, а не базовый во всех моих контроллерах.GroupController должен расширять Yii CController и содержать групповой объект, который вы хотите иметь доступным из контроллеров вашего модуля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...