Yaconf配置管理扩展使用示例

本篇文章是对Yaconf配置管理扩展使用示例进行讲述的,具有一定的学习价值,感兴趣的朋友可以看看,希望对你有所帮助。

一、单独使用

在目录 D:\phpStudy\Yaconf 下新增配置文件 redis.ini,内容如下

  1. [base]
  2. parent="yaconf"
  3. children="NULL"
  4. [children:base]
  5. children="set"

重启服务器,新建 index.php 文件测试

  1. <?php
  2. $redis = \Yaconf::get('redis');
  3. print_r($redis);

打印内容

  1. $ php index.php
  2. Hello WorldArray
  3. (
  4. [base] => Array
  5. (
  6. [parent] => yaconf
  7. [children] => NULL
  8. )
  9. [children] => Array
  10. (
  11. [parent] => yaconf
  12. [children] => set
  13. )
  14. )

二、框架集成使用(ThinkPHP5.1)

php.ini

  1. [yaconf]
  2. yaconf.directory="/home/www/web/cl_new_pay_dev"
  3. yaconf.check_delay=60

5.1 版本默认支付yaconf

在项目更目录新建 thinkphp.ini 添加以下内容( cl_new_pay_dev 目录下)

  1. name="yaconf"
  2. year=2015
  3. features[]="fast"
  4. features.1="light"
  5. features.plus="zero-copy"
  6. features.constant=PHP_VERSION
  7. features.env=${HOME}

由于默认Yaconf使用多个配置文件,建议在项目中使用setYaconf方法指定Yaconf使用的独立配置文件,例如

建议在应用的公共函数文件中进行设置 common.php

think\facade\Config::setYaconf('thinkphp');

(1)使用助手函数

  1. var_dump(Config::yaconf('name'));
  2. var_dump(Config::yaconf('year'));
  3. var_dump(Config::yaconf('features')['plus']);
  4. var_dump(Config::yaconf('features.plus'));
  5. var_dump(Config::yaconf('features.constant'));
  6. var_dump(Config::yaconf('features.env'));

打印结果

  1. string(6) "yaconf"
  2. string(4) "2015"
  3. string(9) "zero-copy"
  4. string(9) "zero-copy"
  5. string(6) "7.2.12"
  6. string(0) ""

(2)不适用助手函数,直接访问

  1. print_r("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
  2. print_r(\Yaconf::get("cpay"));
  3. print_r(\Yaconf::get("cpay.common"));
  4. print_r(\Yaconf::get("cpay.database"));
  5. print_r(\Yaconf::get("cpay.redis"));
  6. print_r(\Yaconf::get("cpay.redis.host"));

打印结果

  1. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Array
  2. (
  3. [common] => Array
  4. (
  5. [app_name] => 二万OCR
  6. [app_host] => www.cnblogs.com
  7. [app_debug] => 1
  8. )
  9. [database] => Array
  10. (
  11. [app_name] => 二万OCR
  12. [app_host] => www.cnblogs.com
  13. [app_debug] => 1
  14. [hostname] => 127.0.0.1
  15. [database] => cl_cpay
  16. [username] => root
  17. [password] => wang123456,
  18. )
  19. [redis] => Array
  20. (
  21. [app_name] => 点点支付
  22. [app_host] => www.cnblogs.com
  23. [app_debug] => 1
  24. [host] => 192.168.1.1
  25. [port] => 6379
  26. [auth] => 123456
  27. [prefix] => TII
  28. )
  29. )
  30. Array
  31. (
  32. [app_name] => 二万OCR
  33. [app_host] => www.cnblogs.com
  34. [app_debug] => 1
  35. )
  36. Array
  37. (
  38. [app_name] => 二万OCR
  39. [app_host] => www.cnblogs.com
  40. [app_debug] => 1
  41. [hostname] => 127.0.0.1
  42. [database] => cl_cpay
  43. [username] => root
  44. [password] => wang123456,
  45. )
  46. Array
  47. (
  48. [app_name] => 二万OCR
  49. [app_host] => www.cnblogs.com
  50. [app_debug] => 1
  51. [host] => 192.168.1.1
  52. [port] => 6379
  53. [auth] => 123456
  54. [prefix] => TII
  55. )
  56. 192.168.1.1

capy.ini 配置文件

  1. [common]
  2. app_name = "二万OCR"
  3. app_host = "www.cnblogs.com"
  4. app_debug= true
  5. [database:common]
  6. hostname = "127.0.0.1"
  7. database = "cl_cpay"
  8. username = "root"
  9. password = "wang123456",
  10. [redis:common]
  11. host = "192.168.1.1"
  12. port = 6379
  13. auth = 123456
  14. prefix = "TII"