Вопросы по CodeIgniter и HMVC

Прежде всего, прошу прощения за любое удобство, вызванное этим постом, потому что я впервые публикую здесь вопрос, и мне нужно больше времени, чтобы привыкнуть к этому.

Q1. Я хочу создать 2 «главных контроллера» для FrontEnd и BackEnd следующим образом:

  • MY_Controller extends CI_Controller
  • FrontEnd extends MY_Controller , и все контроллеры внешнего интерфейса расширяют FrontEnd .
  • BackEnd расширяет MY_Controller и все контроллеры внутреннего интерфейса расширяют BackEnd .

Как лучше всего это сделать с помощью HMVC (MX)?

Спасибо @Wesley Murch за идею поместить 3 класса MY_Controller, Frontend, Backend в MY_Controller.php, но я думаю, что каждый класс помещается в один php файл лучше (чище). Или я ошибаюсь? Я думал создать такую ​​структуру:

  • ./ core / MY_Controller.php (extends MX_Controller)
  • ./ li braries / Backend.php (расширяет MY_Controller)
  • ./ библиотеки / Frontend.php (расширяет MY_Controller)
  • Автозагрузка Backend и Frontend в autoload.php
  • Все контроллеры внешнего интерфейса будут расширять Внешний интерфейс (например: class Blog extends Frontend )
  • Все контроллеры внутреннего интерфейса будут расширять Backend (например: class Admin extends Backend )

Будет ли это работать без добавления еще одной строчки кода в контроллеры backend / frontend в include_once или require_once : ./ библиотеки / Backend.php или ./ библиотеки / Backend.php ?


Q2. Как реализовать несколько тем с HMVC? Например, в MVC мы можем иметь 2 темы, расположенные следующим образом:

  • ./ application / views / theme1 /view_files.php
  • ./ application / views / theme2 /view_files.php

Но в HMVC папки представлений находятся внутри отдельных папок, и если я хочу реализовать несколько тем, обычно мне нужно сделать следующее:

  • ./ application / modules / module1 / views / theme1 /view_files.php
  • ./ application / modules / module1 / views / theme2 /view_files.php
  • ./ приложение / модули / модуль2 / views / theme1 /view_files.php
  • ./ application / modules / module2 / views / theme2 /view_files.php

Это не то, что я хочу, потому что я хочу поместить все файлы представлений темы только в одну папку, а позже, если я хочу создать новую тему, мне нужно будет продублировать только одну папку темы. Но мне интересно, как я могу это сделать, не нарушая модели HMVC (потому что, насколько я знаю, в модели HMVC модели, представления, контроллеры должны находиться в одной папке модуля - по крайней мере, с CI). Это конфликт, в котором я застрял.

7
задан Michael Bui 22 July 2011 в 17:28
поделиться