对国人开发的这款PHP框架早有耳闻,今日就来趟趟水,也为了今后更好的学习。
准备
ThinkPHP下载
由于我这里的PHP的版本较低,为PHP5.2.8版本的,所以对于高版本的Tp是不支持的,为了减少工作量,咱干脆下载一个tp版本较低点的吧。
Eclipse-for-php
前段时间,刚刚接触PHP的时候由于不了解,所以用的是DreamWeaver,不得不说里面有很多对于前端开发而言比较实用的技巧,但是代码提示做的真的不给力,所以调试代码的时候,内心几乎是崩溃的。
后来觉得SublimeText还不错,代码高亮做的很不赖,唯一的缺点就是<?php
这样一个骨灰级的标签的高亮是白色的,虽然可以进行自定义的拓展,但还是显得很单薄。对于调试尤其如此。
最后在选择合适的IDE环境的时候,也是陷入了纠结,到底是用更专业的PhpStorm呢?还是用更顺手的Eclipse呢?最后由于PhpStorm的收费问题,果断选择了Eclipse。 :(
下面附上该Eclipse的下载地址。
如何使用?
放置位置
下载完的tp解压之后我们会发现里面除了ThinkPHP文件夹,还有其他的几个文件夹,不过我们只需要拷贝ThinkPHP到我们的项目根目录即可。
检验引用效果
我们只需要写一个php文件,对其进行访问即可。如下:
index.php
<?php
// 之所以写这个路径,就是因为index.php和ThinkPHP文件夹位于同一目录下
include ("./ThinkPHP/ThinkPHP.php");
?>
效果
访问网址http://localhost/tplearn/index.php
出现上图的话,说明你的环境已经搭建好了,这时我们回到刚才的index.php所在的目录,就会发现其多了几个文件夹,这就是tp为我们自动生成的方便我们接下来开发的文件夹。
路由
路由,说白了就是根据一个地址访问到我们的数据的一个方式。ThinkPHP中对路由的支持有四种方式。
- 普通模式
http://localhost/tplearn/index.php?m=User&a=login
- 一般模式
http://localhost/tplearn/index.php/User/login
- 伪静态模式
http://localhost/tplearn/User/login
- 兼容模式
http://localhost/tplearn/index.php?s=/User/login
具体的内容网页上有很多,基础的内容这里不再过多的阐述了。
不过我们用的最多的可能就是一般模式。
形如http://localhost/tplearn/index.php/User/login
其底层就是会通过tp自带的请求转发分配下到UserAction.class.php文件中的UserAction的login方法,并实现业务逻辑。
调试之模板的使用
类似于著名的php模板引擎Smarty,ThinkPHP也有属于自己的一套模板,好处神马的不在阐述,也没什么难于理解的地方。
今天要说的就是在不同的模式下使用模板引擎产生的效果。
前提
这次根据前面讲解的路由使用来让tp给客户端发送一张网页,默认咱们没有创建该模板文件。
生产模式
在tp的配置文件中我们看到的APP_DEBUG字段就是来控制调试模式的,但是我们最好是在自己的项目的配置文件中进行指定,否则会导致框架出错。
下面看一个默认的状态的效果。
<?php
// 定义项目的应用目录,许多文件目录将会创建在这里
define("APP_PATH","../");
// 设置开发模式,将默认的生产模式改成调试模式.默认为生产状态,也就是不详细提供错误信息的模式
//define("APP_DEBUG",true);
include ("../../ThinkPHP/ThinkPHP.php");
?>
生产状态下为了安全和更好的用户体验,仅仅给一个友好的错误提示即可。
开发模式
代码中会有错误,这很正常,但是如果错误信息能更好的显示出来,对于我们开发来说,效率真的是再好不过了。
<?php
// 定义项目的应用目录,许多文件目录将会创建在这里
define("APP_PATH","../");
// 设置开发模式,将默认的生产模式改成调试模式
define("APP_DEBUG",true);
include ("../../ThinkPHP/ThinkPHP.php");
?>
开发模式下错误信息更加详细的被展示了出来,我们可以有的放矢的来修正代码中的bug。
添加完相应的路径以及模板文件后
总结
回顾一下,这次的实验中最为重要的地方就在于:
- 一般模式下的路由使用:http://website/index.php/Action/Method
- 开发模式和生产模式的各自特点: APP_DEBUG的define方式和配置文件URL_MODEL的0,1,2,3值的两方式。
- 模板文件的简单使用