thinkphp 5.1 部分知识记录<一>

1、配置基础

惯例配置->应用配置->模块配置->动态配置

  • 惯例配置:核心框架内置的配置文件,无需更改。
  • 应用配置:每个应用的全局配置文件(框架安装后会生成初始的应用配置文件),有部分配置参数仅能在应用配置文件中设置。
  • 模块配置:每个模块的配置文件(相同的配置参数会覆盖应用配置),有部分配置参数模块配置是无效的,因为已经使用过。
  • 动态配置:主要是指在控制器或者行为中进行(动态)更改配置,该配置方式只在当次请求有效,因为不会保存到配置文件中。

只能应用配置中设置参数如下:

配置参数 描述
app_debug 应用调试模式(支持环境变量配置)
app_trace 应用trace(支持环境变量配置)
class_suffix 类后缀
default_filter 默认过滤机制
root_namespace 根命名空间
pathinfo_depr PATH_INFO分隔符
url_route_must 路由强制模式
auto_bind_module 自动绑定模块
default_lang 默认语言
lang_switch_on 多语言切换

只能环境变量中修改的参数如下:

配置参数 描述
app_namespace 应用命名空间
config_ext 配置文件后缀

2、架构总览

  • 入口文件
  • 应用
  • 路由
  • 模块
  • 控制器
  • 操作(方法)
  • 模型
  • 视图
  • 板引擎
  • 驱动
  • 行为
  • 中间件
  • 事件
  • 助手函数

3、环境变量

5.1版本取消了所有的系统常量,原来的系统路径变量改为使用Env类获取(需要引入think\facade\Env):

// 获取应用目录(不区分大小写)
echo Env::get('app_path');
// 或者
echo Env::get('APP_PATH');

支持获取的系统路径变量包括:

系统路径 Env参数名称
应用根目录 root_path
应用目录 app_path
框架目录 think_path
配置目录 config_path
扩展目录 extend_path
composer目录 vendor_path
运行缓存目录 runtime_path
路由目录 route_path
当前模块目录 module_path
系统路径 Env参数名称
应用根目录 root_path
应用目录 app_path
框架目录 think_path
配置目录 config_path
扩展目录 extend_path
composer目录 vendor_path
运行缓存目录 runtime_path
路由目录 route_path
当前模块目录 module_path

4、命名空间

特别注意的是,如果你需要调用PHP内置的类库,或者第三方没有使用命名空间的类库,记得在实例化类库的时候加上 \,例如:

// 错误的用法
$class = new stdClass();
$xml  =  new SimpleXmlElement($xmlstr);
// 正确的用法
$class = new \stdClass();
$xml  =  new \SimpleXmlElement($xmlstr);

从ThinkPHP5.0开始,遵循PSR-4自动加载规范,只需要给类库正确定义所在的命名空间,并且命名空间的路径与类库文件的目录一致,那么就可以实现类的自动加载,从而实现真正的惰性加载。

例如,\think\cache\driver\File类的定义为:

namespace think\cache\driver;

class File 
{
}

如果我们实例化该类的话,应该是:

$class = new \think\cache\driver\File();

系统会自动加载该类对应路径的类文件,其所在的路径是 thinkphp/library/think/cache/driver/File.php

注:5.1版本默认的目录规范是小写,类文件命名是驼峰法,并且首字母大写。

5、容器和依赖注入

依赖注入其实本质上是指对类的依赖通过构造器完成自动注入,例如在控制器架构方法和操作方法中一旦对参数进行对象类型约束则会自动触发依赖注入,由于访问控制器的参数都来自于URL请求,普通变量就是通过参数绑定自动获取,对象变量则是通过依赖注入生成。其实就是java的对象参数,这个概念豪头太大,又不好记。

<?php
namespace app\index\controller;

use app\index\model\User;

class Index
{
    protected $user;

    public function __construct(User $user)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

行思理

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值