ThinkPHP技术集合
来源:互联网 发布:知柏地黄丸哪家好 编辑:程序博客网 时间:2024/06/04 23:25
一.基础篇
1. 四种路由模式
a) get传统模式 网址/index.php?m=分组&c=控制器&a=操作方法
b) pathinfo路径模式 网址/index.php/分组/控制器/操作方法
c) rewrite伪静态重写模式 网址/分组/控制器/操作方法
d) 兼容模式 网址/index.php?s=/分组/控制器/操作方法
2. 控制器调用View视图模板
$this -> display()
$this -> display(模板名称)
$this -> display(控制器/模板名称)
3. 已有模板与tp框架做结合
a) 复制模板文件到View具体目录
b) 复制静态资源(css/img/js)文件到Public目录
c) 在index.php入口文件给静态资源文件设置访问路径常量
d) 在模板中通过常量访问静态资源文件
4. 搭建后台分组
a) Admin/Controller View Public Common Conf
访问分组: http://网址/index.php/分组(Home/Admin)/控制器/操作方法
5. 后台品字首页搭建
IndexController
操作方法:left right head index
frame的src属性值 设置调用具体子页面,src属性值通过绝对路径的路由方式访问具体子页面
相关常量: __MODULE__ __CONTROLLER__ __ACTION__ __SELF__
MODULE_NAME CONTROLLER_NAME ACTION_NAME
Smarty方式使用常量: {$smarty.const.__CONTROLLER__}
6. 三种配置文件
ThinkPHP/conf/convention.php
shop/Common/conf/config.php
shop/Home/Conf/config.php
7. 跟踪日志设置、默认分组设置
跟踪日志: 做配置 ‘SHOW_PAGE_TRACE’ => true
默认分组: 做配置 ‘MODULE_ALLOW_LIST’ => array(‘Home’,’Admin’)
8. 框架两种模式
两种模式:开发调试模式、线上生产模式
define(‘APP_DEBUG’,true/false);
9.
引入Smarty模板引擎及配置
做配置: TMPL_ENGINE_TYPE =“Smarty”
给smarty做配置:TMPL_ENGINE_CONFIG = array(
左标记,
右标记,
)
二. Model模型数据库操作
三.提升篇
1. 实例化model对象的两种方式
new \Model\GoodsModel();
D() / D(数据表标志名字)
2. 数据查询操作
select() select(数字) select(“数字1,数字2,数字3”) //返回二维数组
find() find(数字) //返回一维数组
3. 辅助方法
where() field() limit()
group() order() having()
4. 添加数据
add():数组、AR方式
add()方法返回新记录主键id值
5. 修改数据
save() : 数组、AR方式
注意事项:where条件 和 主键id信息 二选一
6. 删除数据
delete()
delete(数字) delete(“数字1,数字2,数字3.。”)
where()->delete() AR方式:$obj ->字段=值; $obj -> delete();
7. 执行原生sql语句
数据查询: $obj -> query(sql语句) 返回二维数组信息
数据写入(增加、修改、删除):$obj -> execute(sql语句) 返回受影响记录条数
8. 后台实现商品的添加、修改
制作一个操作的form表单
展示表单、收集表单信息都在一个方法实现(if else)
通过create方法实现表单信息收集
商品修改,传递get参数,通过pathinfo方式传递:
http://网址/index.php/分组/控制器/操作方法/名称1/值/名称2/值
function 操作方法($名称1,$名称2){}
9. 表单自动验证
收集数据的时候通过create()方法实现,并且create方法有验证表单数据的功能
在普通Model模型里边实现验证规则的定义
array(字段,验证规则,错误提示,验证条件,附加规则,验证时间)
四.命名空间
namespace命名空间
1. 什么是命名空间
在php程序语言里边,语法规则要求同名称的函数、类名、常量在一个请求里边不允许出现多次。如果有的应用程序(例如tp框架中有smarty、视频方法插件,他们有同名称的多个元素)不得已必须出现多个同名的函数、类名、常量,那么我们就可以把它们放到不同的空间里边做请求。这个不同的空间就称作“命名空间”。
上边右图,把同名称的getInfo()放到不同的空间(banji301和 banji302)里边,在进行程序请求的时候就不会报错
2. 使用命名空间
通过namespace关键字声明命名空间。
namespace 空间名称;
(空间名称 按照php正确的命名方式定义即可)
命名空间针对 函数、类名、const常量 三部分起作用,并统称为“元素”。
常量的声明:
define(名称,值); //(在类外部声明常量)与命名空间没有关系
//同名称常量只能define一次
const 名称=值; //与命名空间有关系
① const可以在类的内部声明常量信息(类常量)
② const也可以在类外部声明常量(正常常量)
使用命名空间的时候const可以放到类外部声明常量。
同名称的多个常量,可以分别定义到不同的“命名空间”里边
const和define的区别:
前者针对命名空间发生影响,后者不发生影响。
const可以声明多个同名称的常量
define对同名称常量只能声明一个
命名空间三种元素声明及访问:
3. 子级(多级)空间
命名空间可以让我们存放许多元素(函数、类、常量),有的时候元素比较多,为了管理方便,可以对元素进行分门别类地存储。也就是说命名空间可以设置为多级空间。多级空间的最后一级空间就称为“子级空间”
多级空间的声明和访问元素:
3.1 空间元素访问的三种形式
① 非限定名称
echo USER; 就近访问上边与其挨着最近空间的USER元素
(类似php引入文件:include“common.php”; 相对路径
引入当前目录下的common.php文件)
② 限定名称
echo softpark\USER; 把当前空间 和softpark空间联合获得USER元素
(类似php引入文件:include“Common/Conf/config.php”; 相对路径)
③ 完全限定名称
echo \beijing\haidian\xisanqi\USER; 访问beijing\haidian\xisanqi空间的USER元素
(类似php引入文件:include“d:/web/1121/Conf/common.php”;绝对路径引入文件)
三种方式访问元素:
限定名称方式“巧合”访问到一个具体元素: