使用Symfony 1.4的自动加载器加载命名空间类吗? [英] Loading namespaced classes with Symfony 1.4's autoloader?

查看:131
本文介绍了使用Symfony 1.4的自动加载器加载命名空间类吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在Symfony 1.4中为自动加载器类功能注册名称空间(使用PHP 5.3)(例如 Symfony 2.0 )?

How to register namespaces (with PHP 5.3) in the Symfony 1.4 for the autoloader class feature (like the Symfony 2.0)?

推荐答案

您可以在Symfony 1.4框架中使用来自Symfony2的自动加载器.

You can use Autoloader from Symfony2 in Symfony 1.4 framework.

1.将Symfony2类加载器复制到Symfony 1.4沙箱项目的供应商目录中:

SF_ROOT_DIR/lib/vendor/Symfony2/src/Symfony/Component/ClassLoader/UniversalClassLoader.php

SF_ROOT_DIR/lib/vendor/Symfony2/src/Symfony/Component/ClassLoader/UniversalClassLoader.php

SF_ROOT_DIR/lib/vendor/Symfony2/src/Symfony/Component/ClassLoader/ApcUniversalClassLoader.php

SF_ROOT_DIR/lib/vendor/Symfony2/src/Symfony/Component/ClassLoader/ApcUniversalClassLoader.php

2.修改您的SF_ROOT_DIR/config/ProjectConfiguration.class.php文件,如下所示:

require_once dirname(__FILE__) . '/../lib/vendor/symfony/lib/autoload/sfCoreAutoload.class.php';
require_once dirname(__FILE__) . '/../lib/autoload/sfClassLoader.class.php';
sfCoreAutoload::register();

class ProjectConfiguration extends sfProjectConfiguration {

    public function setup() {
        $this->namespacesClassLoader();
        $this->enablePlugins('sfDoctrinePlugin');
    }

    public function namespacesClassLoader() {
       if (extension_loaded('apc')) {
           $loader = new ApcUniversalClassLoader('S2A');
       } else {
           $loader = new UniversalClassLoader();
       }
       $loader->registerNamespaces(array(
          'Pohon' => __DIR__ . '/../lib/vendor/Pohon/src'));
       $loader->register();
    }

}

3.注册所需的名称空间:
例如.我要加载课程:

3. Register desired namespaces:
eg. I want to load class:

Pohon \ Tools \ String \ Utils \ Slugify.

Pohon\Tools\String\Utils\Slugify.

文件名必须为:

SF_ROOT_DIR/lib/vendor/Pohon/src/Pohon/Tools/String/Utils/Slugify.php

SF_ROOT_DIR/lib/vendor/Pohon/src/Pohon/Tools/String/Utils/Slugify.php

和注册的名称空间如下:

and registered namespace as follows:

Pohon => SF_ROOT_DIR/lib/vendor/Pohon/src

Pohon => SF_ROOT_DIR/lib/vendor/Pohon/src

这篇关于使用Symfony 1.4的自动加载器加载命名空间类吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆