У меня была одна проблема при вызове контроллера с другого контроллера, один из пользователей stackoverflow предложил использовать require_once, но другой человек сказал, что это не очень хорошая идея, теперь я запутался, что безопасно? Использовать require_once или написать функцию в помощнике?
Ссылка на старый вопрос
Что безопасно: использовать required один раз или сделать одну функцию в помощнике в codeigniter?
Ответы (2)
В целом я бы сказал, что вызов контроллера из другого контроллера — не лучшая практика. Если два контроллера должны использовать одну и ту же логику, возможно, эта логика должна быть в отдельном месте. Это можно сделать, создав собственную библиотеку и загрузив ее в оба контроллера.
Перейдите по ссылке ниже, чтобы узнать больше о создании библиотек в CodeIgniter.
Это не столько вопрос «безопасности», сколько вопрос «соглашения» в том, как все делается в среде CodeIgniter (CI). «Идея» контроллера в CI заключается в том, что для любого заданного запроса к серверу создается только один контроллер.
Причина, по которой использование require
для загрузки другого контроллера может быть небезопасным, заключается в том, что вы можете внести ошибки, которые очень сложно отследить. Есть более безопасный способ удовлетворить ваши потребности.
В ситуации, когда есть код, который был бы полезен более чем в одном контроллере, лучшим решением, вероятно, будет создание пользовательской библиотеки, которую можно будет загружать и использовать по мере необходимости. Также может помочь Помощник. ИМО, библиотеки (классы) являются ООП и предпочтительны.
Документация CI по Создание библиотек описывает, как реализовать пользовательские классы, которые легко использовать. в любом количестве контроллеров.