Полностью согласен с ответом Йондавиджона . Я предлагаю просто делать то, что работает для вас на данный момент, и не слишком беспокоиться о накладных расходах или делать «правильные» вещи. Вскоре вы поймете, что вам нужно делать и как организовать, и что касается накладных расходов - Codeigniter довольно скудный, не беспокойтесь об оптимизации на данном этапе - просто заставьте все работать так, как вы хотите.
Возьмите свой первый проект Codeigniter и сделайте его как можно лучше, но просто рассмотрите его как одноразовое приложение. Каждый раз, когда вы работаете с ним, вы узнаете больше о том, как им пользоваться, особенно если вы продолжаете читать и задавать вопросы.
Чтобы ответить на ваш буквальный вопрос: нет, нет ничего плохого в загрузке модели для каждого метода. На самом деле, это может быть «лучше», чем загрузка в __construct
вашего контроллера, потому что он гарантирует, что вы загружаете только то, что вам нужно. Так что не беспокойся об этом.
Пока что я создаю один контроллер для раздела сайта с методом для каждой страницы - большинство из них являются статическими страницами
В этом нет ничего плохого, но, чтобы упростить задачу, вы можете использовать один и тот же метод для каждой из ваших статических страниц и сохранить свои URL-адреса одинаковыми. Примерно так:
class Pages extends CI_Controller {
public function __construct()
{
parent::__construct();
}
function index($page)
{
$this->load->view("pages/$page");
}
}
// config/routes.php
$route['page/(:any)'] = 'pages/index/$1';
Это отобразит URL /page/my_first_page
на контроллер страницы и вызовет index()
с аргументом my_first_page
. Затем вы можете использовать это для всех ваших статических страниц без динамических данных. Вы можете пойти еще дальше, но это пример одной из опций, которую вы можете выбрать, чтобы не писать новый метод для каждой статической страницы.