thinkphp学习笔记.docx
- 文档编号:915272
- 上传时间:2022-10-13
- 格式:DOCX
- 页数:37
- 大小:2.47MB
thinkphp学习笔记.docx
《thinkphp学习笔记.docx》由会员分享,可在线阅读,更多相关《thinkphp学习笔记.docx(37页珍藏版)》请在冰豆网上搜索。
thinkphp学习笔记
一、框架文件介绍
二、创建应用
1.在项目目录创建入口文件
2.创建虚拟主机,访问应用
三、路由形式
1.什么是路由
答:
系统从URl参数中分析出当前请求分组、控制器和操作的过程就是“路由”。
2.Tp框架路由共有4种形式
①基本get形式
http:
//网址/index.php?
m=分组&c=控制器&a=操作方法
该方式是最底层的get形式、传统的参数传递方式,不时尚、不安全。
②pathinfo路径形式[默认方式]
http:
//网址/index.php/分组/控制器/操作方法
http:
//网址/index.php/Home/Index/advert
③rewrite重写形式(伪静态技术)省略index.php入口文件
http:
//网址/分组/控制器/操作方法
http:
//网址/Home/Index/index
④兼容形式
http:
//网址/index.php?
s=/分组/控制器/操作方法
http:
//网址/index.php?
s=/Home/Index/advert
以上四种形式除了第③种,其他的url模式都可以使用
4、创建控制器
5、View视图模板
1.简单模板view调用
$this->display();//模板名称与当前控制器、当前操作方法的名称一致
$this->display(模板名称);//调用当前控制器对应目录指定名称的模板
$this->display(控制器/模板名称);//调用其他控制器下的具体模板文件
Tp框架有两种模式:
开发(调式)、生产【默认】
生产模式:
错误提示模糊
开发模式:
错误提示友好
define(‘APP_DUBUG’,true);//开发
define(‘APP_DUBUG’,false);//生产
2.已有模板与tp框架做结合
具体实现步骤:
A.复制模板文件到View指定目录
B.复制css、img、js静态文件到系统指定目录
C.把静态资源(css、img、js)文件的路径设置为“常量”信息(在index入口文件设置)
D.在模板文件中通过常量引入静态资源(css、img、js)文件,路径相对入口文件设置
最好设置绝对地址(相对工作站点虚拟主机目录的绝对地址)
为了后期模板维护方便,通过常量设置静态资源文件访问目录地址
E.css文件本身的图片设置,其路径相对css文件本身设置
后续a、d重复实现即可
2.1静态资源文件引入
2.2静态资源文件存放
①通过独立路由可以访问
②不要暴露太多目录信息
在模板index.html里边引入css文件,相对地址为什么相对index.php入口文件设置?
Index.php+Controller控制器+模板文件==混编文件引入css文件
2.3css文件引入图片
路径设置绝对、相对地址:
一个文件引入另一个文件,另一个文件的相对地址就相对引入文件设置。
Index.php----------------------------------->style.css
Style.css----------->引入------------->img图片,图片地址相对style.css文件设置
原因:
style.css是向服务器发送一个独立的http请求的,因此style.css和img图片是一个单位的信息,与具体index.php文件没有任何关系。
模板文件中引入css样式文件
引用路径问题:
【相对】、【绝对】
相对路径:
相对入口文件index.php设置
绝对路径:
从虚拟主机站点目录开始设置的
Css样式文件引入图片,路径的设置
绝对、【相对】
相对地址:
相对css文件本身设置
①模板文件引入css样式文件
(css的相对路径可以相对index.php入口文件设置)
Index.php+Controller控制器+模板文件==混编文件引入css文件
②css样式文件引入css样式文件引入img图片
Index.html------>css样式--------->img图片
(图片的相对路径是css文件本身)
Css样式文件被浏览器发送一个独立请求,因此内部img只于css文件有关系,与其他文件没有关系
文件被谁引入的,其相对地址就相对引入文件设置
2.4在入口文件处设置常量引入静态资源文件
六、后台页面搭建
1.分组设置
分组:
同一个项目里边,由于业务规则的划分,有多个相关的功能模块,它们都有独立的控制器、view视图、配置文件、函数库文件等文件,为了开发维护方便,就给它们创建独立的分组出来,每个分组都有自己的控制器、view视图、配置文件、函数库文件。
如果还有其他的业务规则模块,也都是独立的,可以继续创建分组。
对分组进行访问:
http:
//网址/index.php/分组/控制器/操作方法
每个分组下的文件文件目录可以参考Home进行设置,他们都是平等的。
2.搭建Admin后台登录页面
3.后台首页面搭建
Tp框架提供了常量
http:
//网址/index.php/分组/控制器/操作方法/名称/值/名称/值
__MODULE__:
路由地址分组信息(http:
//网址/index.php/分组)
__CONTROLLER__:
路由地址控制器信息(http:
//网址/index.php/分组/控制器)
__ACTION__:
路由地址操作方法信息(http:
//网址/index.php/分组/控制器/操作方法)
__SELF__:
路由地址的全部信息(http:
//网址/index.php/分组/控制器/操作方法/名称/值/名称/值)
MODULE_NAME:
分组名称
CONTROLLER_NAME:
控制器名称
ACTIOIN_NAME:
操作方法名称
4.Frame的src属性值
每个frame的src属性值需要通过独立路由地址访问,给每个src根据__CONTROLLER__常量
设置绝对路径。
5.后台商品相关页面搭建
七、细节处理
1.配置文件介绍
①ThinkPHP/Conf/convention.php系统主要配置文件
②shop/Common/Conf/config.php当前shop项目的配置文件
③shop/Home/Conf/config.php当前shop项目Home分组的配置文件
以上三个配置文件,如果存在同名的配置变量,后者会覆盖前者。
系统里边并不是全部的配置变量都有有convention.php里边定义
A.大部份在convention.php有定义
B.在Behavior行为文件里边有定义一部分(例如:
SHOW_PAGE_TRACE)
C.在框架的代码角落里边有零星的一点配置变量(例如:
MOUDLE_ALLOW_LIST)
2.默认分组设置
3.框架的两种模式
开发和生产模式
入口文件index.php:
define(‘APP_DEBUG’,true);//开发调式模式
define(‘APP_DEBUG’,false);//线上生产模式【默认】
开发模式(调式模式):
每次请求会加载每个应用程序文件,比较耗费资源,错误提示比较友好。
会自动清除common~runtime.php文件,会依次加载每个需要文件
生产模式(线上模式):
该模式比较节省资源,会把请求过程中的一些通用程序文件给“编译”到一个文件里边(shop/Runtime/common~runtime.php),这样系统的每次请求加载的文件数目就比较少(节省了许多文件打开、关闭的开销)
错误信息模糊,不方便调式
4.开启Smarty模板引擎
5.smarty模板{}标记有冲突
{}与css或js有冲突解决:
①在{}与内容中间设置空格
②使得{}左右标记换行
③设置{literal}{/literal}
④变换smarty的标记符号
6.页面底部设置跟踪信息
八、框架的执行流程(了解)
Index.php----->..ThinkPHP/ThinkPHP.php------->Think/Think.class.php-->Think/App.class.php
9、总结
1.创建应用
2.四种路由形式
http:
//网址/index.php?
m=分组&c=控制器&a=操作方法
http:
//网址/index.php/分组/控制器/操作方法默认
http:
//网址/分组/控制器/操作方法
http:
//网址/index.php?
s=分组/控制器/操作方法
3.控制器调用视图模板
$this->display();
$this->display(模板名称);
$this->display(控制器/模板名称);
4.已有模板与框架结合
①复制模板文件到view目录
②复制css/js/img静态资源文件到Public目录下
③给静态资源文件访问的路径设置常量
④在模板文件中通过常量访问静态意资源文件
⑤css文件本身有图片,图片设置为该css文件本身的相对路径访问
⑥
5.创建Admin分组
6.使用系统常量
__CONTROLLER__
__MODULE__
__ACTION__
__SELF__
MODULE_NAME
CONTROLLER_NAME
ACTION_NAME
7.配置文件
ThinkPHP/Conf/convention.php
Shop/Common/conf/config.php
Shop/Home/Conf/config.php
8.两种模式
开发调式模式define(APP_DEBUG,true);
线上生产模式define(APP_DEBUG,false;
9.开启Smarty模板引擎
设置配置变量TMPL_ENGINE_TYPE=====Smarty
10、数据库操作Model模型
1.连接配置数据库
2.创建model模型类
原则上每个数据表都对应一个model模型类
在php.ini中修改
3.两种方式实例化model对象
3.1实例化普通Model对象
$model=new\Model\XXXModel();
除了可以实现简单操作(调用父类Model方法实现)
也可以实现一些复杂操作(调用具体普通model方法实现)
3.2实例化基类Model对象
可以实现对数据库的基本操作
$model=D();
$model=D(‘Goods’);
(该方式允许我们即使不创建具体的model模型类文件,也可以对数据表的数据进行操作)
如果一个数据表没特殊方法要求,就可以通过D(XXX)进行操作。
如果数据表有特殊方法要求(例如用户名和密码判断需要一个特殊方法),就需要在普通model模型类里边定义好,通过new\Model\XXXModel()形式实例化对象,进而操作特殊方法。
11、数据基本操作
1.数据查询操作
调用方法:
model对象->select()
具体使用:
$model->select();//查询并返回数据表的全部记录信息
$model->select(主键id值);//查询主键信息等于条件id值的记录
$model->select(‘id1,id2,i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- thinkphp 学习 笔记