快速入门ThinkPHP框架—理论篇

488 查看

课程地址:http://www.imooc.com/video/5170

ThinkPHP、及MVC 简介

ThinkPHP 基于MVC思想的PHP框架,特点:国产、开源、面向对象(属于单一入口框架类:zend、CodeIgniter、cakephp等)

框架含义:是程序结构代码的集合,包含:类、函数、功能类包。而不是业务逻辑代码。

MVC 是一种设计模式,它强制使应用程序的输入、处理、和输出分开。分为
···模型(Model) 处理数据和业务逻辑
···视图(View) 通过布局向用户展示数据
···控制器(Controller) 接收用户的请求,并调用相应的模型
处理各自任务

TP的运行流程

1···加载ThinkPHP.php文件
2···加载核心文件 Lib/Core/的文件
3···加载项目的文件 分析Url 调用相关的控制器

TP的URL模式

'URL MODEL'=>'1' 默认模式 pathinfo模式
http://localhost:8585/PHP/phpStudy/ThinkPHP01/index.php/Index/index/id/456465456.shtml
'URL MODEL'=>'0' 普通模式
http://localhost:8585/PHP/phpStudy/ThinkPHP01/index.php?m=Index&a=index&id=456465456
'URL MODEL'=>'2' 重写模式
http://localhost:8585/PHP/phpStudy/ThinkPHP01/Index/index/id/456465456.shtml
注:apache默认不支持重写URL模式,需要打开httpd.conf中的‘mod_rewrite.so’,并且改AllowOverride None为all(复制一份改,关闭原来)然后在index.php(入口文件)同级目录新建【.htaccess】文件(apache的规则文件})。文件代码:
<Ifmodule mod_rewrite.c>
RewriteEngine on 开启重写引擎
RewriteCond %{REQUEST_FILENAME} !-d 开启重写的条件
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</Ifmodule>
'URL MODEL'=>'2' 兼容模式
http://localhost:8585/PHP/phpStudy/ThinkPHP01/index.php?s=/Index/index/id/456465456.shtml

【调试模式】

TP项目开发中 要开启调试模式,因为不开启的话,项目在运行时会在Runtime文件夹下生成缓存,在下次刷新页面的时候,就不会从新加载配置文件。相反在项目上线的时候关闭调试,则不用每次运行都加载配置文件,从而减小服务器的压力,提高运行速度。

【配置项取值】

C('配至项名称'); C方法就是Config的缩写,就是用来提取配置文件的配置参数值。

【建立自定义函数库】

小知识】函数上方用/@param,@param,@return/可以对函数参数进行注解
自定义在项目Common文件夹下建立common.php文件

【自定义配置文件】

在项目文件新建phpFile;return array('配置名'=>'配置值');在系统配置文件中设置 'LOAD_EXT_CONFIG'=>'自定义配置文件名(不带后缀)'。即可加载自定义配置文件。 尽量不使用自定义配置文件,因为不受调试模式控制而被频繁访问。

【TP的伪静态】

在项目配置文件中,配置 'URL_HTML_SUFFIX'=>'html | shtnl | xml | htm',后面的后缀名用 “ | ” 隔开,可以无限添加。一般只设置常见的几个后缀。

【更改url的分隔符】

在项目配置文件中,配置 'URL_PATHINFO_DEPR'=>'符号'。效果如下:http://localhost:8585/PHP/phpStudy/ThinkPHP01/index.php/Index-user-data-123.shtml

【ThinkPHP框架的模板技术】

【模版文件的位置及命名】

模版放在tpl文件夹,在tpl里面新建(模块名)文件夹,例如IndexAction模块的模版文件夹就是Index,模版文件也叫index.html

【模版的赋值和输出】

【单一赋值--->控制器中index方法中写$this->'变量名'='变量值';
【连续赋值--->控制器中index方法中写$this->assign('变量名','变量值');
【显示模版--->在控制中index方法中写$this->dispaly([模版路径(tpl下的路径)]);
【在模版绑定数据--->在html模版中写php标包围的“php代码”或者“{$变量名}”

【TP模版引擎·特点】

ThinkPHP内置一个基于XML的模版引擎,支持直接php代码书写,文件的包含,多级的标签循环,一次编译多次运行。

【ThinkPHP模板引擎之变量输出和运算】