//类文件路径 //easyswoole/vendor/easyswoole/easyswoole/src/Config.php
//引入File组件
use EasySwoole\Utility\File;
//在类中定义方法
/**
* 载入自定义配置文件夹里的所有配置文件
* @param string $dirPath 配置文件夹
* @param bool $merge 是否将内容合并入主配置
* @author : lqx_chris
*/
public function loadDir (string $dirPath, bool $merge = false)
{
if(is_dir($dirPath)){
$fileList = File::scanDirectory($dirPath);
foreach ($fileList['files'] as $filePath){
$this->loadFile($filePath,$merge);
}
}
}
例:在 cache.php 和 database.php 配置文件中,我们简单写一些东西
//cache.php
return [
'REDIS'=>'redis',
];
//database.php
return [
'MYSQL' => [
'host' => '127.0.0.1',
'port' => '3306',
'user' => 'root',
'timeout' => '5',
'charset' => 'utf8mb4',
'password' => '123456',
'database' => 'easyswoole',
],
];
<?php
namespace EasySwoole\EasySwoole;
use EasySwoole\EasySwoole\Swoole\EventRegister;
use EasySwoole\EasySwoole\AbstractInterface\Event;
use EasySwoole\Http\Request;
use EasySwoole\Http\Response;
use EasySwoole\ORM\Db\Config as ORMConfig;
use EasySwoole\ORM\DbManager;
use EasySwoole\ORM\Db\Connection;
class EasySwooleEvent implements Event
{
public static function initialize()
{
// TODO: Implement initialize() method.
date_default_timezone_set('Asia/Shanghai');
//载入配置文件夹文件
Config::getInstance()->loadDir(EASYSWOOLE_ROOT . '/Config', true);
//配置ORM
$config = new ORMConfig(Config::getInstance()->getConf("MYSQL"));
//注册ORM连接池
DbManager::getInstance()->addConnection(new Connection($config));
}
public static function onRequest(Request $request, Response $response): bool
{
// TODO: Implement onRequest() method.
// 请求进来时输出一下配置信息,看看是否成功
var_dump(Config::getInstance()->getConf());
return true;
}
}
//启动
$ php easyswoole start
//请求Easyswoole
localhost:9501
//输出信息中,除了主配置,我们可以看到我们自己文件夹的配置也合并载入了
["MYSQL"]=>
array(7) {
["host"]=>
string(9) "127.0.0.1"
["port"]=>
string(4) "3306"
["user"]=>
string(4) "root"
["timeout"]=>
string(1) "5"
["charset"]=>
string(7) "utf8mb4"
["password"]=>
string(5) "12345"
["database"]=>
string(6) "easyswoole"
}
["REDIS"]=>
string(5) "redis"
已经更新此封装到 EasySwoole 3.4x的版本中,使用3.4x版本的同学可以直接使用啦~~~~
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。