ThinkPHP框架介绍及应用

article/2025/9/27 20:54:32

一.ThinkPHP介绍

1.1.什么是框架

  PHP框架是许多代码的集合,这些代码是程序结构的代码(并不是业务代码),代码中有许多函数、类、功能类包,框架的代码按照一定标准组成了一个有机的功能体,这个功能体中有许多设计模式如MVC、单例、AR等。

1.2.不使用框架开发中遇到的问题

  1. 代码编写没有统一规范
  2. 程序项目生命周期非常短,不延续
  3. 一个小地方的修改会牵扯到全局变化,牵一发动全身
  4. 不能很好地满足客户各方面的需求

1.3.使用框架的好处

  1. 框架可以帮助我们快速、稳定、高效搭建程序系统
  2. 该系统由于框架的使用使得其维护性、灵活性、适应客户需求方面得到最大化的增强
  3. 使用框架的过程中可以使我们的精力集中在业务层面,而无需关心程序的底层架构
  4. 可以节省很多代码工作量

1.4.相关框架

1.4.1. zendframework

   php语言公司zend发布的官方框架,有许多OOP面向对象内容,功能非常丰富,重量级框架(高级语言、功能丰富)
  重量级:(1)语言级别(高级语言OOP)(2)功能丰富
  轻量级:(2)语言级别(面向过程或有少许OOP)(2)功能相对较少但实用
  
  高级语言:如java,函数对中低级语言代码的封住
  中级语言:如c,是用变量,函数对中低语言代码的封住
 (中低级语言):如汇编语言,比低级语言高级一点的语言,是对二进制代码的封住
  低级语言:二进制代码语言

1.4.2.Yii

  国人自己开发的框架,重量级框架,纯OOP框架,该框架的特点是把代码的重用性发挥到了极致。速度非常快。外企使用最多的框架之一。
  该框架思想来源于symfony、jquery等。
  作者之前是prado框架的核心维护人员,维护该框架3年之久。

1.4.3.cakephp

  cakephp是一个运用了诸如ActiveRecord、Association Data Mapping、Front Controller和MVC等著名设计模式的快速开发框架。该框架的主要目标是让各种层次的PHP开发人员能快速灵活的开发健壮的Web应用。

1.4.4.symfony

  symfony是基于MVC模式的面向对象的PHP5框架

1.4.5.ThinkPHP

  轻量级框架,内部OOP和面向过程代码都存在,是国人自己开发的框架。
  ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。
  ThinkPHP可以支持windows/Unix/Linux等服务器环境,正式版需要PHP5.0以上版本支持,支持MySql、PgSQL、Sqlite多种数据库以及PDO扩展,ThinkPHP框架本身没有什么特别模块要求,具体的应用系统运行环境要求视开发所涉及的模块。
  作为一个整体开发解决方案,ThinkPHP能够解决应用开发中的大多数需要,因为其自身包含了底层架构、兼容处理、基类库、数据库访问层、模板引擎、缓存机制、插件机制、角色认证、表单处理等常用的组件,并且对于跨版本、跨平台和跨数据库移植都比较方便。并且每个组件都是精心设计和完善的,应用开发过程仅仅需要关注业务逻辑。

1.5.框架文件介绍

  解压 ThinkPHP,打开它或导入到项目中去,展开六个文件及文件夹:

  Application --应用程序目录,当程序开发时自动生成,默认为空;Public --公共资源文件目录,存放一些公用的文件,默认为空; ThinkPHP --框架目录,框架的核心架构程序包; README.md --说明文件,可删;.htaccess  --配置文件,一般用于配置伪静态; Index.php --入口文件,所有程序都通过这里访问。

对于 ThinkPHP 框架目录内,也含有大量的目录及文件:

Common  --核心公共函数目录
Conf  --核心配置目录
Lang  --核心语言包目录
Library --框架类库目录|--Think  --核心 Think 类库包目录|--Behavior --行为类库目录 |--Org --Org 类库包目录 |--Vendor --第三方类库目录 |--... --更多类库目录
Mode --框架应用模式目录
Tpl --系统模版目录
LICENSE.txt  --框架授权协议文件
logo.png  --框架 LOGO 文件
README.txt --框架 README 文件
index.php --框架入口文件

ThinkPHP3.2.3完整版
这里写图片描述

Library文件目录
这里写图片描述

Think文件目录
这里写图片描述

二.ThinkPHP应用

新建一个shop文件目录,同级目录下拷贝ThinkPHP文件;创建一个主文件index.php。
index.php

<?php//使用thinkphp框架开发shop商城//引入框架的接口文件
include ("../ThinkPHP/ThinkPHP.php");

  运行该文件,出现欢迎使用页面,说明使用ThinkPHP成功。
  应用第一次访问时,会自动创建一下三个文件目录:
这里写图片描述

三.路由形式

  路由就是系统从URL参数中分析出当前请求的分组、控制器和操作的过程。
  tp框架路由有4种形式:
(1)基本get路径形式
  http://网址/index.php?m=分组&c=控制器&a=操作方法
  该方法是最底层的get形式、传统的参数传递方式,不时尚、不安全。
(2)pathinfo路径形式[默认方式]
  http://网址/index.php/分组/控制器/操作方法
  http://网址/index.php/Home/Index/advert
(3)rewrite重写形式(伪静态技术)省略index.php入口文件
  http://网址/分组/控制器/操作方法
  http://网址/Home/Index/advert
(4)兼容模式
  http://网址/index.php?s=/分组/控制器/操作方法
  

四.创建控制器

UserController.class.php

<?php
//命名空间
namespace Home\Controller;
use Think\Controller;//前台用户控制器
class UserController extends Controller{//登录功能function login(){echo "登录";  }//注册功能function register(){echo "注册";}
}

这里写图片描述

五.view视图模板

这里写图片描述

5.1. 简单模板view调用

 \$this -> display();  //模板名称与当前控制器、当前操作方法的名称一致\$this -> display(模板名称);  //调用当前控制器对应目录指定名称的模板\$this -> display(控制器/模板名称);  //调用其他控制器下的具体模板文件

tp框架两种模式:[默认]生产(线上)、开发(调试)

define("APP_DEBUG",true);//开发(错误提示)
define("APP_DEBUG",false);//生产

入口程序inde.php

<?php
header("content-type:text/html;charset:utf-8");
//使用thinkphp框架开发shop商城//框架两种模式:[默认]生产(线上)、开发(调试)
define("APP_DEBUG",true);//开发(错误提示)
//define("APP_DEBUG",false);//生产//引入框架的接口文件
include ("../ThinkPHP/ThinkPHP.php");

UserController.class.php

<?php
//命名空间
namespace Home\Controller;
use Think\Controller;//前台用户控制器
class UserController extends Controller{//登录功能function login(){//echo "登录";//调用view视图$this -> display();  //展示视图(视图文件名和当前操作方法名一致)$this -> display('register'); //访问其他的模板文件$this -> display("Goods/detail"); //访问其他控制器下的具体模板文件}//注册功能function register(){//echo "注册";$this -> display();  //展示视图(视图文件名和当前操作方法名一致)}
}

  在地址栏输入
http://localhost/php_test/shop_test/shop/index.php/Home/User/login
  出现错误提示
模板不存在:/Applications/MAMP/htdocs/php_test/shop_test/shop/Home/View/User/login.html

根据错误提示创建对应的模板文件
  在view下创建User文件夹,在User文件夹下创建login.html和register.html模板文件。
  在view下创建Goods文件夹,在Goods文件夹下创建detail.html模板文件。
这里写图片描述

控制器和模板的关系
  通常每个控制标志在view目录都会有一个对应控制器标志的目录,里面有具体的模板文件。
  例如:GoodsController.class.php控制在view目录有Goods目录,里面都是Goods控制器对应的模板文件。
  

5.2视图模板与tp框架结合

模板与tp框架结合
1.引入静态代码
2.引入css、image、js
 a)以上3种,浏览器需要发送单独的http请求
 b)引入css时,以User控制器标志作为当前目录,显然不行,通常利用常量把路径给定义好,后期只需维护一个常量即可。

//定义css、img、js常量路径
define("SITE_URL","http://localhost/php_test/");
define("CSS_URL",SITE_URL."shop/public/css/");
define("IMG_URL",SITE_URL."shop/public/img/");
define("JS_URL",SITE_URL."shop/public/js/");

c)在模板中通过常量获得具体的css、img、js等文件信息
3.把css文件本身的图片路径设置正确


http://chatgpt.dhexx.cn/article/inV3Ntg0.shtml

相关文章

thinkPHP框架学习(速成,一天)

一。TP框架介绍与配置 第一个是最开始沿用的一种结构&#xff0c;它有一个致命的缺点&#xff1a;比如说如果后端程序员在编写的过程中&#xff0c;前端程序就不能做修改&#xff0c;一旦修改了&#xff0c;那么肯定会有冲突。 后来大家进行了改进----把前端脱离出来。 再后来…

【代码审计-PHP】基于Thinkphp框架开发的

前言&#xff1a; 介绍&#xff1a; 博主&#xff1a;网络安全领域狂热爱好者&#xff08;承诺在CSDN永久无偿分享文章&#xff09;。 殊荣&#xff1a;CSDN网络安全领域优质创作者&#xff0c;2022年双十一业务安全保卫战-某厂第一名&#xff0c;某厂特邀数字业务安全研究员&…

thinkphp框架的使用

ThinkPhp知识大全&#xff08;非常详细&#xff09; 转载文章&#xff0c;感觉写的非常好 thinkphp.cn thinkphp 3.2版本 【框架项目部署】 部署一个Shop项目&#xff0c;使用tp框架 步骤&#xff1a; 创建入口文件&#xff1a; 1.在ThinkPHP目录下创建一个入口文件index.…

PHP之ThinkPHP框架

一、框架概述 1、什么是框架 框架就是一些代码类、方法&#xff08;函数&#xff09;、变量、常量的集合&#xff0c;这些代码是功能结构性的代码&#xff08;并非业务代码&#xff09;。业务代码其实就是具体的一些模块的增删改查逻辑代码。 使用框架开发项目&#xff0c;有…

ThinkPHP框架之快速入门

一.创建工程tp&#xff0c;目录结构如下: 在工程下导入thinkphp。 在tp中&#xff0c;可以在任何目录下创建入口文件&#xff0c;也可以把项目初始化到任何目录下. index.php: <?php //定义thindphp的路径 define(THINK_PATH, ./ThinkPHP/); //默认值当前目录下的./Thi…

PHP_thinkPHP框架(1)

能够理解并使用composer PHP一个包管工具 解决源码包 依赖问题 ​ 1.7.3 软件升级 composer self-update 能够安装Thinkphp5.1框架 composer create-project --prefer-dist topthink/think[版本号] 目录名称 ​ 安装之前一定要切换国内源&#xff0c;否则成功的概率很小。 …

使用ThinkPHP框架快速开发网站(多图)

使用ThinkPHP框架快速搭建网站 这一周一直忙于做实验室的网站&#xff0c;基本功能算是完成了。比较有收获的是大概了解了ThinkPHP框架。写一些东西留作纪念吧。如果对于同样是Web方面新手的你有一丝丝帮助&#xff0c;那就更好了挖。 以前用PHP做过一个很蹩脚的网站&#xff0…

ThinkPHP框架完全解析一

第一步&#xff1a;搭建应用和框架目录 文件系统结构如上图所示&#xff0c;新建一个名为tp_an的目录作为我们的应用目录。其中&#xff0c;ThinkPHP这个目录&#xff0c;就是thinkphp框架的目录。所有涉及到框架的开发&#xff0c;都会在ThinkPHP中进行。只是为了方便测试&…

Thinkphp框架初始及安装部署

一、框架概述 1、什么是框架 框架就是一些代码类、方法&#xff08;函数&#xff09;、变量、常量的集合&#xff0c;这些代码是功能结构性的代码&#xff08;并非业务代码&#xff09;。业务代码其实就是具体的一些模块的增删改查逻辑代码。 使用框架开发项目&#xff0c;有…

认识thinkphp框架

https://www.thinkphp.cn/down.html 版本5.0.24 ThinkPHP是一个免费开源的&#xff0c;快速、简单的面向对象的轻量级PHP开发框架 tp5 WEB部署目录&#xff08;或者子目录&#xff09; ├─application 应用目录 │ ├─common 公共模块目录&#xff08;可以更改&#xff09; …

【Java教程系列】IDEA快捷键大全。

自动代码 常用的有fori/sout/psvmTab即可生成循环、System.out、main方法等boilerplate样板代码 。 例如要输入for(User user : users)只需输入user.forTab &#xff1b; 再比如&#xff0c;要输入Date birthday user.getBirthday()只需输入user.getBirthday().varTab即可。…

IDEA快捷键大全(超详细!)

4.1、字体设置 file --> settings --> 输入font --> 设置字体样式以及字号大小。 4.2、快速生成main方法 psvm、main 4.3、快速生成System.out.println() sout 4.4、注意&#xff1a;IDEA是自动保存&#xff0c;不需要ctrl s 4.5、删除一行 ctrl y 4.6、怎…

IDEA的实用快捷键大全

目录 1.常规快捷键 1.1通用类 1.2注释类 1.3操作类 1.4展开与关闭 2.智能补全类快捷键 3.程序结构类快捷键 4.统一操作快捷键 1.常规快捷键 1.1通用类 像 Ctrl C 复制&#xff0c; Ctrl V 粘贴&#xff0c; Ctrl S保存文件&#xff0c; Ctrl X剪切&#xff0c;这种…

IDEA快捷键大全 + 动图演示

目录 一、构建/编译二、文本编辑三、光标操作四、文本选择五、代码折叠六、多个插入符号和范围选择七、辅助编码八、上下文导航九、查找操作十、符号导航十一、代码分析十二、运行和调试十三、代码重构十四、全局 CVS 操作十五、差异查看器十六、工具窗口 一、构建/编译 Ctrl …

Idea快捷键大全(Windows)/Intellij IDEA常用快捷键介绍 Intellij IDEA快捷键大全汇总

Ctrl 快捷键 介绍 Ctrl F 在当前文件进行文本查找 &#xff08;必备&#xff09; Ctrl R 在当前文件进行文本替换 &#xff08;必备&#xff09; Ctrl Z 撤销 &#xff08;必备&#xff09; Ctrl Y 删除光标所在行 或 删除选中的行 &#xff08;必备&#x…

python 相关性检验怎么计算p值_挖掘数据内部联系:相关性分析

相关性表示的是两个观测的数据向量之间的变化关系。一般来讲研究对象(样品或处理组)之间使用距离分析,而元素(物种或环境因子)之间进行相关性分析。两个变量之间的相关性可以用简单相关系数(例如皮尔森相关系数等)进行表示,相关系数越接近1,两个元素相关性越大,相关系数越接…

python 相关性检验怎么计算p值_数据分析---用Python进行相关性分析(兼谈假设检验)...

一、相关关系和相关系数 世上除了因果关系,还有相关关系。 有一个叫“相关系数”的指标来量化两个事物之间的相关程度。 其中相关系数用“r”表示,取值范围介于-1和1之间。 当(X,Y)正相关的时候,r=1;当(X,Y)负相关的时候,r=-1;当(X,Y)不相关的时候,r=0。 当然一般的线性…

python 相关性检验怎么计算p值_机器学习:数据的准备和探索——数据假设检验...

图 | 源网络 文 | 5号程序员 数据假设检验是数理统计学中根据一定假设条件由样本推断总体的一种方法。 那我们啥时候会用到假设检验呢? 大多数情况下,我们无法分辨事物的真伪或者某种说法是否正确,这时就需要进行假设,然后对我们的假设进行检验。 比如,我们想知道被告人是…

R语言笔记十一:相关性分析函数及相关性检验函数

1.相关性分析 相关性分析是指对两个或多个具备相关性的变量元素进行分析&#xff0c;从而衡量两个变量因素的相关密切程度。相关性的元素之间需要存在一定的联系或者概率才可以进行相关性分析。简单来说就是变量之间是否有关系。 相关性可能是正相关&#xff0c;…

数据特征分析之 python相关性检验(转载学习)

数据特征分析技能—— 相关性检验 相关性分析是指对两个或多个具备相关性的变量元素进行分析&#xff0c;从而衡量两个变量因素的相关密切程度 一般常用四种方法&#xff1a; - 画图判断 - pearson&#xff08;皮尔逊&#xff09;相关系数 - sperman&#xff08;斯皮尔曼&a…