微信扫一扫打赏支持

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('Admin\User');

 

3、跨方法调用

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

         action('test');

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

         action('User\test');

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

         action('Admin\User\test');

 

4、如何新建一个模块

 

5、如何新建一个控制器

 

6、讲解TP运转流程

 

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

今日学习

 

1、配置文件格式

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

 

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

                   return [

                            'name'=>'',

                            'age'=>'',

                   ];

 

2、配置的形式

         1、惯例配置

 

                   a、惯例配置目录

                            C:\AppServ\www\tp5\thinkphp\convention.php

 

                   b、注意:

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

 

         2、应用配置

 

                   a、应用配置目录

                            C:\AppServ\www\tp5\application\config.php

 

         3、扩展配置

                   a、扩展配置

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

 

                   b、扩展配置目录

                            # C:\AppServ\www\tp5\application\database.php

 

                            # C:\AppServ\www\tp5\application\extra\用户可以自定义配置文件

 

                   c、读取database扩展配置 

 

                            # 读取databse中的扩展项

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

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

 

                            # 读取所有的database扩展

                            dump(config('database'));

 

                   d、自定义扩展配置

 

                            1、在 扩展目录(C:\AppServ\www\tp5\application\extra)下 新建user.php

 

                            2、打开文件 

                                     <?php

                                     return [

                                               "name"=>"小郭",

                                               "love"=>"作家",

                                               "wai"=>"小四"

 

                                     ];

 

                            3、读取自定义扩展配置

                                     dump(config('user'));

                                     dump(config('user.wai')

 

         4、场景配置

                   a、解决问题

 

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

 

                   b、如何使用

 

                            1、修改应用配置(C:\AppServ\www\tp5\application\config.php)

                                'app_status'             => 'home',

 

                       2、在应用目录下新建(C:\AppServ\www\tp5\application) 新建对应home.php

 

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

 

         5、模块配置

 

                   a、解决问题

 

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

 

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

 

                            1、在前台模块下(C:\AppServ\www\tp5\application\index)新建 config.php

 

                            2、打开配置文件书写

                                     <?php

                                     return [

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

                                     ];

 

         6、动态配置

 

                   1、系统方法

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

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

 

                   2、系统类

 

                            \think\Config::set('name','WEB前端');

 

                            use \think\Config;

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

 

 

3、读取配置

        

         1、通过系统类

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

                   1、打印配置信息

 

                            echo \think\Config::get('name');

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

                   2、打印数组配置信息

                            echo \think\Config::get('teacher');

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

                  

         2、通过系统方法

                   1、打印配置信息

                            echo config('name');

 

                   2、打印数组配置信息

                            dump(config('teacher'));

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

 

                   3、读取所有配置

                            dump(config());

 

         3、使用use

                   1、打印配置信息

 

                            use \think\Config;

                            echo Config::get('kouhao');

                   2、打印数组配置信息

                            use \think\Config;

                            echo Config::get('teacher');

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

 

4、系统类(C:\AppServ\www\tp5\thinkphp\library\think)

        

         Config 设置和获取配置文件

 

5、系统方法(C:\AppServ\www\tp5\thinkphp\helper.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:\AppServ\www\tp5) 新建.env

 

                   b、书写环境配置

                            name=haoge

                            age=18

 

                            [database]

                            type=mysql

                            root=root

                            pass=123qweaasd

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

 

 

 

         3、读取环境配置

                   a、命名空间

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

                       dump(\think\Env::get('abc','不存在'));

                       # 读取数组配置

                       # 不能读取整个数组

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

 

                   b、use 导入系统类

                       use \think\Env;

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

                       # 读取数组配置

                       # 不能读取整个数组

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

 

         4、如何使用

 

                   打开配置文件        

                            use \think\Env;

                            return [

                               

                                // 应用调试模式

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

                                // 应用模式状态

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

                            ];

Index.php

 

  1 <?php
  2 namespace app\index\controller;
  3 
  4 // 引入Config类
  5 
  6 use \think\Config;
  7 
  8 // 引入Env类
  9 
 10 use \think\Env;
 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 \think\Config::get('name');
 28         dump(\think\Config::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(\think\Config::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         \think\Config::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(\think\Env::get('name'));
125         dump(\think\Env::get('abc','不存在'));
126 
127         dump(Env::get('name'));
128 
129         dump(Env::get('database.type'));
130     }
131 }

 

posted @ 2018-03-17 19:53  范仁义  阅读(1117)  评论(0编辑  收藏  举报