前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >easyswoole实现载入自定义配置文件夹所有配置文件的封装

easyswoole实现载入自定义配置文件夹所有配置文件的封装

原创
作者头像
PHP开发工程师
修改2021-04-30 14:22:35
5980
修改2021-04-30 14:22:35
举报
文章被收录于专栏:thinkphp+vue

修改easyswoole的配置类

代码语言:javascript
复制
//类文件路径 //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.phpdatabase.php 配置文件中,我们简单写一些东西

代码语言:javascript
复制
//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',
    ],
];

EasySwooleEvent.phpinitialize 事件中载入配置

代码语言:javascript
复制
<?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;
    }
}
代码语言:javascript
复制
//启动
$ 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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 修改easyswoole的配置类
  • 创建自己的配置目录
  • 在 EasySwooleEvent.php 的 initialize 事件中载入配置
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档