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');

Надеюсь, это поможет.

Другие вопросы по тегам