当前位置: 首页 > news >正文

自己做网站 需要哪些百度快速排名优化技术

自己做网站 需要哪些,百度快速排名优化技术,技术支持 沧州网站建设,广告公司平面设计培训配置加载 Config 对象默认不是通过组件中 Autoloader::beans() 方法加载的,而是通过类注解的方式。 Config 中有init 方法,这个方法在对象实例化的时候,会自动执行,这个代码我们在 BeanHandler 中见到过,也就是 bean…

配置加载

Config 对象默认不是通过组件中 Autoloader::beans() 方法加载的,而是通过类注解的方式。

Config 中有init 方法,这个方法在对象实例化的时候,会自动执行,这个代码我们在 BeanHandler 中见到过,也就是 bean 的实例化阶段。通过跟踪 init 方法,可以看到,Config 对象支持读取两种类的配置文件,php/yaml 类型,默认使用的是 PHP 类型的配置文件。

PHP 配置文件解析器

解析器会找到主配置文件 base.php,其他配置文件(非 base.php 的所有文件),并获取内部的配置信息。

解析器在加载 php 类型配置的时候,只要是php后缀的文件,且不是 base.php 都会将其读为配置,配置项主键为配置文件的名字,内容为配置文件中返回的关联数组。最后,会将所有其他配置文件获得的数据,先合并为一个其他配置项的关联数组,然后再将此数组和 base.php 文件的主配置进行合并(其他配置文件名的配置,会覆盖 base.php 中键名一致的主配置)。

详细代码,见 src/Parser/PhpParser.php 文件中的获取配置信息函数:

protected function getConfig(string $baseFileName, string $path): array
{// 生成指定目录的迭代器对象$iterator = DirectoryHelper::iterator($path);$baseConfig  = [];$otherConfig = [];/* @var SplFileInfo $splFileInfo */// 遍历目录中的每个项目(可能是目录也可能是文件)foreach ($iterator as $splFileInfo) {// Ingore other extension file$ext = $splFileInfo->getExtension();$ext = strtolower($ext);// 不是 php 后缀直接跳过if ($ext != Config::TYPE_PHP) {continue;}$fileName = $splFileInfo->getFilename();$fileName = strtolower($fileName);$filePath = $splFileInfo->getPathname();// Exclude dir// 如果是目录也跳过if (is_dir($filePath)) {continue;}// Base config// 如果是 base.php 则获取其中内容作为主配置if ($fileName == $baseFileName) {$baseConfig = require $filePath;continue;}// Other config// 如果文件名不是 base.php,则以文件名为键名,文件内容为键值[$key] = explode('.', $fileName);$data = require $filePath;// 将所有其他配置项合并为一个关联数组ArrayHelper::set($otherConfig, $key, $data);}// 最后将其他配置项 merge 到主配置项上,注意 merge 覆盖原则为键名相同后边覆盖前面return ArrayHelper::merge($baseConfig, $otherConfig);
}

Config 对象继承了 Collection 集合类,有一系列的公共操作接口,可以方便的检查、获取、写入、删除集合中的数据。具体可以参见 Collection 类。stdlib 组件中的 src/Collection.php 类。

Yaml 文件解析器

解析器会找到主配置文件 base.yaml和其他配置文件(非 base.yaml的所有文件),然后获取其内部配置。

Yaml 配置文件的解析流程和之前 php 文件的解析过程(配置的加载和覆盖顺序)一致,只是对文件的具体配置解析的有差异,最终都会形成配置的关联数组,放到 Config 对象之内存储到内存中。

配置的应用

config 函数调用

function config(string $key = null, $default = null)
{if (!BeanFactory::hasBean('config')) {return sprintf('${.config.%s}', $key);}/* @var Config $config */$config = BeanFactory::getBean('config');return $config->get($key, $default);
}

由以上代码可以判断出如下结论:

${.xxx}花括号中为点开始的数据,表示引用的配置。不是以点开始的表示引用的是一个 bean 实例。

如果不是以美元符号和花括号表示的引用值,则表示这个是一个固定值,会直接注入到对应的属性或者参数中。

@Config 注解

@Config("data.key")
http://www.mmbaike.com/news/85445.html

相关文章:

  • 泰安放心的企业建站公司搜索引擎技术
  • 网站网站建设网站有什么好用的搜索引擎
  • wordpress菜谱网站网站建设方案推广
  • 网站如何从后台进入营销策略有哪些4种
  • 京东网站设计代码百度快照客服人工电话
  • 青海省交通建设厅网站缅甸今日新闻
  • wordpress 获取文章文字网络搜索引擎优化
  • wordpress页面自定义数据上传图片seo编辑是干什么的
  • 电子商务网站建设的目标是什么济南网站建设老威
  • 移动建站工具营销策略都有哪些
  • 网站建设公司怎么办seo外包多少钱
  • 风雨同舟 网站建设怎么在腾讯地图上添加自己的店铺
  • 网站界面 ui 设计答案第一接单网app地推和拉新
  • 阿里能帮做网站吗优化一个网站需要多少钱
  • 黄页88网能不能发免费的广告google搜索优化方法
  • 郑州大学科技园手机网站建设网站模版
  • 广州和信建设公司网站企业如何做好网络营销
  • 北京欢迎你 网站建设全网营销推广靠谱吗
  • 重庆市工程建设信息网新网站品牌营销成功案例
  • 江苏网站开发公司网络营销的常用工具
  • 学做电商的网站网推平台
  • 建网站什么语言实体店营销方案
  • 我有服务器和模板怎么做网站万网域名
  • 学什么可以先做网站项目网站
  • 北京哪个公司做网站深圳seo网站优化公司
  • 重庆安全员c证在哪里查询网站推广优化网址
  • 澳门做网站找谁苏州seo关键词优化外包
  • 网站建设平台的比较如何购买域名
  • 电影视频网站建设费用外包seo服务口碑好
  • 怎么做淘宝联盟的推广网站网站seo搜索