亚洲精品成人_精品成人一区_999视频在线播放_免费黄色在线_亚洲成人久久久_久久www免费视频

配置文件

EasySwoole 框架提供了非常靈活自由的全局配置功能,配置文件采用 PHP 返回數組方式定義,對于一些簡單的應用,無需修改任何配置,對于復雜的要求,還可以自行擴展自己獨立的配置文件和進行動態配置。
框架安裝完成后系統默認的全局配置文件是項目根目錄下的 produce.phpdev.php 文件,(在 3.1.2 版本之前是 dev.envproduce.env),3.7.x 版本(最新版)支持在啟動 EasySwoole 框架時以指定的配置文件( dev.php / produce.php)運行,詳細啟動命令請看 基本管理命令章節

配置文件內容如下:

<?php

return [
    // 服務名稱
    'SERVER_NAME'   => "EasySwoole",
    'MAIN_SERVER'   => [
        // 監聽地址
        'LISTEN_ADDRESS' => '0.0.0.0',
        // 監聽端口
        'PORT'           => 9501,
        // 可選 EASYSWOOLE_SERVER,EASYSWOOLE_WEB_SERVER EASYSWOOLE_WEB_SOCKET_SERVER
        'SERVER_TYPE'    => EASYSWOOLE_WEB_SERVER, 
        // 可選 SWOOLE_TCP SWOOLE_TCP6 SWOOLE_UDP SWOOLE_UDP6 SWOOLE_UNIX_DGRAM SWOOLE_UNIX_STREAM
        'SOCK_TYPE'      => SWOOLE_TCP,
        // 默認 Server 運行模式
        'RUN_MODEL'      => SWOOLE_PROCESS,
        // Swoole_Server 運行配置( 完整配置可見[Swoole 文檔](http://swoole.easyswoole.com/ServerStart/Tcp/method.html) 的 mode 參數 )
        'SETTING'        => [
            // 運行的 worker 進程數量
            'worker_num'            => 8,
            // 設置異步重啟開關。設置為 true 時,將啟用異步安全重啟特性,Worker 進程會等待異步事件完成后再退出。
            'reload_async'          => true,
            // 開啟后自動在 onTask 回調中創建協程
            'task_enable_coroutine' => true,
            'max_wait_time'         => 3,
            // (可選參數)使用 http 上傳大文件時可以進行配置
            // 'package_max_length' => 100 * 1024 * 1024, // 即 100 M

            // (可選參數) 允許處理靜態文件 html 等,詳細請看 http://swoole.easyswoole.com/ServerStart/Http/serverSetting.html
            // 'document_root' => '/easyswoole/public',
            // 'enable_static_handler' => true,
        ],
        // 設置 EasySwoole 框架獨立實現的 Task 任務組件的配置
        'TASK'=>[
            'workerNum'     => 4,
            'maxRunningNum' => 128,
            'timeout'       => 15
        ]
    ],
    // 臨時文件存放的目錄
    'TEMP_DIR'      => null,

    ### 日志相關配置 (目前最新)EasySwoole 3.4.4 及以后版本支持
    "LOG" => [
        // 設置記錄日志文件時日志文件存放目錄
        'dir' => null,
        // 設置記錄日志時的日志最低等級,低于此等級的日志不進行記錄和顯示
        'level' => \EasySwoole\Log\LoggerInterface::LOG_LEVEL_DEBUG,
        // 設置日志處理器 `handler` (handler)
        'handler' => null,
        // 設置開啟控制臺日志記錄到日志文件
        'logConsole' => true,
        // 設置開啟在控制臺顯示日志
        'displayConsole'=>true,
        // 設置打印日志時忽略哪些分類的日志不進行記錄
        'ignoreCategory' => []
    ],

    ### 日志相關配置 EasySwoole 3.4.3 版本支持
    // "LOG" => [
    //    'dir' => null,
    //    'level' => \EasySwoole\Log\LoggerInterface::LOG_LEVEL_DEBUG,
    //    'handler' => null,
    // ],

    ### 日志相關配置 EasySwoole 3.4.3 之前支持
    // 日志文件存放的目錄
    // 'LOG_DIR'       => null,
];

以上配置關于日志的相關配置的說明,詳細請看 日志 章節。

上述參數補充說明:

  • MAIN_SERVER.SERVER_TYPE:
    • EASYSWOOLE_WEB_SERVER: 表示框架主服務為 Http 服務(框架默認提供的服務類型)
    • EASYSWOOLE_SERVER: 表示框架主服務為 Tcp 服務
    • EASYSWOOLE_WEB_SOCKET_SERVER: 表示框架主服務為 WebSocket 服務

EASYSWOOLE_SERVER、EASYSWOOLE_WEB_SOCKET_SERVER類型,都需要在 EasySwooleEvent.phpmainServerCreate 事件中自行設置回調( receivemessage ),否則將出錯。具體設置對應的回調的方式請參考 Tcp 服務章節WebSocket 服務章節。關于同時支持多個服務的使用也請查看 Tcp 服務章節WebSocket 服務章節

注意:目前框架 3.7.x 的配置驅動默認為 SplArray,自定義配置驅動可查看本文最后章節。

注意:EasySwoole 3.7.x 之前版本的配置驅動使用的是 \Swoole\Table,由于 swoole_table 的特殊特性,不適合存儲大量/大長度的配置,如果是存儲支付秘鑰、簽名等大長度字符串,建議使用類常量方法定義,而不是通過 dev.php 存儲。如果你必須用配置文件存儲,請看本文下文的自定義 config 驅動。

配置操作類

配置操作類為 \EasySwoole\EasySwoole\Config 類,使用方式非常簡單,具體請看下面的代碼示例,操作類還提供了 load 方法重載全部配置,基于這個方法,可以自己定制更多的高級操作。

設置和獲取配置項都支持點語法分隔,具體請看下面獲取配置的代碼示例

<?php

$instance = \EasySwoole\EasySwoole\Config::getInstance();

// 獲取配置 按層級用點號分隔
$instance->getConf('MAIN_SERVER.SETTING.task_worker_num');

// 設置配置 按層級用點號分隔
$instance->setConf('DATABASE.host', 'localhost');

// 獲取全部配置
$conf = $instance->getConf();

// 用一個數組覆蓋當前配置項
$conf['DATABASE'] = [
    'host' => '127.0.0.1',
    'port' => 13306
];
$instance->load($conf);

需要注意的是 由于進程隔離的原因,在 Server 啟動后,動態新增修改的配置項,只對執行操作的進程生效,如果需要全局共享配置需要自己進行擴展

添加用戶配置項

每個用戶都有自己的配置項,添加自己的配置項非常簡單,其中一種方法是直接在配置文件中添加即可,如下面的例子: 下面示例中添加了自定義的 MySQLRedis 配置。

<?php
return [
    'SERVER_NAME' => "EasySwoole",
    'MAIN_SERVER' => [
        'LISTEN_ADDRESS' => '0.0.0.0',
        'PORT' => 9501,
        'SERVER_TYPE' => EASYSWOOLE_WEB_SERVER, // 可選為 EASYSWOOLE_SERVER  EASYSWOOLE_WEB_SERVER EASYSWOOLE_WEB_SOCKET_SERVER
        'SOCK_TYPE' => SWOOLE_TCP,
        'RUN_MODEL' => SWOOLE_PROCESS,
        'SETTING' => [
            'worker_num' => 8,
            'reload_async' => true,
            'max_wait_time'=>3,
            'document_root'            => EASYSWOOLE_ROOT . '/Static',
            'enable_static_handler'    => true,
        ],
        'TASK'=>[
            'workerNum'=>0,
            'maxRunningNum'=>128,
            'timeout'=>15
        ]
    ],
    'TEMP_DIR' => null,
    'LOG_DIR' => null,

    // 添加 MySQL 及對應的連接池配置
    /*################ MYSQL CONFIG ##################*/
    'MYSQL' => [
        'host'          => '127.0.0.1', // 數據庫地址
        'port'          => 3306, // 數據庫端口
        'user'          => 'root', // 數據庫用戶名
        'password'      => 'root', // 數據庫用戶密碼
        'timeout'       => 45, // 數據庫連接超時時間
        'charset'       => 'utf8', // 數據庫字符編碼
        'database'      => 'easyswoole', // 數據庫名
        'autoPing'      => 5, // 自動 ping 客戶端鏈接的間隔
        'strict_type'   => false, // 不開啟嚴格模式
        'fetch_mode'    => false,
        'returnCollection'  => false, // 設置返回結果為 數組
        // 配置 數據庫 連接池配置,配置詳細說明請看連接池組件 http://www.b3f21.cn/Components/Pool/introduction.html
        'intervalCheckTime' => 15 * 1000, // 設置 連接池定時器執行頻率
        'maxIdleTime'   => 10, // 設置 連接池對象最大閑置時間 (秒)
        'maxObjectNum'  => 20, // 設置 連接池最大數量
        'minObjectNum'  => 5, // 設置 連接池最小數量
        'getObjectTimeout'  => 3.0, // 設置 獲取連接池的超時時間
        'loadAverageTime'   => 0.001, // 設置 負載閾值
    ],

    // 添加 Redis 及對應的連接池配置
    /*################ REDIS CONFIG ##################*/
    'REDIS' => [
        'host'          => '127.0.0.1', // Redis 地址
        'port'          => '6379', // Redis 端口
        'auth'          => 'easyswoole', // Redis 密碼
        'timeout'       => 3.0, // Redis 操作超時時間
        'reconnectTimes' => 3, // Redis 自動重連次數
        'db'            => 0, // Redis 庫
        'serialize'     => \EasySwoole\Redis\Config\RedisConfig::SERIALIZE_NONE, // 序列化類型,默認不序列化
        'packageMaxLength' => 1024 * 1024 * 2, // 允許操作的最大數據
        // 配置 Redis 連接池配置,配置詳細說明請看連接池組件 http://www.b3f21.cn/Components/Pool/introduction.html
        'intervalCheckTime' => 15 * 1000, // 設置 連接池定時器執行頻率
        'maxIdleTime'   => 10, // 設置 連接池對象最大閑置時間 (秒)
        'maxObjectNum'  => 20, // 設置 連接池最大數量
        'minObjectNum'  => 5, // 設置 連接池最小數量
        'getObjectTimeout'  => 3.0, // 設置 獲取連接池的超時時間
        'loadAverageTime'   => 0.001, // 設置 負載閾值
    ],
];

生產與開發配置分離

php easyswoole.php server start 命令下,默認為開發模式,加載 dev.php (3.1.2 之前為 dev.env) 運行 php easyswoole.php server start -mode=produce 命令時,為生產模式,加載 produce.php (3.1.2 之前為 produce.env)

舊版本 EasySwoole (3.4.x 以前的版本),在 php easyswoole.php start 命令下,默認為開發模式,加載 dev.php (3.1.2 之前為 dev.env)。運行 php easyswoole.php start produce 命令時,為生產模式,加載 produce.php (3.1.2 之前為 produce.env)

DI 注入配置

EasySwoole 3.x 提供了幾個 Di 參數配置,可自定義配置腳本錯誤異常處理回調、控制器命名空間、最大解析層級等。

<?php
// 配置錯誤處理回調
\EasySwoole\Component\Di::getInstance()->set(\EasySwoole\EasySwoole\SysConst::ERROR_HANDLER, function () {
});

// 配置腳本結束回調
\EasySwoole\Component\Di::getInstance()->set(\EasySwoole\EasySwoole\SysConst::SHUTDOWN_FUNCTION, function () {
});

// 配置控制器命名空間
\EasySwoole\Component\Di::getInstance()->set(\EasySwoole\EasySwoole\SysConst::HTTP_CONTROLLER_NAMESPACE, 'App\\HttpController\\');

// 配置 HTTP 控制器最大解析層級
\EasySwoole\Component\Di::getInstance()->set(\EasySwoole\EasySwoole\SysConst::HTTP_CONTROLLER_MAX_DEPTH, 5);

// 配置http控制器異常回調
\EasySwoole\Component\Di::getInstance()->set(\EasySwoole\EasySwoole\SysConst::HTTP_EXCEPTION_HANDLER, function () {});

// HTTP 控制器對象池最大數量
\EasySwoole\Component\Di::getInstance()->set(\EasySwoole\EasySwoole\SysConst::HTTP_CONTROLLER_POOL_MAX_NUM, 15);

自定義 Config 驅動

EasySwoole3.2.5 版本后,默認配置驅動存儲從 SplArray 改為了 swoole_table,修改配置之后,所有進程同時生效。在 3.4.x 版本后,由于特殊原因,默認配置驅動存儲又從 swoole_table 改為了 SplArray,修改配置之后,僅在當前進程生效。所以在 3.2.5 ~ 3.3.7 版本中,默認配置驅動存儲為 swoole_table

AbstractConfig

\EasySwoole\Config\AbstractConfig 抽象類提供了以下幾個方法,用于給其他 config 驅動繼承:

  • isDev() 該方法在 3.4.x 版本中已移除,請用 \EasySwoole\EasySwoole\Core::getInstance()->runMode() == 'dev' 判斷是否為開發環境。 (在 3.4.x 之前版本可通過該方法獲得當前運行環境是否為開發環境)

  • abstract function getConf($key = null); 獲取一個配置

  • abstract function setConf($key, $val): bool; 設置一個參數

  • abstract function load(array $array): bool; 重新加載配置項

  • abstract function merge(array $array): bool; 合并配置項

  • abstract function clear(): bool; 清除所有配置項

自定義配置存儲驅動

EasySwoole 中,自帶了 SplArrayswoole_table 驅動實現,可自行查看源碼進行深入了解。

目前最先版本默認驅動為 SplArray

如需要修改配置存儲驅動,配置步驟如下:

  • 繼承 AbstractConfig 實現各個方法
  • Bootstrap 事件 事件中修改 config 驅動(直接在 bootstrap.php 文件中加入如下代碼即可)
<?php
\EasySwoole\EasySwoole\Config::getInstance(new \EasySwoole\Config\SplArrayConfig());

由于 bootstrap 事件 是由 EasySwoole 啟動腳本執行,當你需要寫 cli 腳本需要初始化 EasySwoole 框架基礎組件時,需要自行引入 bootstrap.php 文件。

動態配置問題

由于 swoole 是多進程的,如果使用 SplArray 方式存儲,在單個進程修改配置后,其他進程將不會生效,使用swoole_table 方式的則會全部生效,需要特別注意。

EasySwoole 3.4.x 之前版本,框架采用 swoole_table 作為默認配置驅動存儲。所以當你在控制器( worker 進程)中修改某一項配置時,由于進程隔離,修改的配置不會在其他進程生效,所以我們可以使用動態配置: 動態配置將配置數據存儲在 swoole_table 中,獲取/修改配置數據時是從 swoole_table 直接操作,所有進程都可以使用。但是在目前最新版本中默認配置驅動存儲變成了 SplArray,在單個進程修改配置后,其他進程將不會生效,需要特別注意。

其他

  • QQ 交流群

    • VIP 群 579434607 (本群需要付費 599 元)
    • EasySwoole 官方一群 633921431(已滿)
    • EasySwoole 官方二群 709134628(已滿)
    • EasySwoole 官方三群 932625047(已滿)
    • EasySwoole 官方四群 779897753(已滿)
    • EasySwoole 官方五群 853946743(已滿)
    • EasySwoole 官方六群 524475224(已滿)
    • EasySwoole 官方七群 1016674948
  • 商業支持:

    • QQ 291323003
    • EMAIL admin@fosuss.com
  • 作者微信

  • 捐贈 您的捐贈是對 EasySwoole 項目開發組最大的鼓勵和支持。我們會堅持開發維護下去。 您的捐贈將被用于:

    • 持續和深入地開發
    • 文檔和社區的建設和維護
  • EasySwoole 的文檔使用 EasySwoole 框架 提供服務,采用 MarkDown 格式 和自定義格式編寫,若您在使用過程中,發現文檔有需要糾正 / 補充的地方,請 fork 項目的文檔倉庫,進行修改補充,提交 Pull Request 并聯系我們。

亚洲精品成人_精品成人一区_999视频在线播放_免费黄色在线_亚洲成人久久久_久久www免费视频
  • <kbd id="eqi2k"><code id="eqi2k"></code></kbd><cite id="eqi2k"><tbody id="eqi2k"></tbody></cite>
    热re99久久精品国99热蜜月| 成人黄动漫网站免费| 欧美亚洲精品日韩| 欧美一区二区影视| 亚洲一区精品视频| 欧美成人在线免费观看| 日韩亚洲视频| 99re视频| 亚洲午夜在线观看| 亚洲人成在线影院| 99影视tv| 欧美日韩四区| 久久一区亚洲| 亚洲精品一区二区三区四区五区| 欧美精品不卡| 可以看av的网站久久看| 亚洲国产综合自拍| 久久精品电影| 亚洲一区二区精品在线观看| 久久激情综合| 欧美日韩免费观看一区=区三区| 玖玖精品视频| 欧美日韩精品免费观看视一区二区| 久久中文在线| 午夜精品亚洲| 波多野结衣精品久久| 欧美福利一区| 精品视频在线观看| 999在线观看精品免费不卡网站| 国产精品久久久对白| 亚洲天堂偷拍| 欧洲精品亚洲精品| 老牛嫩草一区二区三区日本| 欧美一区国产一区| 国产视频精品网| 亚洲午夜91| 欧美在线日韩精品| **亚洲第一综合导航网站| 欧美一区观看| 91偷拍精品一区二区三区| 欧美日韩高清免费| 日本免费一区二区三区| 91久久久一线二线三线品牌| 亚洲性人人天天夜夜摸| 久久久一本精品99久久精品66| 国产精品久久久久久久久婷婷 | 麻豆精品传媒视频| 久久狠狠婷婷| 亚洲高清在线播放| 日本视频一区在线观看| 国产欧美日韩综合一区在线观看 | 亚洲影视在线| 一区二区三区四区免费视频| 精品日产一区2区三区黄免费 | 久久aⅴ乱码一区二区三区| 一区二区视频国产| 日本一区二区三区视频在线播放| 97人人模人人爽视频一区二区 | 欧美1区视频| 欧美日韩亚洲综合一区二区三区激情在线 | 国产一级一区二区| 亚洲性视频h| 国内精品福利| 午夜精品国产| 欧美日韩国产一区精品一区| 欧美成人综合一区| 亚洲一区二区三区午夜| 台湾成人av| 亚洲mv在线看| 日韩欧美在线观看强乱免费| 鲁片一区二区三区| 欧美亚洲免费高清在线观看| 欧美第一黄网| 日韩欧美精品久久| 亚洲一区二区三区欧美| 欧美日本国产| 亚洲人成免费| 久久久夜夜夜| 国内精品久久国产| 欧美系列一区| 欧美在线网址| 亚洲毛片网站| 美女精品在线| 久久久久久九九| 亚洲日本无吗高清不卡| 中文字幕日韩一区二区三区| 欧美激情日韩| 日韩午夜在线电影| 久久综合中文| 日韩av电影免费播放| 在线观看免费91| 亚洲日本久久| 99热在线国产| 亚洲v日韩v欧美v综合| 亚洲婷婷在线| 国产精品一区二区三区观看| 欧美日韩成人一区二区三区| 亚洲欧美在线网| 亚洲欧美网站| 欧美资源一区| 99热免费精品在线观看| 国产精品对白一区二区三区| 日韩jizzz| 一本色道久久综合亚洲二区三区| 不卡一区二区三区视频| 亚洲mv在线看| 国产精品三上| 色噜噜色狠狠狠狠狠综合色一| 在线播放不卡| 国产欧美日韩伦理| 欧美色图麻豆| 国产欧美在线一区二区| 在线一区日本视频| 久久一二三四| 欧美性天天影院| 国产精品一区二区三区免费观看| 欧美激情第8页| 99在线观看视频| 国产综合色产| 久久99精品久久久久久久久久| 国产精品hd| 欧美日韩一区二区三区在线观看免 | 在线免费观看一区二区三区| 国产精品美女久久久久av福利| 欧美精品啪啪| 国产亚洲自拍偷拍| 怡红院精品视频在线观看极品| 久久久久久一区| 在线亚洲观看| 一本色道久久综合亚洲精品婷婷| 久久一区中文字幕| 视频在线一区二区三区| 国内精品一区二区| 久久久久久九九| 99精品视频免费观看| 亚洲午夜精品一区二区三区| 老鸭窝毛片一区二区三区| 国产日韩精品久久| 视频一区二区三| 黄色一区三区| 国产伦精品一区二区三区照片91| 成人av播放| 欧美日产一区二区三区在线观看| 亚洲国产激情一区二区三区| 欧美性久久久| 日韩精品资源| 国产91视觉| 国产亚洲毛片在线| 欧美特黄一级| 日韩和欧美的一区二区| 美女尤物久久精品| 日韩天堂av| 欧美日韩成人一区二区三区| 日产精品高清视频免费| 精品日本一区二区| 国产精品一区二区在线观看 | 在线观看一区欧美| 亚洲视频精品一区| 久久国产精品一区二区三区| 粉嫩高清一区二区三区精品视频 | 久久久com| 国产一区二区精品免费| 久久精品免费| 国产一区白浆| 免费视频久久| 久久青青草综合| 97超碰人人看人人| 国产精品v欧美精品∨日韩| 国产99午夜精品一区二区三区 | 欧美激情1区2区| 欧美日韩国产免费观看| 欧美韩国一区| 影音先锋久久久| 国产精品一页| 中国成人亚色综合网站| 亚洲一区二区伦理| 小嫩嫩精品导航| 成人欧美一区二区三区视频xxx| 国产精品二区在线观看| 国产无套精品一区二区| 久久久久久一区| 亚洲国产精品久久久久久女王| 你懂的国产精品永久在线| 国产综合视频| 亚洲另类黄色| 51成人做爰www免费看网站| 国产传媒一区二区| 久久一区二区精品| 日产精品久久久一区二区| 欧美 日韩 国产 一区| 影音先锋日韩资源| 5566av亚洲| 日韩电影免费观看在| 国产一区自拍视频| 男人的天堂成人在线| 免费精品视频一区二区三区| 中日韩在线视频| 免费在线成人av| 欧洲亚洲一区二区| 精品动漫3d一区二区三区免费|