1

这时候我想搭建一个MVC框架。一切正常,但现在我想添加另一个函数(自动加载类,如 codeigniter)。例如在我的 autoload.php 中,我有:

$autoload['helpers'] = array('url');

我怎样才能通过这个加载 url 类?

4

4 回答 4

1

相当精简,但概念如下所示。/system/core/Loader.php您可以在其文件中查看 CI 的自动加载方式。

foreach($autoload['helpers'] as $helper)
{
    include_once($your_base_path . $path_to_helpers . $helper . '.php');
}
于 2011-12-17T16:23:05.377 回答
1

我在这里找到了答案。但这里有一些例子:

$autoload['libraries'] = array('database','ion_auth');
$autoload['helper'] = array('url');
于 2013-05-03T13:21:43.947 回答
0

在助手方面,Aaron 的例子很棒,但是如果你想要额外的类,你可能也想创建它们的实例:

$autoload = array();
$autoload['libraries'] = array('url');

foreach($autoload as $set)
{
    foreach($set as $class)
    {
        if(file_exists($set.'/'.$class.'.php'))
        {
            require_once($set.'/'.$class.'.php');
            $this->$class = new $class;
        }
    }
}
于 2011-12-17T16:30:26.683 回答
0

你可以很容易地做到这一点,就像 codeigniter 所做的那样,通过构建一个数组,遍历数组并使用标准加载类,如php.net上的。由于这是您尝试构建的您自己的 MVC 框架,您可以将 Zend::autoloader 作为扩展添加到您的框架。我假设您将有一个配置文件,并且您可以在其中定义您的库包含,就像您要使用 Pear 或任何其他扩展库一样,您可以拉出所有 Zend 类并从中扩展。当我使用 codeigniter 时,我通常添加 Zend 作为扩展,以使框架更加健壮,而不是重新发明轮子。

这是将zend 与 codeigniter合并的参考链接,它相当旧,可能需要进行一些调整以匹配当前的 codeigniter 版本。

我希望这有帮助。

于 2011-12-17T16:30:51.633 回答