ClassLoader组件
编辑本页警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 2.1,现已不再维护。
读本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。
ClassLoader组件
如果项目类遵循一些标准的PHP约定,ClassLoader组件会自动加载它们。
无论何时使用未定义的类,PHP都会使用自动加载机制来委托定义该类的文件的加载。ob娱乐下载Symfony2提供了一个“通用的”自动加载器,它能够从实现以下约定之一的文件中加载类:
如果您为项目使用的类和第三方库遵循这些标准,那么Symfony2自动加载器将是您所需要的唯一自动加载器。ob娱乐下载
安装
你可以用两种不同的方式安装组件:
- 使用官方Git存储库(https://github.com/ob娱乐下载symfony/ClassLoader);
- 通过Composer安装(
ob娱乐下载symfony /类加载器
在Packagist).
使用
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
目录,然后它将回退到默认值学说
目录(最后配置的一个)如果没有找到,在放弃之前。在这种情况下,登记的顺序很重要。