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);//引入之后,文件名自動轉為小寫,成為配置的key } } } }
在APP目錄下創建Conf文件夾(大小寫敏感)
創建mysql.php
<?php return [ 'vod' => [ 'host' => \Yaconf::get('mysql.vod.host'), 'port' => \Yaconf::get('mysql.vod.port'), 'username' => \Yaconf::get('mysql.vod.username'), 'password' => \Yaconf::get('mysql.vod.password'), 'timeout' => \Yaconf::get('mysql.vod.timeout'), ], ];
在別處調用使用
$mysqlConf = Config::getInstance()->getConf('mysql.vod'); var_export($mysqlConf); //結果 array ( 'host' => '127.0.0.1', 'port' => '3306', 'username' => 'root', 'password' => 'root', 'timeout' => '30', )