• 准备

    • ThinkPHP下载
    • Eclipse-for-php
  • 如何使用
    • 放置位置
    • 检验引用效果
    • 效果
  • 路由
  • 调试之模板的使用
    • 前提
    • 生产模式
    • 开发模式
    • 添加完相应的路径以及模板文件后
  • 总结

对国人开发的这款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值的两方式。
  • 模板文件的简单使用

ThinkPHP 初探相关推荐

  1. ThinkPHP 多应用模式初探

    还是很久以前用tp3.0开发过项目,之后就再没使用过,现在tp都更新到6了,与之前差距很大,需要重新练习掌握最新的tp框架使用及特性. 目录 1.安装框架 2.安装多应用模式扩展think-multi ...

  2. 微服务研究 - Swoole框架-Swoft初探

    微服务研究 - Swoole框架-Swoft初探.没有swoole之前,php一直被"誉"为世界上最好的语言.swoole横空出世后,php就成了宇宙最好的语言了... swoft ...

  3. Swoole结合Thinkphp发送10万+微信模板消息

    使用Thinkphp5.0框架 服务端: <?php namespace app\Console;use think\console\Command; use think\console\Inp ...

  4. 内网渗透初探(二) | 重新学习内网渗透全过程

    一.前言 前面写了一篇内网渗透初探(一),写的不是特别好,然后也是在学习内网渗透相关的东西,就将其整理了一下,加了自己的思路,写好这篇内网渗透初探(二)- 二.环境介绍 专门做了个拓扑图,首先外网打点 ...

  5. thinkphp的数据库操作(上)

    如果想了解更多相关知识,可以前往我的个人博客看看:eyes++的个人空间 一:连接数据库与模型初探 ThinkPHP 采用内置抽象层将不同的数据库操作进行封装处理,数据抽象层基于 PDO 模式,无须针 ...

  6. 2021年大数据Flink(九):Flink原理初探

    Flink原理初探 Flink角色分工 在实际生产中,Flink 都是以集群在运行,在运行的过程中包含了两类进程. JobManager: 它扮演的是集群管理者的角色,负责调度任务.协调 checkp ...

  7. Laravel和Thinkphp有什么区别,哪个框架好用

    Laravel和Thinkphp这两个php框架对于php程序员都不陌生,新手可能对Thinkphp比较熟,也是国内比较出名的开源框架,更高级的Laravel一般有点经验的才使用. TP框架: Thi ...

  8. ThinkPHP 详细介绍

    ThinkPHP 是一个免费开源的,快速.简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的.ThinkP ...

  9. php语+言教程,写给thinkphp开发者的laravel系列教程(九)打印数据-Fun言

    php这种脚本语言调试起来是很方便的: 大多时候看报错打印一下数据就知道问题所在了: php 内置了常用打印函数 print 和 var_dump : 但是打印出来的样式实在让人目瞪狗呆: think ...

最新文章

  1. Xamarin只言片语系列
  2. 结合typedef更为直观的应用函数指针
  3. rssi室内定位算法原理_三分钟看懂蓝牙室内定位 值得分享
  4. Linux C 的风格
  5. Java面向对象(1)--对象的创建使用类的实例化
  6. python模拟输入回车键_用Python模拟键盘输入
  7. lean软件Android有吗,leanchat-android
  8. Linux基础学习八:mysql主从复制原理以及详细搭建步骤
  9. springboot整合Apollo
  10. win10 Anaconda 安装教程
  11. 运动目标跟踪(十五)--WMIL跟踪
  12. 丢失Android系统库或者Conversion to Dalvik format failed with error 1错误的解决
  13. ionic3 m3u8在线播放工具,在线播放
  14. VisionPro 常用工具介绍
  15. Mac 安装Gradle教程
  16. 怎样压缩ppt的大小?
  17. Word:快速插入水平分隔线(转)
  18. Entrez Direct-入门
  19. 基于Jquery和xml文件来实现省市区3级联查
  20. Linux下修改conda环境下的pip安装目录

热门文章

  1. 零基础学习python笔记
  2. 出身清华姚班,斯坦福博士!她的毕业论文为何成为「爆款」?
  3. js扩展运算符的应用
  4. Hibernate 学习笔记
  5. Android开发实战《手机安全卫士》——7.“高级工具”模块结尾 小火箭动画
  6. 爱立信部署Verizon提供的SD-WAN产品
  7. 用户行为日志-js埋点(一)实现整体流程
  8. python 页面script xpath_python selenium xpath定位操作
  9. 套息交易是如何获利的
  10. 2023中国AIGC应用研究报告 | 附120页报告下载