Codeigniter MVC контроллер архитектуры - PullRequest
2 голосов
/ 16 марта 2010

Я создаю сайт с использованием CodeIgniter, который в основном состоит из статического контента (хотя будет относительно небольшой бэкэнд CMS и есть код для обработки локализации / интернационализации на основе домена, используемого для доступа к нему). Как правило, в такой ситуации я бы использовал контроллер Pages, отвечающий за рендеринг статического контента, но, поскольку на сайте имеется достаточное количество страниц (более 30), он быстро заканчивал бы множеством методов. (по одному на страницу).

Должен ли я разбить свой контроллер страниц на несколько контроллеров (которые, возможно, наследуются от него) в соответствии с различными разделами сайта? Должен ли я организовать методы по-другому в контроллере страниц? Какая лучшая практика здесь?

Спасибо!

Justin

Ответы [ 2 ]

2 голосов
/ 16 марта 2010

Я бы сказал, разделить ваш контроллер на несколько. Не только становится легче найти в файле все, что вам нужно для работы, но, вероятно, существует связь между методами, которые «принадлежат» одному и тому же разделу. Конечный результат - более организованный проект,

В качестве альтернативы, почему бы не иметь один единственный метод, который обслуживает статическую страницу, и решить, какую страницу обслуживать, основываясь на URL ($ id)? Вам нужно немного поиграть с маршрутами CI, чтобы вместо site.com/pages/static_page_x все еще оставалось «site.com/pages/view/static_page_x», но если у вас есть постоянный способ доступа к статические страницы, это сохранит некоторую типизацию, даст вам возможность добавлять новые страницы, не касаясь кода контроллера, а также может пригодиться, если вы хотите применить ко всем статическим страницам то, что вам не нужно до этого.

0 голосов
/ 27 августа 2010

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

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