目录结构¶
一、zan框架配置¶
目录结构¶
- ├── cache
- │ └── pf
- ├── config
- │ ├── qatest
- │ ├── share
- │ └── test
- ├── config.php
- ├── kvstore
- │ └── test.php
- ├── middleware
- │ └── middleware.php
- └── sql
- └── demo.php
zan框架的配置文件位于$ROOTPATH/resource文件夹下,各子目录存放内容为:
cache:redis中的key模板配置
config:各环境关于连接池、服务发现等配置的文件夹,share子目录存放各环境公共的配置。加载时会将特定环境下的配置和share配置进行合并,特定环境下的配置优先级高于share中的配置。
middleware:请求过滤和异常处理中间件的匹配规则
sql:sql语句模板配置,使用时传入data即可组成sql语句
各环境配置文件都放在ROOTPATH/resource/config/ENV文件夹下,下面以test环境举例,结构如下:
- resource/config/test/
- ├── connection
- │ ├── kvstore.php
- │ ├── mysql.php
- │ └── tcp.php
- ├── debug.php
- ├── haunt.php
- ├── hawk.php
- ├── monitor
- │ └── trace.php
- └── server.php
$ROOTPATH/resource/config/share文件夹为所有环境共享配置,可用于存放业务相关,环境无关的配置。
二、应用初始化配置¶
- ├── app.php
- ├── ServerStart
- │ ├── .config.php
- │ └── LoadUrlConfig.php
- └── WorkerStart
- ├── .config.php
- └── LoadUrlConfig.php
除了自身的配置之外,zan框架另外提供了应用自定义初始化配置的钩子,配置文件位于init文件夹下,名称为.config.php
ServerStart和WorkerStart文件夹分别用于存放server进程和worker进程启动时的初始化操作,文件示例为
.config.php
- <?php
- return [
- \Scrm\Open\Init\WorkerStart\LoadUrlConfig::class,
- ];
LoadUrlConfig.php
- <?php
- namespace Scrm\Open\Init\WorkerStart;
- use Zan\Framework\Contract\Network\Bootable;
- use Zan\Framework\Foundation\Core\Config;
- use Zan\Framework\Utilities\Types\URL;
- class LoadUrlConfig implements Bootable
- {
- public function bootstrap($server)
- {
- $config = Config::get('url');
- URL::setConfig($config);
- }
- }
应用可根据需要实现ZanFrameworkContractNetworkBootable接口,然后将类名注册到.config.php文件的返回数组即可。
三、配置获取与变更¶
zan框架为应用程序提供了配置获取和变更的统一接口:
- namespace Zan\Framework\Foundation\Core;
- class Config {
- //动态设置配置数据
- public static function set($key, $value);
- //获取配置数据,无法获取对应项内容时返回$default
- public static function get($key, $default = null);
- }
set和get方法中的key与目录结构对应,根目录为ROOTPATH/resource/config/ENV文件夹,如需要获取上述haunt.php文件中的配置数组,可以使用Config::get(’haunt‘)返回数组。如需获取haunt.php配置数组中的某一项item的值,可以使用Config::get(’haunt.item‘)返回。