LaravelS 配置项

listen_ip

string 监听的IP,监听本机127.0.0.1(IPv4) ::1(IPv6),监听所有地址 0.0.0.0(IPv4) ::(IPv6), 默认127.0.0.1

listen_port

int 监听的端口,如果端口小于1024则需要root权限,默认 5200

socket_type

默认SWOOLE_SOCK_TCP。通常情况下,无需关心这个配置。若需Nginx代理至UnixSocket Stream文件,则需修改为SWOOLE_SOCK_UNIX_STREAM,此时listen_ip则是UnixSocket Stream文件的路径。

enable_coroutine_runtime

bool 是否启用运行时协程,需Swoole>=4.1.0,默认false

server

string 当通过LaravelS响应数据时,设置HTTP头部Server的值,若为空则不设置,默认 LaravelS

handle_static

bool 是否开启LaravelS处理静态资源(要求 Swoole >= 1.7.21,若Swoole >= 1.9.17则由Swoole自己处理),默认false,建议Nginx处理静态资源,LaravelS仅处理动态资源。静态资源的默认路径为base_path('public'),可通过修改swoole.document_root变更。

laravel_base_path

string Laravel/Lumen的基础路径,默认base_path(),可用于配置符号链接

inotify_reload.enable

bool 是否开启Inotify Reload,用于当修改代码后实时Reload所有worker进程,依赖库inotify,通过命令php --ri inotify检查是否可用,默认false建议仅开发环境开启修改监听数上限

inotify_reload.watch_path

string Inotify 监控的文件路径,默认有base_path()

inotify_reload.file_types

array Inotify 监控的文件类型,默认有.php

inotify_reload.excluded_dirs

array Inotify 监控时需要排除(或忽略)的目录,默认[],示例:[base_path('vendor')]

inotify_reload.log

bool 是否输出Reload的日志,默认true

event_handlers

array 配置Swoole的事件回调函数,key-value格式,key为事件名,value为实现了事件处理接口的类,参考示例

websocket.enable

bool 是否启用WebSocket服务器。启用后WebSocket服务器监听的IP和端口与Http服务器相同,默认false

websocket.handler

string WebSocket逻辑处理的类名,需实现接口WebSocketHandlerInterface,参考示例

sockets

array 配置TCP/UDP套接字列表,参考示例

processes

array 配置自定义进程列表,参考示例

timer

array 配置毫秒定时器,参考示例

swoole_tables

array 定义的swoole_table列表,参考示例

cleaners

array 每次请求的清理器列表,用于清理一些残留的全局变量、单例对象、静态属性,避免多次请求间数据污染。这些清理器类必须实现接口Hhxsv5\LaravelS\Illuminate\Cleaners\CleanerInterface。清理的顺序与数组的顺序保持一致。这些清理器默认已启用,无需再配置。

  1. // 如果你的项目中使用到了Session、Authentication、Passport,需配置如下清理器
  2. 'cleaners' => [
  3. Hhxsv5\LaravelS\Illuminate\Cleaners\SessionCleaner::class,
  4. Hhxsv5\LaravelS\Illuminate\Cleaners\AuthCleaner::class,
  5. ],
  1. // 如果你的项目中使用到了包"tymon/jwt-auth",需配置如下清理器
  2. 'cleaners' => [
  3. Hhxsv5\LaravelS\Illuminate\Cleaners\SessionCleaner::class,
  4. Hhxsv5\LaravelS\Illuminate\Cleaners\AuthCleaner::class,
  5. Hhxsv5\LaravelS\Illuminate\Cleaners\JWTCleaner::class,
  6. ],
  1. // 如果你的项目中使用到了包"spatie/laravel-menu",需配置如下清理器
  2. 'cleaners' => [
  3. Hhxsv5\LaravelS\Illuminate\Cleaners\MenuCleaner::class,
  4. ],
  1. // 如果你的项目中使用到了包"encore/laravel-admin",需配置如下清理器
  2. 'cleaners' => [
  3. Hhxsv5\LaravelS\Illuminate\Cleaners\SessionCleaner::class,
  4. Hhxsv5\LaravelS\Illuminate\Cleaners\AuthCleaner::class,
  5. Hhxsv5\LaravelS\Illuminate\Cleaners\LaravelAdminCleaner::class,
  6. ],
  1. // 如果你的项目中使用到了包"jqhph/dcat-admin"
  2. 'cleaners' => [
  3. Hhxsv5\LaravelS\Illuminate\Cleaners\SessionCleaner::class,
  4. Hhxsv5\LaravelS\Illuminate\Cleaners\AuthCleaner::class,
  5. Hhxsv5\LaravelS\Illuminate\Cleaners\DcatAdminCleaner::class,
  6. ],

register_providers

array 每次请求需要重新注册的Service Provider列表,若存在boot()方法,会自动执行。一般用于清理注册了单例的ServiceProvider

  1. //...
  2. 'register_providers' => [
  3. \Xxx\Yyy\XxxServiceProvider::class,
  4. ],
  5. //...

destroy_controllers

array 每次请求后自动销毁控制器,解决单例控制器的问题,参考示例

swoole

array Swoole的原始配置项,请参考Swoole服务器配置项