系统配置
配置目录
配置文件和目录很简单,根目录下的 config
目录下面就是所有的配置文件。每个配置文件对应不同的组件,当然你也可以增加自定义的配置文件。
├─config
│ │ app.php
│ │ autoload.php
│ │ bootstrap.php
│ │ cache.php
│ │ captcha.php
│ │ container.php
│ │ database.php
│ │ dependence.php
│ │ event.php
│ │ exception.php
│ │ log.php
│ │ madong.php
│ │ middleware.php
│ │ process.php
│ │ redis.php
│ │ route.php
│ │ server.php
│ │ session.php
│ │ static.php
│ │ task.php
│ │ thinkorm.php
│ │ translation.php
│ │ upload.php
│ │ view.php
获取配置
获取所有配置
config();
获取 config/app.php
里的所有配置
config('app');
获取 config/app.php
里的 debug
配置
config('app.debug');
如果配置是数组,可以通过 .
来获取数组内部元素的值,例如
config('file.key1.key2');
默认值
config($key, $default);
config通过第二个参数传递默认值,如果配置不存在则返回默认值。
配置不存在且没有设置默认值则返回null。
自定义配置
开发者可以在 config/
目录下添加自己的配置文件,例如
config/payment.php
<?php
return [
'key' => '...',
'secret' => '...'
];
获取配置时使用
config('payment');
config('payment.key');
config('payment.key');
更改配置
webman不支持动态修改配置,所有配置必须手动修改对应的配置文件,并reload或restart重启
注意
服务器配置config/server.php
以及进程配置config/process.php
不支持reload,需要restart重启才能生效
特别提醒
如果你是要在config下的子目录创建配置文件并读取,比如:config/order/status.php
,那么 config/order
目录下需要有一个 app.php
文件,内容如下
<?php
return [
'enable' => true,
];
enable
为 true
代表让框架读取这个目录的配置。
最终配置文件目录树类似下面这样
├── config
│ ├── order
│ │ ├── app.php
│ │ └── status.php
这样你就可以通过 config.order.status
读取 status.php
中返回的数组或者特定的key数据了。
环境变量
统一调整配置获取环境变量,安装成功会在根目录自动创建 .env
配置,手动安装可以参考.example.env模板文件。
.env
# Application Environment
APP_ENV=local
APP_DEBUG=false
# Database Configuration
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=madong_community
DB_USERNAME=root
DB_PASSWORD=root
DB_PREFIX=ma_
# Redis Configuration
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
REDIS_PASSWORD=null
REDIS_DB=0
# Queue Redis Configuration
QUEUE_REDIS_HOST=127.0.0.1
QUEUE_REDIS_PORT=6379
QUEUE_REDIS_PASSWORD=null
QUEUE_REDIS_DB=0
QUEUE_REDIS_PREFIX=queue
# Cache Configuration
CACHE_CUSTOM_REDIS_HOST=127.0.0.1
CACHE_CUSTOM_REDIS_PORT=6379
CACHE_CUSTOM_REDIS_PASSWORD=null
CACHE_CUSTOM_REDIS_DB=0
CACHE_CUSTOM_REDIS_PREFIX=cache_custom
# Feature Toggles
TASK_ENABLED=false # Timer switch
TENANT_ENABLED=true # Tenant mode switch
CAPTCHA_ENABLED=true # Captcha switch
CAPTCHA_MODE=session # Captcha mode redis|session
RECYCLE_BIN_ENABLED=true # Recycle bin mode switch
# Other Configuration