ClassLoader组件

编辑本页

警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 2.1,现已不再维护。

本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。

ClassLoader组件

如果项目类遵循一些标准的PHP约定,ClassLoader组件会自动加载它们。

无论何时使用未定义的类,PHP都会使用自动加载机制来委托定义该类的文件的加载。ob娱乐下载Symfony2提供了一个“通用的”自动加载器,它能够从实现以下约定之一的文件中加载类:

  • 技术互操作性标准用于PHP 5.3命名空间和类名;
  • 类的命名约定。

如果您为项目使用的类和第三方库遵循这些标准,那么Symfony2自动加载器将是您所需要的唯一自动加载器。ob娱乐下载

安装

你可以用两种不同的方式安装组件:

使用

2.1

useIncludePath方法是在Symfony 2.1中添加的。ob娱乐下载

注册UniversalClassLoader自动装载机是直截了当的:

12 3 4 5 6 7 8 9 10 11 12
require_once' /道路/ / src /ob娱乐下载 Symfony /组件/类加载器/ UniversalClassLoader.php '使用ob娱乐下载组件类加载器UniversalClassLoader加载程序UniversalClassLoader ();//最后可以搜索include_path。加载程序->useIncludePath (真正的);/ /……在这里注册名称空间和前缀-见下文加载程序->注册();

类路径可以使用APC通过注册ApcUniversalClassLoader

1 2 3 4 5 6 7
require_once' /道路/ / src /ob娱乐下载 Symfony /组件/类加载器/ UniversalClassLoader.php 'require_once' /道路/ / src /ob娱乐下载 Symfony /组件/类加载器/ ApcUniversalClassLoader.php '使用ob娱乐下载组件类加载器ApcUniversalClassLoader加载程序ApcUniversalClassLoader (“apc.prefix”。);加载程序->注册();

自动加载器是有用的,只有当你添加一些库到自动加载。

请注意

自动加载器自动注册在Symfony2应用程序中(请参阅ob娱乐下载app / autoload.php).

如果要自动加载的类使用名称空间,则使用registerNamespace ()registerNamespaces ()方法:

1 2 3 4 5 6 7 8
加载程序->registerNamespace (Sob娱乐下载ymfony的__DIR__' /供应商/ sob娱乐下载ymfony / symfony / src ');加载程序->registerNamespaces (数组Sob娱乐下载ymfony的= >__DIR__“/ . . /供应商/ob娱乐下载 symfony / symfony / src '“独白”= >__DIR__“/ . . /供应商/独白/独白/ src '));加载程序->注册();

对于遵循PEAR命名约定的类,使用registerPrefix ()registerPrefixes ()方法:

1 2 3 4 5 6 7 8
加载程序->registerPrefix (“Twig_”__DIR__' /供应商/枝树枝/ lib”);加载程序->registerPrefixes (数组“Swift_”= >__DIR__' /供应商/ swiftmailer swiftmailer / lib /类的“Twig_”= >__DIR__' /供应商/枝树枝/ lib”));加载程序->注册();

请注意

一些库还要求它们的根路径注册在PHP包含路径(set_include_path ()).

来自子名称空间或PEAR类的子层次结构的类可以在位置列表中查找,以简化大型项目的类子集的供应:

1 2 3 4 5 6 7 8
加载程序->registerNamespaces (数组“原则\ \普通”= >__DIR__“共同/ lib /供应商/理论/”“教义\ \ DBAL \ \迁移”= >__DIR__“/ lib /供应商/理论/迁移”“教义\ \ DBAL”= >__DIR__' /供应商/理论/ dbal / lib”“原则”= >__DIR__“orm / lib /供应商/理论/”));加载程序->注册();

类中的类,如果在此示例中尝试使用学说\常见名称空间或其子名称空间下的类时,自动加载器将首先查找doctrine-common目录,然后它将回退到默认值学说目录(最后配置的一个)如果没有找到,在放弃之前。在这种情况下,登记的顺序很重要。

此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。