五月天激情丁香,国产精品2019,国产成人精品亚洲2020,国产精品免费视频一区二区三区,开心久久婷婷综合中文字幕,天堂视频在线观看免费完整版

配置文件

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://m.fe88.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://m.fe88.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 并聯系我們。

主站蜘蛛池模板: 男女在线免费视频 | av网站免费线看 | 欧美视频网 | 婷婷第四色| 丁香花影院 | 国产小视频免费看 | 久久综合九色综合97欧美 | 久久精品影院永久网址 | 男女的隐私视频网站 | 欧美成人综合在线 | 开心久久婷婷综合中文字幕 | 庭院里的女人高清完整版 | 五月天婷婷视频在线观看 | 欧美成人免费草草影院 | 激情综合网婷婷 | 求av网站 | 国产精品午夜国产小视频 | 国产午夜在线观看视频 | 免费看色网站 | 欧美日韩国产在线播放 | 久久久精品免费观看 | 青青草成人在线观看 | wwwcom黄色| 久久99精品久久只有精品 | 国产一区二区三区在线免费 | 国产成人精品18 | 毛片亚洲毛片亚洲毛片 | 久久精品国产精品青草app | 奇米第四色视频 | 欧美亚洲视频一区 | 久久一区二区三区免费 | 免费小视频网站 | 成人精品国产亚洲欧洲 | 精品欧美一区二区三区在线观看 | 蜜桃丁香花 | 国产成人一区免费观看 | 四虎成人影院 | 日韩视频免费在线观看 | 天天干夜夜做 | 五月婷色 | 久久综合精品不卡一区二区 |