当前位置: 首页 > 后端技术 > PHP

PHP手写MVC(四)——配置

时间:2023-03-29 22:40:52 PHP

通常一个框架都会提供一个获取配置文件的操作类,这个类的作用是加载用户自定义的配置文件,读取和设置配置文件等操作。我们规定用户配置文件目录为origin/app/conf。在这个目录下,config.php是默认的配置文件。此外,还可以在此目录中创建其他配置文件,如db.php、server.php等。所有其他文件也会自动加载。定义规则配置文件的内容直接返回一个数组。示例app/conf/config.php['controller'=>'index','action'=>'index','router'=>'querystring',],'debug'=>true,'cache'=>'redis',];app/conf/db.php['host'=>'127.0.0.1','username'=>'','password'=>'','db'=>'','port'=>3306,'charset'=>'utf8','prefix'=>''],'redis'=>['方案'=>'','主机'=>'','端口'=>'',]];使用规则通过Config::get($key)获取配置。config.php可以作为默认配置文件直接获取配置文件内容,多维数组用.隔开,如conf=$conf;}因为继承自Container,构造函数只执行一次,所以在__construct()中加载配置文件可以避免重复加载。除了config.php之外的其他配置文件都需要使用文件名作为key。解析多维键并使用默认值//1protectedfunctionget($key=null,$default=null){//2if(empty($key)){return$this->conf;}//3if(strpos($key,'.')){$conf=$this->conf;foreach(explode('.',$key)as$k){$conf=$conf[$k]??$默认;}返回$conf;}//4返回$this->conf[$key]??$default;}在使用::执行方法时,需要将方法声明为protected,如Config::get($key);。如果$key为空,则返回所有配置。使用。解析多维数组配置。如果没有找到对应的值,则根据是否设置默认值返回结果。