系统配置

配置目录

配置文件和目录很简单,根目录下的 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