codeigniter + hmvc + smarty或在模块中使用通用库

时间:2011-12-04 14:38:15

标签: php codeigniter smarty

我正在使用CI,HMVC和Smarty建立一个网站。这是我第一次使用HMVC,我不明白如何在模块中使用公共库。

我更喜欢在我的网站上使用Smarty,通常它是小菜一碟:我为smarty创建了一个包装器,自动加载它并在必要时在控制器中使用它。但现在我需要在模块控制器中使用smarty,我不知道如何访问它。我有什么想法可以做到吗?

我一直在研究这个问题几天,没有运气。

有些答案我不明白:like this one

编辑:CI 2.1.0,HMVC 5.4,Smarty 3.1.6(但这无关紧要)

2 个答案:

答案 0 :(得分:0)

以下是两种方法:

在应用程序/库中

只需将公共库放在application / libraries文件夹中,然后使用$this->load->library('my_library');

加载

创建一个通用模块

另一种选择是创建一个新模块,比如common,您可以在其中设置文件夹librariesmodelshelpers。在这里,您可以放置​​其他模块共有的文件。然后,您可以使用$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,否则可能会在加载时产生冲突。