yaconf

PHP7的Yaconf使用教程

和自甴很熟 提交于 2020-05-06 09:21:42
简介 首先说说, 这个是干啥的. 我见过很多的项目中, 用PHP文件做配置的, 一个config目录下可能有十几个甚至数十个.php配置文件, 里面都是各种各样的array, 还有甚者会把一些词典文件(比如中文/英文对照)也放到配置中去. 这就导致配置文件的解析耗费了很大的性能(诚然, 用了opcache能好点, 但是实际上还是有执行的过程). 除了PHP的, 还有用json的, yaml的, 一个共同的特点就是这些配置的可读性比较差. 另外, 他们也都要runtime解析. config目录往往和代码在一起, 首先会有安全隐患(配置中往往有敏感信息), 其次如果配置和代码属于一个项目, 这就会导致配置的修改也要走代码上线的流程. 一些资源配置文件, 比如mysql/memcache的配置信息, 这些内容本来是应该对开发透明的, 运维直接负责即可. 但是放到了代码中就会导致, 运维如果要发起一些变更, 也要开发配合修改配置文件上线. 所以, Yaconf就是为了解决这些问题而生的一个工具. 它使用单独的一个配置目录(在yaconf.directory指定), 不和代码在一起. 它在PHP启动的时候, 处理所有的要处理的配置, 然后这些配置就会常驻内存, 随着PHP的生命周期存亡. 避免了每次请求的时候解析配置文件. 所有的配置内容都是immutable的,

easyswoole学习,自定义配置文件路径

一个人想着一个人 提交于 2020-05-05 21:33:51
easyswoole 中 \EasySwoole\EasySwoole\Config 类读取配置信息使用 Config::getInstance()->getConf() 方法,实际上是从swoole的内存table中读取, 因此可以在框架初始化时就往table中写入配置文件信息,在 EasySwooleEvent::initialize() 方法中加入载入配置文件的方法 定义loadConf方法 /* * * 加载配置文件 */ public static function loadConf() { // 遍历目录中的文件 $files = File ::scanDirectory(EASYSWOOLE_ROOT . '/App/Conf' ); if ( is_array ( $files )) { // $files['files'] 一级目录下所有的文件,不包括文件夹 foreach ( $files ['files'] as $file ) { $fileNameArr = explode ('.', $file ); $fileSuffix = end ( $fileNameArr ); if ( $fileSuffix == 'php' ) { \EasySwoole\EasySwoole\Config ::getInstance()->loadFile( $file