TP 3.2 笔记 (1)

时间:2023-08-01 11:43:02

1.配置文件分布在好多子模块中

2.I方法 使用指定过滤方法来过滤变量,第三个参数如果是函数名,则会调用该函数进行过滤,(在变量是数组的情况下自动使用array_map进行过滤处理),否则会调用  PHP内置的filter_var方法进行过滤处理。

  如果你没有在调用I函数的时候指定过滤方法的话,系统会采用默认的过滤机制(由DEFAULT_FILTER配置),事实上,该参数的默认设置是:

  1. // 系统默认的变量过滤机制
  2. 'DEFAULT_FILTER' => 'htmlspecialchars'

  在有些特殊的情况下,我们不希望进行任何过滤,即使DEFAULT_FILTER已经有所设置,可以使用:

  1. // 下面两种方式都不采用任何过滤方法
  2. I('get.name','','');
  3. I('get.id','',false);

 一旦过滤参数设置为空字符串或者false,即表示不再进行任何的过滤。

3.ThinkPHP 的单字母函数设置

4.模型实例化是使用数组定义。

5.使用D方法实例化,档子home\model下找不到时,D函数会尝试实例化公共模块下面的 \Common\Model\下的模型。D方法的参数就是模型的名称,并且和模型类的大小写定义是一致的。D方法实例化模型类的时候通常是实例化某个具体的模型类,如果你仅仅是对数据表进行基本的CURD操作的话,使用M方法实例化的话,由于不需要加载具体的模型类,所以性能会更高(M方法的效率会更高)。

实例化空模型类

如果你仅仅是使用原生SQL查询的话,不需要使用额外的模型类,实例化一个空模型类即可进行操作了。

6.如果在某个模型类里面定义了connection属性的话,则实例化该自定义模型的时候会采用定义的数据库连接信息,而不是配置文件中设置的默认连接信息,通常用于某些数据表位于当前数据库连接之外的其它数据库,除了在模型定义的时候指定数据库连接信息外,我们还可以在实例化的时候指定数据库连接信息,例如: 如果采用的是M方法实例化模型的话,也可以支持传入不同的数据库连接信息。

7.D,I,M

@@@@@@@@@@@@@@@@@@@@@@@@@@

9/20

1.

全局空间

如果没有定义任何命名空间,所有的类与函数的定义都是在全局空间,与 PHP 引入命名空间概念前一样。在名称前加上前缀 \ 表示该名称是全局空间中的名称,即使该名称位于其它的命名空间中时也是如此.

2. 注意配置文件的加载顺序,越是靠近模块的配合文件优先级越高。

3.behavior的使用时tags文件放在Conf文件夹。放在上一级目录Common的Conf或者当前和behavior目录同级的Conf下。

4.配置参数是全局有效的,因此C方法可以在任何地方读取任何配置,即使某个设置参数已经生效过期了。