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

 <?php
namespace app\index\controller; // 引入Config类 use \think\Config; // 引入Env类 use \think\Env;
class Index
{
public function index()
{
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>';
} // 读取配置文件 public function getConfig(){ // 系统函数读取配置
echo config('name'); // 通过系统类读取配置
// 如果配置项存在 直接输出 不存在返回NULL
echo \think\Config::get('name');
dump(\think\Config::get('abc')); echo dump(Config::get('kouhao')); echo "<hr>"; // 通过config方法获取数组
dump(config('teacher'));
dump(config('teacher.name'));
dump(config('teacher.age')); // 通过config类获取配置
dump(Config::get('teacher'));
dump(Config::get('teacher.sex')); dump(\think\Config::get('teacher')); // 读取应用配置 dump(config('app_name')); } // 读取扩展配置 public function getkuozhan(){
// 读取database扩展
dump(config('database.password'));
dump(config('database'));
// 读取用户自定义扩展
dump(config('user'));
dump(config('user.wai'));
} // 读取场景配置 public function getchangjing(){
dump(config('database.database'));
dump(config('database.password'));
} // 读取模块配置 public function getmokuai(){
dump(config('index'));
} // 动态配置 public function setConfig(){ dump(config('name'));
// 系统方法
// config(参数1,参数2);
config('name','PHP开发'); // 系统类 \think\Config::set('name','WEB前端'); Config::set('name','小程序开发'); dump(config('name'));
} // 加载顺序 public function jiazai(){ // 动态配置 // config('name','动态配置'); // 输出配置 // dump(config('name')); $data=array( "name"=>"惯例配置",
'a'=>'a'
); $data1=array(
"name"=>'应用配置',
"b"=>'b'
); dump(array_merge($data,$data1));
} // 读取环境变量 public function getenv(){ // 系统类
dump(\think\Env::get('name'));
dump(\think\Env::get('abc','不存在')); dump(Env::get('name')); dump(Env::get('database.type'));
}
}

ThinkPHP5.0框架开发--第3章 TP5.0 配置的更多相关文章

  1. ThinkPHP5.0框架开发--第5章 TP5.0 控制器

    ThinkPHP5.0框架开发--第5章 TP5.0 控制器 第5章 TP5.0 控制器 ============================================== 上次复习 1.路 ...

  2. ThinkPHP5.0框架开发--第4章 TP5.0路由

    ThinkPHP5.0框架开发--第4章 TP5.0路由 第4章 TP5.0 路由 ================================================== 上次复习 1. ...

  3. ThinkPHP5.0框架开发--第1章 Tp5.0安装

    ThinkPHP5.0框架开发--第1章 Tp5.0安装 第1章 Tp5.0 安装 ======================================================== 今 ...

  4. ThinkPHP5.0框架开发--第2章 TP5.0架构

    ThinkPHP5.0框架开发--第2章 TP5.0架构 第2章 TP5.0架构 ================================================== 上次复习 1.如 ...

  5. ThinkPHP5.0框架开发--第11章 TP5.0 杂项

    ThinkPHP5.0框架开发--第11章 TP5.0 杂项 第11章 TP5.0 杂项 =============================================== 今日学习 1. ...

  6. ThinkPHP5.0框架开发--第10章 TP5.0验证器

    ThinkPHP5.0框架开发--第10章 TP5.0验证器 第10章 TP5.0验证器 ======================================= 今日学习 1.验证器 1) 控 ...

  7. ThinkPHP5.0框架开发--第9章 TP5.0视图和模板

    ThinkPHP5.0框架开发--第9章 TP5.0视图和模板 第9章 TP5.0视图和模板 ===================================================== ...

  8. ThinkPHP5.0框架开发--第8章 TP5.0 模型

    ThinkPHP5.0框架开发--第8章 TP5.0 模型 第8章 TP5.0 模型 ================================================= 今日学习 1. ...

  9. ThinkPHP5.0框架开发--第7章 TP5.0数据库操作

    ThinkPHP5.0框架开发--第7章 TP5.0数据库操作 第7章 TP5.0数据库操作 ===================================================== ...

随机推荐

  1. redis持久化,rdb,aof

    RDB(Redis DataBase) AOF(Append Only File) 周阳语录:能撑过面试经理头一分钟最重要.头一分钟,决定人家还是否想跟你继续聊下去. RDB RDB就是在指定的时间内 ...

  2. mysql_udf_http(根据mysql表自动触发发送http请求)

    下载 tar包wget http://mysql-udf-http.googlecode.com/files/mysql-udf-http-1.0.tar.gz解压tar -vzxf mysql-ud ...

  3. java多线程 interrupt(), interrupted(), isInterrupted()方法区别

    interrupt()方法: 作用是中断线程. 本线程中断自身是被允许的,且"中断标记"设置为true 其它线程调用本线程的interrupt()方法时,会通过checkAcces ...

  4. SQL Server的三种分页方式

    直接上代码 --top not in方式 select top 条数 * from tablename where Id not in (select top 条数*页数 Id from tablen ...

  5. 【转】C#详解值类型和引用类型区别

    通用类型系统 值类型 引用类型 值类型和引用类型在内存中的部署 1 数组 2 类型嵌套 辨明值类型和引用类型的使用场合 5 值类型和引用类型的区别小结   首先,什么是值类型,什么是引用类型? 在C# ...

  6. C#——单元测试

    测试搭建请看:http://www.cnblogs.com/Look_Sun/p/4514732.html 右键不出现Generate Unit Test选项请参考:http://www.jb51.n ...

  7. 初探MVC路由

    文章目录: 1.认识理解URL,以及简单的路由 2.特性路由.传统路由.区域路由 3.路由生成URL&&绑定到操作&&路由约束 1.认识理解URL,以及简单的路由  默 ...

  8. 在.NetCore2.0中使用Swagger

    一.新建.netCore webapi项目 二.安装swagger ,通过 Package Manager 控制台:Install-Package SwashBuckle.AspNetCore -Pr ...

  9. C语言中以文本方式读写文件时换行符转换的注意事项

    我们知道在UNIX下是没有回车符(\r)的,只有换行符(\n),而C语言诞生于UNIX(Linux即面向开源的UNIX,Mac OS也是UNIX发展而来的,而Windows是从MS-DOS发展而来,与 ...

  10. python模拟登陆知乎

    ---恢复内容开始--- 在完成前面的阶段的任务之后,我们现在已经能够尝试着去模拟登录一些网站了.在这里我们模拟登录一下知乎做一下实验.笔者在这里总共用了三天多的时间,下面给大家分享一下笔者是怎么一步 ...