ThinkPHP的运行流程-2
Thinkphp为了提高编译的效率,第一次运行的时候thinkphp会把文件全部编译到temp目录下的~runtime.php文件,在第二次运行的时候会直接读取这个文件。所以我们在线下自己写代码测试的时候如果没有开启了这个调试模式的话,那么就没办法得到及时的反应。所以我们要将其开启。
直接在index.php中添加如下代码即可开启:
Define(‘APP_DEBUG’,TRUE);
访问:http://127.0.0.1/
其实是访问了http://127.0.0.1/index.php/index/index# 第一个index称之为模块,后面的index称之为方法
第一个index.php顾名思义是文件
第二个index是访问了Lib\Action目录下的index方法

比如换一个:http://127.0.0.1/index.php/index/add
则是访问了index下的add方法。

该案例完整代码如下:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<?php// 本类由系统自动生成,仅供测试用途class IndexAction extends Action { public function index(){ echo "劝君珍惜少年时,劝君莫惜金缕衣!"; } public function del(){ echo "this is index of del"; } public function add(){ echo "this is del of add"; }} |
但是倘若我是这样的代码:
|
1
2
3
4
5
6
7
|
<?php// 本类由系统自动生成,仅供测试用途class IndexAction extends Action { public function test(){ echo "我叫:{$_GET['name']},我今年{$_GET['age']}岁。"; }} |
那么该如何访问呢?
答案:http://127.0.0.1/index.php/index/test/name/张三/age/10

依旧以变量然后斜杠然后再是值。所以很多时候sql注入的时候我们需要对那部分是key那部分是value区分清除。
$this->display输出法。
现在将代码换成

然后我们访问的时候就会出现这样的效果:http://127.0.0.1/index.php/Index/test
:(
无法加载模块:test
错误位置
FILE: D:\wamp\www\thinkphp\Common\functions.php LINE: 112
PS:APP_DEBUG要开启。否则无法做到实时,就不会显示出了。
显示是没办法加载模块的
然后访问:http://127.0.0.1/index.php/Index/test Index首字母是大写!然后显示是:
:(
模板不存在[./index/Tpl/Index/test.html]
错误位置
FILE: D:\wamp\www\thinkphp\Lib\Core\View.class.php LINE: 115
这时候就需要用到一个视图的了也就是MVC框架中的View了。
然后访问Tpl目录。下面是没有任何文件夹的,我们建立一个Index文件夹。需要首字母大写!
然后建立一个test.html的html文件,这里的test文件名也就是下图中方法的方法名。也就是说你定义的方法名就是你的文件名。

PS:html代码如下
|
1
2
3
4
5
6
|
<html><head><title>test</title></head><body><h1>Con</h1></body></html> |
然后访问:http://127.0.0.1/index.php/Index/test的时候就可以了。

这就是通过$this来实现视图效果。
ThinkPHP的运行流程-2的更多相关文章
- 跟着百度学习php之ThinkPHP的运行流程-2
Thinkphp为了提高编译的效率,第一次运行的时候thinkphp会把文件全部编译到temp目录下的~runtime.php文件,在第二次运行的时候会直接读取这个文件.所以我们在线下自己写代码测试的 ...
- ThinkPHP的运行流程-1
我在index\Lib\Action\目录下新建了一个ShowAction.class.php文件.ps:该目录是控制器的目录. 然后这个文件中继承了action这个类.代码如下: 1 2 3 4 5 ...
- 跟着百度学习php之ThinkPHP的运行流程-1
我在index\Lib\Action\目录下新建了一个ShowAction.class.php文件.ps:该目录是控制器的目录. 然后这个文件中继承了action这个类.代码如下: <?php ...
- react-native start 运行流程
在CMD下键入 C:\Node_JS\MyAwesomeProject>react-native start 运行流程: C:\Users\Grart\AppData\Roaming\npm\r ...
- 1、CC2541蓝牙4.0芯片中级教程——基于OSAL操作系统的运行流程了解+定时器和串口例程了解
本文根据一周CC2541笔记汇总得来—— 适合概览和知识快速索引—— 全部链接: 中级教程-OSAL操作系统\OSAL操作系统-实验01 OSAL初探 [插入]SourceInsight-工程建立方法 ...
- java里的分支语句--程序运行流程的分类(顺序结构,分支结构,循环结构)
JAVA里面的程序运行流程分三大类: 1,顺序结构:顺序结构就是依次执行每一行代码 2,分支结构:分支结构就是按不同的条件进行分支 3,循环结构:一段代码依条件进行循环执行. 其中,分支结构有两大类: ...
- servlet运行流程
servlet运行流程 (2013-06-19 19:16:43) 转载▼ 首先Servlet被部署到Web容器中,当客户端发送调用这个Servlet的请求到达Web容器时,Web容器会先判 ...
- [原创]java WEB学习笔记70:Struts2 学习之路-- struts2拦截器源码分析,运行流程
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- Struts2框架的运行流程
Struts2的运行流程 1.浏览器发送请求到控制器(如Struts2中的核心控制器StrutsPrepareAndExecuteFilter): 2.控制器调用Action的execute方法: 3 ...
随机推荐
- Git回滚merge操作
执行完merge操作后,没有修改代码 1.命令 ⑴ git reflog 查看merge操作的上一个提交记录的版本号 ⑵ git reset –hard 版本号 这样可以回滚到merge之前的状态 2 ...
- Viewpoint Meta标签
移动web Viewpoint常用得设置方式: [布局viewpoint] = [设备宽度] = [度量viewpoint] <meta name="viewport" co ...
- WCF跨时区自动转换问题
背景:api端 用wcf做的 客户端是silverlight, 服务和消费 不是同一个时区 状况:客户端调用返回对象有个字段是datetime ,返回的时间和数据库相差好几个小时,找了很久,最后把da ...
- python OCR 图形识别
1.pip install pyocr 2.pip install PIL 3.安装tesseract-ocr http://jaist.dl.sourceforge.net/project/tess ...
- 第194天:js---函数对象详解(arguments、length)
一.函数即对象 function add1(a,b){ return a+b; } //Function对象的实例 -- 高级技巧 --- 写框架必须用的... //前面表示参数,后面表示函数语句 v ...
- Selenium遇到问题unknown error:cannot create default profile directory......
1.selenium遇到问题unknown error:cannot create default profile directory...... 2.解决方案 问题1:把驱动放入C:\Windows ...
- 【BZOJ1396】识别子串&【BZOJ2865】字符串识别(后缀自动机)
[BZOJ1396]识别子串&[BZOJ2865]字符串识别(后缀自动机) 题面 自从有了DBZOJ 终于有地方交权限题了 题解 很明显,只出现了一次的串 在\(SAM\)的\(right/e ...
- BZOJ5333 [Sdoi2018]荣誉称号 【差分 + 树形dp】
题目链接 BZOJ5333 题解 看到式子,立即想到二叉树上一个点及其\(k\)个父亲权值和[如果有的话]模\(m\)意义下为\(0\) 考虑如何满足条件 我们假设\(1\)号为第\(0\)层 那么我 ...
- POJ.2299 Ultra-QuickSort (线段树 单点更新 区间求和 逆序对 离散化)
POJ.2299 Ultra-QuickSort (线段树 单点更新 区间求和 逆序对 离散化) 题意分析 前置技能 线段树求逆序对 离散化 线段树求逆序对已经说过了,具体方法请看这里 离散化 有些数 ...
- Zookeeper(一) zookeeper基础使用
一.Zookeeper是什么 (安装的是3.4.7) ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现.它提供了简单原始的功能, ...