autoload ['helper'] = array('url');我怎么能像codeigniter一样加载url helper

时间:2011-12-17 16:13:14

标签: php autoloader

此时我想构建一个MVC框架。一切都很顺利,但现在我想添加另一个功能(自动加载类,如codeigniter)。例如,在我的autoload.php中,我有:

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

如何通过此加载url类?

4 个答案:

答案 0 :(得分:1)

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

foreach($autoload['helpers'] as $helper)
{
    include_once($your_base_path . $path_to_helpers . $helper . '.php');
}

答案 1 :(得分:1)

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

$autoload['libraries'] = array('database','ion_auth');
$autoload['helper'] = array('url');

答案 2 :(得分: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;
        }
    }
}

答案 3 :(得分:0)

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

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

我希望这会有所帮助。