加载资源
编辑该页面加载资源
加载器填充等不同来源的应用程序的配置YAML文件。配置组件定义这类装入器的接口。的依赖注入和路由组件有专门的装入器在不同的文件格式。
定位资源
加载配置通常始于搜索资源,主要是文件。这可以完成了FileLocator:
1 2 3 4 5 6
使用ob娱乐下载\组件\配置\FileLocator;美元configDirectories= (__DIR__。“/配置”];美元fileLocator=新FileLocator (美元configDirectories);美元yamlUserFiles=美元fileLocator- >定位(“users.yaml”,零,假);
定位器接收到的集合地点应该寻找文件。的第一个参数定位()
是寻找文件的名称。第二个参数可能是当前路径和提供时,首先定位器会在这个目录中。第三个参数表示是否发现的定位器应该返回第一个文件或者是一个数组,它包含所有比赛。
资源加载器
为每种类型的资源(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日25日26日
名称空间Acme\配置\加载程序;使用ob娱乐下载\组件\配置\加载程序\FileLoader;使用ob娱乐下载\组件\Yaml\Yaml;类YamlUserLoader扩展FileLoader{公共函数负载(美元资源,美元类型= null){美元configValues= Yaml::解析函数(美元资源));/ /……处理配置的值/ /也许进口一些其他资源:/ / $ this - >导入(“extra_users.yaml”);}公共函数支持(美元资源,美元类型= null){返回is_string (美元资源)& &yaml的= = = pathinfo (美元资源,PATHINFO_EXTENSION);}}
找到合适的加载器
的LoaderResolver收到的第一个构造函数参数加载器的集合。当一个资源(例如XML文件)应加载,它遍历集合的装入器并返回加载器支持这个特定资源类型。
的DelegatingLoader利用LoaderResolver。当它被要求加载资源,它代表这个问题的LoaderResolver。解析器发现一个合适的加载程序,加载程序将被要求加载资源:
1 2 3 4 5 6 7 8 9 10
使用Acme\配置\加载程序\YamlUserLoader;使用ob娱乐下载\组件\配置\加载程序\DelegatingLoader;使用ob娱乐下载\组件\配置\加载程序\LoaderResolver;美元loaderResolver=新LoaderResolver ([新YamlUserLoader (美元fileLocator)));美元delegatingLoader=新DelegatingLoader (美元loaderResolver);/ / YamlUserLoader用于加载这个资源,因为它支持/ /文件”。yaml的扩展美元delegatingLoader- >负载(__DIR__。' / users.yaml ');
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。