加载资源

编辑该页面

警告:你浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 2.4,不再维护。

这个页面的更新版本Symf欧宝娱乐app下载地址ony 6.2(当前的稳定版本)。

加载资源

定位资源

加载资源的配置通常始于一个搜索-在大多数情况下:文件。这可以完成了FileLocator:

1 2 3 4 5 6
使用欧宝娱乐app下载地址\组件\配置\FileLocator;美元configDirectories=数组(__DIR__/应用程序/配置的);美元定位器=FileLocator (美元configDirectories);美元yamlUserFiles=美元定位器- >定位(“users.yml”,,);

定位器接收到的集合地点应该寻找文件。的第一个参数定位()是寻找文件的名称。第二个参数可能是当前路径和提供时,首先定位器会在这个目录中。第三个参数表示是否定位器应该返回第一个文件发现,或者是一个数组,它包含所有比赛。

资源加载器

为每种类型的资源(YAML、XML注释等)必须定义一个加载器。每个加载程序应该实现LoaderInterface或扩展的抽象FileLoader类,它允许递归地导入其他资源:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21日22日23日24
使用欧宝娱乐app下载地址\组件\配置\加载程序\FileLoader;使用欧宝娱乐app下载地址\组件\Yaml\Yaml;YamlUserLoader扩展FileLoader{公共函数负载(美元资源,美元类型= null){美元configValues= Yaml::解析(美元资源);/ /……处理配置的值/ /也许进口一些其他资源:/ / $ this - >导入(“extra_users.yml”);}公共函数支持(美元资源,美元类型= null){返回is_string (美元资源)& &“yml”= = = pathinfo (美元资源,PATHINFO_EXTENSION);}}

找到合适的加载器

LoaderResolver收到的第一个构造函数参数加载器的集合。当一个资源(例如XML文件)应加载,它遍历集合的装入器并返回加载器支持这个特定资源类型。

DelegatingLoader利用LoaderResolver。当它被要求加载资源,它代表这个问题的LoaderResolver。解析器发现一个合适的加载程序,加载程序将被要求加载资源:

1 2 3 4 5 6 7 8 9 10 11
使用欧宝娱乐app下载地址\组件\配置\加载程序\LoaderResolver;使用欧宝娱乐app下载地址\组件\配置\加载程序\DelegatingLoader;美元loaderResolver=LoaderResolver (数组(YamlUserLoader (美元定位器)));美元delegatingLoader=DelegatingLoader (美元loaderResolver);美元delegatingLoader- >负载(__DIR__' / users.yml ');/ * YamlUserLoader将用于加载这个资源,因为它支持文件* / yml”延伸
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。