专栏首页程序员的碎碎念ThinkPHP基础知识(一)

ThinkPHP基础知识(一)

TP是一个很好用,很好学的php框架,拥有了它,你开发的效率会挺高很多。

你可以在ThinkPHP官网上下载最新的版本,现在是ThinkPHP5,然而我现在学的是3.2.3,不过没关系,知识应该都差不多吧。

下载完了之后,打开你可以看到这些文件:

在你的php开发环境里创建一个文件APP,(我用的是wampserver64的集成环境,也可以是phpstudy,)把上面文件复制进去。

在网站上输入:http://localhost/APP/index.php,如果显示下方这样,那你的tp就安装成功了。

当你安装成功后,你是不是就开始懵逼那些项目文件是什么意思了?别急,现在我就来说这个了。

Application ------应用目录

Public ------资源文件目录

ThinkPHP ------框架目录

.htaccess ------Apache配置文件

compose.json------Composer配置文件

index.php ------入口文件

README.md-----Readme文件


Home模块:(前台)

Common:模块函数公共目录(一些公共的文件,css,js等等)

Conf:模块配置文件目录

Controller:模块控制器目录(MVC中的C,里面放着一些类、方法,可以理解为漂亮跑车的引擎)

Model:模块模型目录(MVC中的M,用于存储数据的组件,可以理解为漂亮跑车的基本外壳、方向盘等等)

View:模块视图文件目录(MVC中的C,视图界面,可以理解为汽车漂亮的各种装饰,外观好看等等)

index.html:目录安全文件(避免直接可以在浏览器输入URL地址就可以查看目录,起到安全保护目录的作用)


Admin模块(后台):同上类似

这文件目录里边还有一些文件,具体的我就不细细说了,你可以看开发文档哦,那里有详细的解释:

那ThinkPHP是怎么工作的呢?

ThinkPHP系统流程如下:

1、用户URL请求:在浏览器输入网址

2、调用应用入口文件:就是根目录下的index.php

3、载入框架入口文件:就是ThinkPHP.php,路径是APP/ThinkPHP/ThinkPHP.php

4、加载ThinkPHP框架内部:具体加载内容可参看开发文档手册

5、获取请求的模块信息

6、获取当前控制器和操作,以及URL参数

7、根据请求执行控制器方法

8、如果控制器中调用display或者show方法,则说明有模板渲染

9、获取模板内容

10、自动识别当前主题状态以及定位模板文件

当你在浏览器中输入:“http://localhost/APP/index.php/Home/Index/index”,系统获取到请求的模板是Home,当前控制器是Index,控制方法是index,然后会执行这个方法,如果有模板渲染的话,就获取模板内容。

更多内容,期待下期!

(原文写于2017.8.5)

本文分享自微信公众号 - 程序员的碎碎念(gh_53e607dd4782),作者:benny

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-08-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ThinkPHP page分页类的学习

    实例化数据对象 1.$user=M('user'); 查询总记录数 $count = $user->count();//直接读取数据表中条项总数 ...

    benny
  • ThinkPHP基础知识(三)

    TP调试模式: 入口文件index.php中: define('APP_DEBUG',true); //默认为false,表示关闭...

    benny
  • docker搭建LNMP环境(php-fpm)

    18年刚出来实习的时候就搭建过lnmp开发环境,教程为docker 搭建LAMP开发环境,拉的是一个集成的lnmp环境,今天使用mysql、nginx、php的...

    benny
  • Python文件读写保存操作

    上面的代码其实没啥要介绍的,就是一个for循环然后逻辑和单个文件读操作一样,只是多了个写操作。

    用户3539187
  • 常用模块、面向对象、装饰器、异常处理和git 常用模块时间模块面向对象装饰器异常处理git

    zhang_derek
  • 这或许是对小白最友好的python入门了吧——21,导入模块

    前边我们提到了定义函数,我们也说过了,定义函数可以让下边引用函数更加方便,“下边”可能还和我们定义函数的代码不在一个文件中,这个时候我们就需要导入函数了。 我们...

    用户1315847
  • 【答疑解惑】http的get和post的区别?

    问题1:http的get和post的区别?啥时该用get,啥时该用post? Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,PO...

    程序员互动联盟
  • 数字营销新时代,看粤财汇如何演绎不一样的互金营销

    论金融品牌的营销方式,最常见的莫过于传统硬广、TVC投放,又或者是以各种行业会议亮相。不少互联网金融平台的营销传播看似声势浩大却不一定接地气。

    曾响铃
  • nginx开启stub_status模块配置方法

    nginx中的stub_status模块主要用于查看Nginx的一些状态信息. 本模块默认没有安装,需要编译安装。nginx开启stub_status模块配置方...

    拓荒者
  • 让/etc/profile文件修改后立即生效

    让/etc/profile文件修改后立即生效 方法1: 让/etc/profile文件修改后立即生效 ,可以使用如下命令:  # .  /etc/profile...

    Ryan-Miao

扫码关注云+社区

领取腾讯云代金券