Как разделить большой контроллер на разные файлы в Codeigniter?

#codeigniter

#codeigniter

Вопрос:

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

Ответ №1:

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

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

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

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

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

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

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

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

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

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

Ответ №2:

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