当前位置:文档之家› ThinkPHP自学笔记

ThinkPHP自学笔记


自动加载优先级, 上 => 下 高 => 低 类名 行为类 规则 说明 规则1 搜索系统类库目录下面的Behavior目录
规则2 搜索系统扩展目录下面的Behavior目录
规则3 搜索应用类库目录下面的Behavior目录 规则4 如果启用了模式扩展,则搜索模式扩展目录下面的Behavior目录
模型类 规则1 如果启用分组,则搜索应用类库目录的Model/当前分组 目录 规则2 搜索应用类库下面的Model目录
使用PDO 'DB_TYPE' => 'pdo', 'DB_DSN' => 'pdo的dsn', 给$connection 属性赋值, 可以自定义数据库连接信息,中有一些验证功能 data(), 没有验证, 只是简单的赋值.
字段映射 表单名 => 数据库字段 连贯操作 $User->where('status=1')->order('create_time')->limit(10)->select(); 下面这样也行, 等同上面. $User->select(array('order'=>'create_time','where'=>'status=
URL大小写 'URL_CASE_INSENSITIVE' =>true 区分大小写时, 在URL中按文件名大小写来定 有类为 UserType 区分大小写时, URL为: UserType 不区分大小写, URL为: user_type
跨模块调用 $user = A( 'Admin://Tool/User' ) Admin项目的Tool分组的User模块 如果启用分组, 要把分组名给写上, 不然, 貌似不好使啊.
规则3 搜索系统扩展目录下面的Model目录
控制器类 规则1 如果启用分组,则搜索应用类库目录的Action/当前分组 目录 规则2 搜索项目类库目录下面的Action目录
规则3 搜索系统扩展目录下面的Action目录
自定义路径自动加载 'APP_AUTOLOAD_PATH' =>'@.Common,@.Tool', 分组: 项目目录 公共目录 (Common)
参数绑定 在方法中, 可以指定形参数, 这样在程序执行时, 会直接把浏览器传递过来的参数给方法 .
多层控制器, 控制器分层 在TP中, 看着以Actoin结尾实在不爽, 改造, 必须改造 在Common/common.php中, import( '@.Common.Controller' ); 在项目目录下面建一个Common/Controller.class.php 内容为: class Controller extends Action {}
2月3日, TP自学
2013年2月3日 星期日 16:19
类文件都是以.class.php为后缀 在调试模式下面,即使在Windows平台也会严格检查大小写 类名和文件名一致 数据表和字段采用小写加下划线方式命名
行为: 到底是什么? 行为可以说是一个中间接口, 行为中保存了行为的名字, 和这个名字相对应的操作, 当准备执行这个行为的时候, 举例如下: class Behavior { static $callStaticMap = array( 'checkLogin' => 'CheckLoginBehavior' );
用于对查询的group支持 用于对查询的having支持
字符串和数字
字符串 字符串
join* union* lock cache
用于对查询的join支持 用于对查询的union支持 用于数据库的锁机制 用于查询缓存
字符串和数组 字符串、数组和对象
布尔值
distinct 用于查询的distinct支持
URL路由 在项目配置文件中设置, 在分组配置文件中貌似不好使 例如: 'Home/Abc/:m/:a' => 'Home/:1/:2' :1 = :m :2 = :a 正则路由比较不错的说. 在这儿发现PHP正则的一个用法 e 模式
URL生成 在模板中是 {:U( 参数 )} 域名使用: U( 'Blog/read@?username=xxx' );
分区 学习PHP 的第 5 页
$User->select(array('order'=>'create_time','where'=>'status= 1','limit'=>'10')); 连贯操作 作用 支持的参数类型
where table
alias data
用于查询或者更新条件的定义 用于定义要操作的数据表名称(真表名)
惯例配置->项目配置->调试配置->分组配置->扩展配置->动态配置 以上是配置文件的加载顺序,因为后面的配置会覆盖之前的同名配置
配置参数不区分大小写(因为无论大小写定义都会转换成小写) 需要注意的是,二级参数配置区分大小写,也就说读取确保和定义一致。
注意在地址栏中输入控制名的时候的大小写 , 要和文件名的大小写一致.
用于给当前数据表定义别名
字符串、数组和对象 字符串和数组
字符串
用于新增或者更新数据之前的数据对象赋值 数组和对象
field
order limit
用于定义要查询的字段(2参为字段排除) 字符串和数组
用于对结果排序 用于限制查询结果数量 字符串和数组 字符串和数字
page
group having
用于查询分页(内部会转换成limit)
真是麻烦, 把文件名命名规则直接改成全小写, 不就行了, ?还用得着这么麻烦么 想出英文字母区分大小写的人, 真是脑袋被驴踢了.
获得超全局变量 $this -> _get( 名字, 过滤器 ); 这个方法的好处是能过滤数据
分区 学习PHP 的第 4 页
这个方法的好处是能过滤数据 过滤器不写, 会使用 DEFAULT_FILTER 过滤器为false, 不过滤.
2. 'USER' => 'user', //用户配置 3. 'DB' => 'db', //数据库配置 4. ), //加载扩展配置文件 C('ER_AUTH_ID');
单字母大写方法:
A($p) <==> new ($p . Action) ()
B C D
F G
执行行为, 具体意思是? Config 快速实例化自定义模型, 第一参数是表名, 第二参数是 类后缀名, 默认为Model
配置目录 (Conf) Action目录
分组(以Home和Admin分组为例)
不分组
Common/common.php Home分组:Common/Home/function.php Admin分组:Common/Admin/function.php 公共文件:Common/common.php
Home分组:Conf/Home/config.php Admin分组:Conf/Admin/config.php 公共配置:Conf/config.php Home分组:Lib/Action/Home/ Admin分组:Lib/Action/Admin/ 公共Action:Lib/Action/ Conf/config.php
static public function __callStatic( $name, $args ) { if ( isset( self :: $callStaticMap [ $name ] ) ) { $object = new self :: $callStaticMap[ $name ]; call_user_func_array( $object, $args ); } } }
布尔值 支持多个参数
字符串
relation 用于关联查询(需要关联模型支持)
真是他喵的没事找事, 人家Java系统本身就是用点来分隔各个包的, 一味的模仿有毛用啊, 不知道结合实际. PHP决定用\来分割命名空间, 为什么不用这个来做导入类的分割符?
分区 学习PHP 的第 2 页
导入第三方类库 vendor( '类路径.路径. ... .类名' ) 实际上还是调用import了, 不过是把第二个参数如果是空的话 替换成VENDOR常量的值
Home分组:Tpl/Home/theme/ 模板目录 Tpl theme ( 以 主题为例) Admin分组:Tpl/Admin/theme/ 运行时目录(Runtime) Home分组:Runtime/Home/ Admin分组:Runtime/Admin/
分区 学习PHP 的第 3 页
伪静态后缀 如果URL_HTML_SUFFIX为空, 那么任何后缀都可以使用, 如果配置了URL_HTML_SUFFIX的值, 那么只能使用这些配置的值. 'URL_HTML_SUFFIX'=>'(shtml|html|xml)'
Lib/Action/
Lib/Model/ Model 目录 此目录也可以分组, 分组以后, 优先使用分组目录中的类. 语言包目录 (Lang 以zh-cn为例)
Lib/Model/
Lang/zh-cn/common.php Home分组:Lang/zh-cn/Home/lang.php Admin分组:Lang/zh-cn/Admin/lang.php 公共语言包:Lang/zh-cn/common.php Tpl/theme/ Runtime/
相关主题