配置文件

在每个Main所在目录下的config/config.php配置文件,会在该Main被实例化时加载。

如果你不知道Main是什么,请看上一章:《开始一个新项目》

配置文件结构

共有结构

  1. <?php
  2. return [
  3. // 加载子配置文件,避免`config.php`过于臃肿不便维护
  4. // 要注意这里的别名不可与configs同级的名字重复,否则会被覆盖
  5. 'configs' => [
  6. "别名1" => '配置文件路径1',
  7. "别名2" => '配置文件路径2',
  8. ……
  9. ],
  10. // bean扫描目录,指定命名空间
  11. 'beanScan' => [
  12. 'ImiDemo\WebSocketDemo\Listener',
  13. ],
  14. // 配置方式注入类属性,可被注入的属性一般是public和protected
  15. 'beans' => [
  16. // 类名或类注解中定义的@Bean("名称")
  17. 'hotUpdate' => [
  18. // 'status' => false, // 关闭热更新去除注释,不设置即为开启,建议生产环境关闭
  19. // --- 文件修改时间监控 ---
  20. // 'monitorClass' => \Imi\HotUpdate\Monitor\FileMTime::class,
  21. // 'timespan' => 1, // 检测时间间隔,单位:秒
  22. // --- Inotify 扩展监控 ---
  23. // 'monitorClass' => \Imi\HotUpdate\Monitor\Inotify::class,
  24. // 'timespan' => 0, // 检测时间间隔,单位:秒,使用扩展建议设为0性能更佳
  25. // 'includePaths' => [], // 要包含的路径数组
  26. // 'excludePaths' => [], // 要排除的路径数组,支持通配符*
  27. // 'defaultPath' => [], // 设为数组则覆盖默认的监控路径
  28. ],
  29. ],
  30. 'db' => [
  31. // 数据库默认连接池名
  32. 'defaultPool' => 'maindb',
  33. ],
  34. // 连接池配置,详见对应章节
  35. 'pools' => [
  36. ],
  37. // 缓存配置,详见对应章节
  38. 'caches' => [
  39. ]
  40. ];

项目配置文件

  1. return [
  2. // Swoole >= 4.1.0可用,不设置默认为true,开启一键协程化
  3. // 'enableCoroutine' => true,
  4. // 主服务器配置
  5. 'mainServer' => [
  6. // 指定服务器命名空间
  7. 'namespace' => 'ImiDemo\HttpDemo\MainServer',
  8. // 服务器类型,暂时仅支持Type::HTTP
  9. 'type' => Type::HTTP,
  10. // 监听的IP地址,可选
  11. // 'host' => '0.0.0.0',
  12. // 监听的端口
  13. 'port' => 8080,
  14. // 参考 swoole mode,可选
  15. // 'mode' => SWOOLE_BASE,
  16. // 参考 swoole sockType,可选
  17. // 'sockType' => SWOOLE_SOCK_TCP,
  18. // 服务器配置,参数用法同\Swoole\Server->set($configs)
  19. 'configs' => [
  20. 'reactor_num' => 8,
  21. 'worker_num' => 8,
  22. 'task_worker_num' => 16,
  23. ],
  24. ],
  25. // 子服务器(端口监听)配置
  26. 'subServers' => [
  27. // 子服务器别名
  28. 'alias1' => [
  29. // 这里同主服务器配置
  30. ]
  31. ],
  32. ];