ThinkPHP5.0框架开发--第3章 TP5.0 配置

ThinkPHP5.0框架开发--第3章 TP5.0 配置

第3章 TP5.0 配置

=============================================================

上次复习

1、框架名词

         1、入口文件

         2、应用

         3、模块(前台模块 后台模块)

         4、控制器

         5、数据模型

         6、视图

         7、命名空间

2、跨控制器调用

        

         # 实例化 当前模块User控制器

         controller('User');

         # 实例化后台模块User控制器

         controller('AdminUser');

3、跨方法调用

         # 实例化当前控制器test方法

         action('test');

         # 实例化当前模块User控制器test方法

         action('User est');

         # 实例化Admin模块User控制器test方法

         action('AdminUser est');

4、如何新建一个模块

5、如何新建一个控制器

6、讲解TP运转流程

=============================================================

今日学习

1、配置文件格式

         a) ThinkPHP支持多种格式的配置格式,但最终都是解析为PHP数组的方式。

         b) 我们主要的学习形式就是数组

                   return [

                            'name'=>'',

                            'age'=>'',

                   ];

2、配置的形式

         1、惯例配置

                   a、惯例配置目录

                            C:AppServwww p5 hinkphpconvention.php

                   b、注意:

                            大家一般不要修改惯例配置

         2、应用配置

                   a、应用配置目录

                            C:AppServwww p5applicationconfig.php

         3、扩展配置

                   a、扩展配置

                            其实就是对配置文件进行分目录的管理

                   b、扩展配置目录

                            # C:AppServwww p5applicationdatabase.php

                            # C:AppServwww p5applicationextra用户可以自定义配置文件

                   c、读取database扩展配置 

                            # 读取databse中的扩展项

                            dump(config('扩展文件名.password'));

                            dump(config('database.password'));

                            # 读取所有的database扩展

                            dump(config('database'));

                   d、自定义扩展配置

                            1、在 扩展目录(C:AppServwww p5applicationextra)下 新建user.php

                            2、打开文件 

                                     <?php

                                     return [

                                               "name"=>"小郭",

                                               "love"=>"作家",

                                               "wai"=>"小四"

                                     ];

                            3、读取自定义扩展配置

                                     dump(config('user'));

                                     dump(config('user.wai')

         4、场景配置

                   a、解决问题

                            开发过程可能不同环境下进行开发

                   b、如何使用

                            1、修改应用配置(C:AppServwww p5applicationconfig.php)

                                'app_status'             => 'home',

                       2、在应用目录下新建(C:AppServwww p5application) 新建对应home.php

                       3、在home.php 中书写相关配置

         5、模块配置

                   a、解决问题

                            每一个模块,都有自己特有的配置

                   b、如何使用(以前台模块为例)

                            1、在前台模块下(C:AppServwww p5applicationindex)新建 config.php

                            2、打开配置文件书写

                                     <?php

                                     return [

                                               "index"=>"我是前台配置"

                                     ];

         6、动态配置

                   1、系统方法

                            // config(参数1,参数2);

                            config('name','PHP开发');

                   2、系统类

                            hinkConfig::set('name','WEB前端');

                            use hinkConfig;

                            Config::set('name','小程序开发');

3、读取配置

        

         1、通过系统类

                   # 如果配置项存在 直接输出 不存在返回NULL

                   1、打印配置信息

                            echo hinkConfig::get('name');

                            think下面有这么一个config类,这个类里面有get方法。

                   2、打印数组配置信息

                            echo hinkConfig::get('teacher');

                            echo hinkConfig::get('teacher.name');

                  

         2、通过系统方法

                   1、打印配置信息

                            echo config('name');

                   2、打印数组配置信息

                            dump(config('teacher'));

                            dump(config('teacher.name'));

                   3、读取所有配置

                            dump(config());

         3、使用use

                   1、打印配置信息

                            use hinkConfig;

                            echo Config::get('kouhao');

                   2、打印数组配置信息

                            use hinkConfig;

                            echo Config::get('teacher');

                            echo Config::get('teacher.name');

4、系统类(C:AppServwww p5 hinkphplibrary hink)

        

         Config 设置和获取配置文件

5、系统方法(C:AppServwww p5 hinkphphelper.php)

        

         Controller  实例化控制器

         action      调用模块的操作方法

         config      设置和获取配置

         dump        浏览器友好的变量输出

        

6、配置文件之间的加载顺序

         1、优先级

                   动态配置>模块配置>场景配置>扩展配置>应用配置>惯例配置

         2、加载顺序

                   惯例配置->应用配置->扩展配置->场景配置->模块配置->动态配置

         3、配置文件实现原理

                   $data=array(

                            "name"=>"惯例配置",

                            'a'=>'a'

                            );

                   $data1=array(

                            "name"=>'应用配置',

                            "b"=>'b'

                            );

                   # 后面加载的配置,把前面加载匹配同名覆盖

                   dump(array_merge($data,$data1));

        

7、环境变量配置

         1、TP5.0 支持环境变量配置

         2、设置环境变量配置

                   a、打开网站根目录(C:AppServwww p5) 新建.env

                   b、书写环境配置

                            name=haoge

                            age=18

                            [database]

                            type=mysql

                            root=root

                            pass=123qweaasd

                   c、注意配置环境变量不能使用中文

 

         3、读取环境配置

                   a、命名空间

                       dump( hinkEnv::get('name'));

                       dump( hinkEnv::get('abc','不存在'));

                       # 读取数组配置

                       # 不能读取整个数组

                       dump( hinkEnv::get('database.type'));

                   b、use 导入系统类

                       use hinkEnv;

                       dump(Env::get('name'));

                       # 读取数组配置

                       # 不能读取整个数组

                                dump(Env::get('database.type'));

         4、如何使用

                   打开配置文件        

                            use hinkEnv;

                            return [

                               

                                // 应用调试模式

                                'app_debug'              => Env::get('app_debug',false),

                                // 应用模式状态

                                'app_status'             => Env::get('app_status',''),

                            ];

Index.php

  1 <?php
  2 namespace appindexcontroller;
  3 
  4 // 引入Config类
  5 
  6 use 	hinkConfig;
  7 
  8 // 引入Env类
  9 
 10 use 	hinkEnv;
 11 class Index
 12 {
 13     public function index()
 14     {
 15         return '<style type="text/css">*{ padding: 0; margin: 0; } .think_default_text{ padding: 4px 48px;} a{color:#2E5CD5;cursor: pointer;text-decoration: none} a:hover{text-decoration:underline; } body{ background: #fff; font-family: "Century Gothic","Microsoft yahei"; color: #333;font-size:18px} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.6em; font-size: 42px }</style><div style="padding: 24px 48px;"> <h1>:)</h1><p> ThinkPHP V5<br/><span style="font-size:30px">十年磨一剑 - 为API开发设计的高性能框架</span></p><span style="font-size:22px;">[ V5.0 版本由 <a href="http://www.qiniu.com" target="qiniu">七牛云</a> 独家赞助发布 ]</span></div><script type="text/javascript" src="http://tajs.qq.com/stats?sId=9347272" charset="UTF-8"></script><script type="text/javascript" src="http://ad.topthink.com/Public/static/client.js"></script><thinkad id="ad_bd568ce7058a1091"></thinkad>';
 16     }
 17 
 18     // 读取配置文件
 19 
 20     public function getConfig(){
 21 
 22         // 系统函数读取配置
 23         echo config('name');
 24 
 25         // 通过系统类读取配置
 26         // 如果配置项存在 直接输出 不存在返回NULL
 27         echo 	hinkConfig::get('name');
 28         dump(	hinkConfig::get('abc'));
 29     
 30         echo dump(Config::get('kouhao'));
 31 
 32         echo "<hr>";
 33 
 34         // 通过config方法获取数组
 35         dump(config('teacher'));
 36         dump(config('teacher.name'));
 37         dump(config('teacher.age'));
 38 
 39         // 通过config类获取配置
 40         dump(Config::get('teacher'));
 41         dump(Config::get('teacher.sex'));
 42 
 43         dump(	hinkConfig::get('teacher'));
 44 
 45         // 读取应用配置
 46 
 47         dump(config('app_name'));
 48 
 49     }    
 50 
 51     // 读取扩展配置
 52 
 53     public function getkuozhan(){
 54         // 读取database扩展
 55         dump(config('database.password'));
 56         dump(config('database'));
 57         // 读取用户自定义扩展
 58         dump(config('user'));
 59         dump(config('user.wai'));
 60     }
 61 
 62     // 读取场景配置
 63 
 64     public function getchangjing(){
 65         dump(config('database.database'));
 66         dump(config('database.password'));
 67     }
 68 
 69     // 读取模块配置
 70 
 71     public function getmokuai(){
 72         dump(config('index'));
 73     }
 74 
 75     // 动态配置
 76 
 77     public function setConfig(){
 78 
 79         dump(config('name'));
 80         // 系统方法
 81         // config(参数1,参数2);
 82         config('name','PHP开发');
 83 
 84         // 系统类
 85 
 86         	hinkConfig::set('name','WEB前端');
 87 
 88         Config::set('name','小程序开发');
 89 
 90         dump(config('name'));
 91     }
 92 
 93     // 加载顺序
 94 
 95     public function jiazai(){
 96 
 97         // 动态配置
 98 
 99         // config('name','动态配置');
100 
101         // 输出配置
102 
103         // dump(config('name'));
104 
105         $data=array(
106 
107             "name"=>"惯例配置",
108             'a'=>'a'
109             );
110 
111         $data1=array(
112             "name"=>'应用配置',
113             "b"=>'b'
114             );
115 
116         dump(array_merge($data,$data1));
117     }
118 
119     // 读取环境变量
120 
121     public function getenv(){
122 
123         // 系统类
124         dump(	hinkEnv::get('name'));
125         dump(	hinkEnv::get('abc','不存在'));
126 
127         dump(Env::get('name'));
128 
129         dump(Env::get('database.type'));
130     }
131 }
原文地址:https://www.cnblogs.com/Renyi-Fan/p/8592301.html