codeigniter + hmvc + smarty или использование общих библиотек внутри модулей
Я создаю сайт, используя CI, HMVC и Smarty. Я впервые использую HMVC, и я не понимаю, как я могу использовать общие библиотеки в модулях.
Я предпочитаю использовать Smarty на своих сайтах, и обычно это просто: я создаю обертку для smarty, загружаю ее автоматически и использую в контроллерах, где это необходимо. Но теперь мне нужно использовать smarty в контроллере модуля, и я не знаю, как получить к нему доступ. Есть идеи, как я могу это сделать?
Я изучал проблему в течение нескольких дней, но не повезло.
Есть некоторые ответы, которые я просто не получаю: как этот
РЕДАКТИРОВАТЬ: CI 2.1.0, HMVC 5.4, Smarty 3.1.6 (но это не имеет значения)
2 ответа
Вы можете расширить свой ум в ваших модулях с модулями. дорожка.
Пример:
class MySmartie extends Smartie {
function __construct()
{
parent::__construct();
$this->template_dir = APPPATH . "modules/client/views/templates";
$this->compile_dir = APPPATH . "modules/client/views/templates_c";
}
}
И загрузите этот класс в конструктор класса ваших модулей следующим образом:
public function __construct()
{
$this->load->library(['mysmartie' => 'smarty']);
}
Примечание: не загружайте smarty в config/autoload.php, это может привести к конфликту при загрузке.
Вот несколько способов:
В приложении / библиотеках
Просто поместите общие библиотеки в папку application/library и загрузите, используя $this->load->library('my_library');
Создать общий модуль
Другим вариантом будет создание нового модуля, скажем, common
, в котором вы можете иметь папки libraries
,models
,helpers
, Здесь вы можете поместить файлы, которые являются общими для других модулей. Затем вы можете загрузить их, используя $this->load->library('common/my_library');
Надеюсь, это поможет.