Intereting Posts
Удаленная отладка PHP: XDebug не может подключиться к клиенту JetBrains php Storm Создание нескольких таблиц MySQL с использованием PHP Проверка и преобразование десятичных значений в CakePHP Regex – удалить все матчи, оставив последний Проверка, а затем перенаправление на почтовый маршрут в Ларавеле Magento – получить все категории, содержащие продукты по брендам Комбинация поиска полей с использованием PHP и MYSQL Я получаю «Ваши требования не могут быть разрешены к устанавливаемому набору пакетов». Когда я запускаю обновление для композитора Ошибка PHP Вызов в формат функции участника () в массиве Можно ли извлечь встроенный CSS из HTML? HTML5 Audio Element "src = get.php не может пропустить позицию PHP – `get_headers` возвращает« 400 Bad Request »и« 403 Forbidden »для действительных URL-адресов? Laravel: как заполнить лезвие SELECT со значениями из оператора where Добавление тегов в продукты Magento Модель Observer, не работающая для обновления?

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

цель

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

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

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

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

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

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

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

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

  1. Search-> Pack – список пакетов, отображаемых в результатах поиска.
  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 
  • Я знаю, что PHP не поддерживает множественное наследование, но это может быть поддельно, как ответили. Могу ли я расширить класс, используя более 1 класс в PHP?

Теперь, взяв пример модуля – В Search-> Class details- – В файле 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> 

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

благодаря