配置

swoft 的配置与其他框架稍微有一些区别,有几份:

  • config/server.php swoft 服务器配置,主要是对swoole的配置
  • config/beans/* swoft beans 配置,用于配置一些通过数组方式创建的bean,关于bean的创建方式请查看相关章节。
  • config/properties/* 这里面就是通常的 应用配置 数据了
    • 只会加载里面的 app.php 文件,其他文件都是在 app.php 内部include进来的
  • config/define.php 定义了一些通用的常量和路径别名

当然 .env 也是一份配置,它总是最先被载入进来,以方便后面的使用。

配置的使用

配置的使用主要是指 应用配置 数据的获取使用

应用配置

应用配置对象是 Swoft\Core\Config 的实例。

获取配置对象:

  • \Swoft::getProperties() OR \Swoft\App::getProperties()
  • \Swoft::getBean('config') OR \Swoft\App::getBean('config')

获取配置:

  1. // 通过全局函数使用
  2. $value = \config('key', 'default value');
  3. // 通过 "." 符号获取子级配置
  4. $value = \config('section.subkey', 'default value');
  5. // 通过获取config对象来使用
  6. $config = \Swoft::getBean('config');
  7. $value = $config->get('key', 'default value');
  8. $value = $config->get('section.subkey', 'default value');
  9. // 设置值
  10. $config->set('my-name', 'tom');
  11. echo $config->get('my-name'); // tom

路径别名

路径别名 主要是配置了一些常用的路径,给他们取了一些别名以方便使用。

已有别名

  1. // Register aliases
  2. $aliases = [
  3. '@root' => BASE_PATH, // 项目所在路径
  4. '@env' => '@root',
  5. '@app' => '@root/app',
  6. '@res' => '@root/resources',
  7. '@runtime' => '@root/runtime',
  8. '@configs' => '@root/config',
  9. '@resources' => '@root/resources',
  10. '@beans' => '@configs/beans',
  11. '@properties' => '@configs/properties',
  12. '@console' => '@beans/console.php',
  13. '@commands' => '@app/command',
  14. '@vendor' => '@root/vendor',
  15. ];
  16. \Swoft\App::setAliases($aliases);

如有需要,您可以添加自定义的别名

别名使用

  1. // 通过全局函数使用
  2. $path = \alias('@app');
  3. $path = \alias('@app/Controllers');
  4. // 通过顶级类 \Swoft 使用
  5. $path = \Swoft::getAlias('@app');
  6. $path = \Swoft::getAlias('@app/Controllers');

获取全部的别名:

  1. $aliaes = \Swoft::getAliases();