Как разбить большой контроллер на разные файлы в Codeigniter? - PullRequest
3 голосов
/ 27 апреля 2011

Контроллер Codeigniter, который я пишу, становится большим.Как разделить код на разные файлы?

Ответы [ 2 ]

7 голосов
/ 27 апреля 2011

Вещи, которые вы определенно должны делать:

  • Все, что строго связано с контроллером, оставьте в покое.

  • Убедитесь, что выПереместите не менее 99% логики представления (html) в правильные файлы представления.

  • Переместите всю обработку данных в Модель .Это включает взаимодействие с базой данных, манипулирование файлами и обработку форм.

Что вы, вероятно, должны делать:

  • Все, что вы часто повторяете,вместо этого создайте для него функцию, если это возможно.

  • Соберите все связанные функции и создайте Библиотеки в application/libraries/.

  • Все, что осталось, например, независимые общие функции, создайте файл helper в application/helpers.Если вы знаете, что они вам всегда будут нужны, возможно, назовите это global_helper.php или что-то подобное.Вы можете разбить их на несколько файлов позже, если это будет слишком тесно.

  • Используйте базовый контроллер .Создайте файл core/MY_Controller.php.Используйте это для всего, что, как вы знаете, понадобится глобально для ваших контроллеров.В этом файле вы можете создать столько расширений, сколько вам нужно, для разных «типов» контроллеров (например, Front_Controller, Back_Controller, Login_Controller), просто убедитесь, что вы расширили класс в файлах вашего контроллера, например Blog_Controller extends MY_Controller.

Убедитесь, что вы внимательно прочитали руководство пользователя , чтобы вы могли воспользоваться преимуществами встроенного в среду, возможно, вы пишете ненужный код, потому что не знаете о доступных функциях.

0 голосов
/ 27 апреля 2011

Похоже, у вас слишком много функций, связанных с разными вещами в вашем контроллере. Попробуйте выяснить, что вы можете разделить на отдельные контроллеры. В противном случае ваш контроллер может превратиться в объект бога .

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