ThinkPHP5.0---------配置

来源:互联网 发布:刘若鹏 知乎 编辑:程序博客网 时间:2024/06/03 11:39

首先配置虚拟主机 , 域名指向项目的public目录。

一、模块设计

1.很多模块通用方法,需要有一个地方来防止,TP默认将common做成一个公共的模块,它不允许我们在url中直接取访问。

首先在application目录下创建common\controller\Index.php


默认在url中访问不了


那么如何使用common下的方法呢?

①引入到其他的控制器中进行调用

进入application\index\controller\Index.php中




这样就访问到了

②可以采用继承的方式而不用去new




此控制器中不能有index方法,否则会被重写



此时common的index方法被重写

二、把application修改为app

public\index.php


修改过后的目录名


三、惯例配置

在ThinkPHP中,配置时非常重要的,ThinkPHP将我们所有的配置最终转化成数组提供给我们使用。ThinkPHP为我们提供了两种获取和设置配置的方式,一种是通过think下的config类来进行改变,一种是通过config助手函数来进行设置和改变,config助手函数其实就是think下的config类或者是一个封装,我们可以很方便的对配置进行设置和获取。

通过函数

      config()获取所有配置

通过config类

      use   think\config;

      config::set(‘username’,’huang’,’index’);设置局部(在此方法中生效)

      config::get(‘username’,’index’);

      config::set(‘username’,’haha’);全局设置

      config::get(‘username’);获取

      config::has(‘username’) ===》相当于isset判断是否存在

      config(‘?username’)是否存在


四、应用配置

为了方便查找,可将app下的一些公共配置文件(config.php,database.php等)放在其他地方,如:创建与app同级的conf文件夹,然后在入口文件添加define(‘CONF_PATH’,__DIR__,’/../conf/’);这样的话会间接影响框架的公共配置文件,避免了对框架本身代码上作修改。

首先我们在之前创建的conf目录下创建一个config.php(文件名只能是这个);



通过config()获得所有配置

我们可以通过修改框架下convention.php里面的某一个配置,都 可以在conf/config.php中进行修改

五、扩展配置

那么现在我们在conf下创建一个目录叫extra  注意:必须叫这个名字才能生效。





key值为email,在TP5中,在配置扩展目录中,它默认将这个文件名当做配置项的key,它返回的值作为其值


六、模块配置

在conf目录下新建一个文件夹Index,在Index中创建config,这样的话就只会影响app\index模块中的内容


七、动态配置

①全局生效

在控制器中写一个__construct()方法



②局部生效


当前的方法内有效

八、环境变量

我们可以在app的同级目录下创建一个.env的文件,然后可以在里边添加配置项,它会自动读到系统的环境变量中($_ENV我打印不出来我添加的)在.env中添加内容email = abc@18.com

 (var_dump($_ENV))时,结果是个空数组需要修改一下php.ini中的 variables_order ="GPCS"。需要多添加一个E,即variables_order= "EGPCS"。

$res = Env::get('email')

dump($res);


如果获取得值不存在,加一个参数给一个默认返回

$res = Env::get('emails','defalut');



如果事与愿违,那么上天一定另有安排。