关闭

ThinkPHP 初探

标签: thinkphpphp框架路由调试技巧
6038人阅读 评论(1) 收藏 举报
分类:

对国人开发的这款PHP框架早有耳闻,今日就来趟趟水,也为了今后更好的学习。


准备

ThinkPHP下载

由于我这里的PHP的版本较低,为PHP5.2.8版本的,所以对于高版本的Tp是不支持的,为了减少工作量,咱干脆下载一个tp版本较低点的吧。

ThinkPHP3.1.3版本完整版

Eclipse-for-php

前段时间,刚刚接触PHP的时候由于不了解,所以用的是DreamWeaver,不得不说里面有很多对于前端开发而言比较实用的技巧,但是代码提示做的真的不给力,所以调试代码的时候,内心几乎是崩溃的。

后来觉得SublimeText还不错,代码高亮做的很不赖,唯一的缺点就是<?php这样一个骨灰级的标签的高亮是白色的,虽然可以进行自定义的拓展,但还是显得很单薄。对于调试尤其如此。

最后在选择合适的IDE环境的时候,也是陷入了纠结,到底是用更专业的PhpStorm呢?还是用更顺手的Eclipse呢?最后由于PhpStorm的收费问题,果断选择了Eclipse。 :(

下面附上该Eclipse的下载地址。

Eclipse-for-php-neon下载地址

如何使用?

放置位置

下载完的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值的两方式。
  • 模板文件的简单使用
3
1
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

用ThinkPHP框架写程序还原或搬家

第一步:修改连接数据库文件 路径:Application\Common\Conf   config.php
  • haibo0668
  • haibo0668
  • 2017-06-23 16:09
  • 251

thinkphp中的时间戳,获取完整URL,

一,PHP时间戳函数获取指定日期的unix时间戳 strtotime(”2009-1-22″) 示例如下: echo strtotime(”2009-1-22″) 结果:1232553600 说明:返回2009年1月22日0点0分0秒时间戳 二,PHP时间戳函数获取英文文本日期时间 示例如下:...
  • freemindhack
  • freemindhack
  • 2014-05-30 01:11
  • 1432

ThinkPHP学习之windows下安装并运行Hello World

1.在php的wwwm 将thinkPHP完整包解压到
  • victortony
  • victortony
  • 2014-07-29 14:43
  • 899

ThinkPHP使用步骤

ThinkPHP是一个框架:MVC(采用面向对象思想)框架 市面上常用的框架: zend framework   yii    thinkPHP ThinkPHP:  有完善的中文资料,使用相对来说比较多   1....
  • whjwhja6
  • whjwhja6
  • 2013-05-09 21:37
  • 10240

THINKPHP框架的优秀开源系统推荐

众所周知,国内众多优秀的开源框架, ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,众多的典型案例确保可以稳定用于商业以及门户级的开发。在think...
  • maysh2008
  • maysh2008
  • 2015-06-11 12:59
  • 2522

如何安装ThinkPHP框架

第一步: 登录官网http://www.thinkphp.cn/http:// 下载完整包         第二步:配置php运行的环境,下载warmserver软件 第三步:打开运行环境,...
  • star_mei
  • star_mei
  • 2016-09-13 15:45
  • 2425

ThinkPHP 解析访问路径的坑

首先我得检讨:因为我的懒惰以及命名的不规范,踩到这个坑。 对于特殊需求你得单独想一个独特的命名而不能乱起名字。 使用 AJAX 以 POST 方式提交参数 a : “10001” 到 http://localhost/market/index.php/home/resource/searchG...
  • Peter_Zhao_Feng
  • Peter_Zhao_Feng
  • 2015-08-26 13:48
  • 998

ThinkPHP中数据库CRUD操作方法盘点(limit、page、table、order、data方法)

limit方法 limit方法也是模型类的连贯操作方法之一,主要用于指定查询和操作的数量,特别在分页查询的时候使用较多。ThinkPHP的limit方法可以兼容所有的数据库驱动类的。 用法 限制结果数量 例如获取满足要求的10个用户,如下调用即可:$User = M('User...
  • helencoder
  • helencoder
  • 2015-11-01 12:31
  • 1234

thinkphp框架中的(大)文件上传

最近在学习PHP,首次用其实现文件上传,特此记录
  • xue251248603
  • xue251248603
  • 2014-08-07 09:58
  • 1179

ThinkPHP学习心得

ThinkPHP版本:3.3.2 1、应用目录下的入口文件,在使用URL的时候必须有,除非部署的时候被简化,比如应用www/office/,下入口文件叫index.php,则在未简化部署的情况下,访问自定义控制器Application/Controller/HelloController.clas...
  • blwinner
  • blwinner
  • 2016-10-17 09:18
  • 588
    个人资料
    • 访问:3178386次
    • 积分:34449
    • 等级:
    • 排名:第153名
    • 原创:353篇
    • 转载:35篇
    • 译文:9篇
    • 评论:707条
    友情链接
    我的偶像
    个人主页
      GitHub
    放松一下
    博客专栏
    最新评论
    版权信息
    去除本页广告
    图片炸弹装填中...

        
    [img=赞一个]http://bpic.588ku.com/element_origin_min_pic/16/12/12/0d96da96cf36505736c09d63832eaac8.jpg[/img]