我正在使用CI,HMVC和Smarty建立一个网站。这是我第一次使用HMVC,我不明白如何在模块中使用公共库。
我更喜欢在我的网站上使用Smarty,通常它是小菜一碟:我为smarty创建了一个包装器,自动加载它并在必要时在控制器中使用它。但现在我需要在模块控制器中使用smarty,我不知道如何访问它。我有什么想法可以做到吗?
我一直在研究这个问题几天,没有运气。
有些答案我不明白:like this one
编辑:CI 2.1.0,HMVC 5.4,Smarty 3.1.6(但这无关紧要)
答案 0 :(得分:0)
以下是两种方法:
在应用程序/库中
只需将公共库放在application / libraries文件夹中,然后使用$this->load->library('my_library');
创建一个通用模块
另一种选择是创建一个新模块,比如common
,您可以在其中设置文件夹libraries
,models
,helpers
。在这里,您可以放置其他模块共有的文件。然后,您可以使用$this->load->library('common/my_library');
我希望有所帮助。
答案 1 :(得分:0)
您可以使用模块扩展模块中的智能。路径。
实施例:
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']);
}
注意:不要在config / autoload.php中加载smarty,否则可能会在加载时产生冲突。