Как мой подход к повторному использованию логики представления в моем проекте? - PullRequest
1 голос
/ 13 августа 2010

Цель

Для реализации правильной и эффективной архитектуры представления для моего проекта (с максимальным повторным использованием повторяющихся единиц)

О моем проекте

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

У меня есть следующие модули -

  1. Поиск-> Списки классов - список отображаемых классовв результатах поиска.
  2. Комната для учеников-> Список классов - Список приобретенных учеником классов

  3. Поиск-> Сведения о классе - Страница сведений о классев поисковом модуле

  4. Студенческая комната-> Сведения о классе - Страница сведений о классе в Студенческой комнате

и аналогично для пакетов -

Поиск-> Списки пакетов - список пакетов, отображаемых в результатах поиска.

Студенческая комната-> Списки пакетов - список пакетов, приобретенных студентом.

Поиск-> Сведения о пакете - страница сведений о пакете в модуле поиска

Комната ученика-> Информация о пакете - страница сведений о пакете в комнате ученика.

Мой текущий план

Я планирую иметь такие классы: -

Class Name                               Contents



commonListingDisplay                     paginationHtml()
                                         smallRatingHtml()
commonDetailsDisplay                     commentsHtml()
                                         largeRatingHtml()

commonClassPackListingDisplay extends commonListingDisplay   
                                         abbreviatedDetailsHtml()

                                         (abbreviated  class/pack                    
                                          details html (class/pack details
                                          ending with ... and a link to the
                                          Class/pack details page).

commonClassPackDetailsDisplay extends commonDetailsDisplay
                                         currently empty

commonClassDisplay                       classDateTimeHtml()
                                         classReminderHtml()

classDetails extends commonClassPackDetailsDisplay,commonClassDisplay

Теперь на примере модуля - В то время как в Search-> Сведения о классе- - Из файла search_class_details.controller.php инициируйте объект класса classDetails, чтобы были доступны все повторно используемые функции.- Передайте все переменные и объект classDetails в class_details.view.php (который является файлом представления модуля class_details).Файл будет выглядеть примерно так: -

<div class="class_details">
<h2><?php echo $className ?></h2>
<div><?php echo $classDetails ?></div>
<?php  $classDetailsObj->largeRatingHtml($ratingValue) ?>

<?php $classDetailsObj->commentsHtml($commentsArray) ?>

</div>

Как выглядит подход?Хотели пожелания опытных людей.

Спасибо

...