加载资源

编辑该页面

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

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

加载资源

谨慎

IniFileLoader解析文件内容使用parse_ini_file函数。因此,您可以只设置参数字符串值。设置参数,其他数据类型(如布尔、整数等),其他装载机推荐。

定位资源

加载配置通常始于搜索资源,主要是文件。这可以完成了FileLocator:

1 2 3 4 5 6
使用欧宝娱乐app下载地址\组件\配置\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
使用欧宝娱乐app下载地址\组件\配置\加载程序\FileLoader;使用欧宝娱乐app下载地址\组件\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
使用欧宝娱乐app下载地址\组件\配置\加载程序\LoaderResolver;使用欧宝娱乐app下载地址\组件\配置\加载程序\DelegatingLoader;美元loaderResolver=LoaderResolver ([YamlUserLoader (美元fileLocator)));美元delegatingLoader=DelegatingLoader (美元loaderResolver);/ / YamlUserLoader用于加载这个资源,因为它支持/ /文件”。yaml的扩展美元delegatingLoader- >负载(__DIR__' / users.yaml ');
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。