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

цель

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

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

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

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

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

  3. Search->Class Details - страница сведений о классе в поисковом модуле

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

и так же для пакетов -

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

  3. Search->Pack Details - страница сведений о пакете в поисковом модуле

  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>

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

Спасибо

0 ответов

Другие вопросы по тегам