- LaravelS 配置项
- listen_ip
- listen_port
- socket_type
- enable_coroutine_runtime
- server
- handle_static
- laravel_base_path
- inotify_reload.enable
- inotify_reload.watch_path
- inotify_reload.file_types
- inotify_reload.excluded_dirs
- inotify_reload.log
- event_handlers
- websocket.enable
- websocket.handler
- sockets
- processes
- timer
- swoole_tables
- cleaners
- register_providers
- destroy_controllers
- swoole
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
。清理的顺序与数组的顺序保持一致。这些清理器默认已启用,无需再配置。
// 如果你的项目中使用到了Session、Authentication、Passport,需配置如下清理器
'cleaners' => [
Hhxsv5\LaravelS\Illuminate\Cleaners\SessionCleaner::class,
Hhxsv5\LaravelS\Illuminate\Cleaners\AuthCleaner::class,
],
// 如果你的项目中使用到了包"tymon/jwt-auth",需配置如下清理器
'cleaners' => [
Hhxsv5\LaravelS\Illuminate\Cleaners\SessionCleaner::class,
Hhxsv5\LaravelS\Illuminate\Cleaners\AuthCleaner::class,
Hhxsv5\LaravelS\Illuminate\Cleaners\JWTCleaner::class,
],
// 如果你的项目中使用到了包"spatie/laravel-menu",需配置如下清理器
'cleaners' => [
Hhxsv5\LaravelS\Illuminate\Cleaners\MenuCleaner::class,
],
// 如果你的项目中使用到了包"encore/laravel-admin",需配置如下清理器
'cleaners' => [
Hhxsv5\LaravelS\Illuminate\Cleaners\SessionCleaner::class,
Hhxsv5\LaravelS\Illuminate\Cleaners\AuthCleaner::class,
Hhxsv5\LaravelS\Illuminate\Cleaners\LaravelAdminCleaner::class,
],
// 如果你的项目中使用到了包"jqhph/dcat-admin"
'cleaners' => [
Hhxsv5\LaravelS\Illuminate\Cleaners\SessionCleaner::class,
Hhxsv5\LaravelS\Illuminate\Cleaners\AuthCleaner::class,
Hhxsv5\LaravelS\Illuminate\Cleaners\DcatAdminCleaner::class,
],
register_providers
array
每次请求
需要重新注册的Service Provider
列表,若存在boot()
方法,会自动执行。一般用于清理注册了单例的ServiceProvider
。
//...
'register_providers' => [
\Xxx\Yyy\XxxServiceProvider::class,
],
//...
destroy_controllers
array
每次请求后自动销毁控制器,解决单例控制器的问题,参考示例。
swoole
array
Swoole的原始
配置项,请参考Swoole服务器配置项。