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.php顾名思义是文件

第二个index是访问了Lib\Action目录下的index方法

比如换一个:http://127.0.0.1/index.php/index/add

则是访问了index下的add方法。

该案例完整代码如下:

<?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";
}
}

但是倘若我是这样的代码:

<?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代码如下

<html>
<head><title>test</title></head>
<body>
<h1>Con</h1>
</body>
</html>

然后访问:http://127.0.0.1/index.php/Index/test的时候就可以了。

这就是通过$this来实现视图效果。

跟着百度学习php之ThinkPHP的运行流程-2的更多相关文章

  1. 跟着百度学习php之ThinkPHP的运行流程-1

    我在index\Lib\Action\目录下新建了一个ShowAction.class.php文件.ps:该目录是控制器的目录. 然后这个文件中继承了action这个类.代码如下: <?php ...

  2. 跟着百度学习之ThinkPHP的认识/初窥

    MVC全称(Model View Controller) Model:模型(可以理解位数据库操作模型) View:视图(视图显示) Controller:(控制器) 简单的说框架就是一个类的集合.集合 ...

  3. IOS学习笔记1—Iphone程序运行流程

    Iphone程序运行流程 main.m文件,iOS应用程序的主入口 main函数的两个参数为命令行参数,在ios开发中不会用到这些元素,包括这两个参数是为了与标准ANSI C保持一致 UIApplic ...

  4. ThinkPHP的运行流程-2

    Thinkphp为了提高编译的效率,第一次运行的时候thinkphp会把文件全部编译到temp目录下的~runtime.php文件,在第二次运行的时候会直接读取这个文件.所以我们在线下自己写代码测试的 ...

  5. Junit4学习(三)Junit运行流程

    一,验证Junit测试方法的流程 1,在test/com.duo.util右键,新建测试类 2,生成后的代码: package com.duo.util; import static org.juni ...

  6. uboot学习之uboot.bin的运行流程

    上篇博客:http://www.cnblogs.com/yeqluofwupheng/p/7347925.html 讲到uboot-spl的工作流程,接下来简述一下uboot.bin的工作流程,这对应 ...

  7. ThinkPHP的运行流程-1

    我在index\Lib\Action\目录下新建了一个ShowAction.class.php文件.ps:该目录是控制器的目录. 然后这个文件中继承了action这个类.代码如下: 1 2 3 4 5 ...

  8. [原创]java WEB学习笔记70:Struts2 学习之路-- struts2拦截器源码分析,运行流程

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  9. Spark菜鸟学习营Day6 分布式代码运行调试

    Spark菜鸟学习营Day6 分布式代码运行调试 作为代码调试,一般会分成两个部分 语法调试,也就是确定能够运行 结果调试,也就是确定程序逻辑的正确 其实这个都离不开运行,所以我们说一下如何让开发的S ...

随机推荐

  1. Mac下的 /private 是个什么目录?

    Mac下的 /private 是个什么目录? 学习了:https://www.zhihu.com/question/19582264/answer/125522314  有图有真想

  2. XPath查找节点值示例

    下面一个XML文档,需要找到粗体部分文字: <?xml version='1.0' encoding='utf-8'?> <rep sts="OK" a=&quo ...

  3. 截短字符串的函数(JS中适用)

    function cutShort(str){    if(str.length>15){        str=str.substr(0,15)+"...";    }   ...

  4. linux性能监控命令

    vmstat 可以用来监控虚拟内存.可对操作系统的虚拟内存.IO.CPU等多个指标的整体情况进行监视. Linux系统的内存分为物理内存和虚拟内存两种.物理内存是真实的,也就是物理内存条上的内存.而虚 ...

  5. xcode 模拟器,文档,离线安装

    一:xcode上的模拟器,文档,在下载时,通过apple.com下载的速度太慢了,所以我们下载之后,做一下备份,离线安装还原就行了! 二:模拟器安装 目录:/Users/<user name&g ...

  6. 利用html5调用本地摄像头拍照上传图片[转]

    利用html5调用本地摄像头拍照上传图片   html5概念啥的就不废话了,不知道的 百度, 谷歌一堆..今天学了学html5中的Canvas结合新增的<video>标签来获取本地摄像头, ...

  7. 开源微内核seL4

    微内核 越大的系统潜在的bug就越多.所以微内核在降低bug方面非常有优势,seL4是世界上最小的内核之中的一个.可是seL4的性能能够与当今性能最好的微内核相比. 作为微内核,seL4为应用程序提供 ...

  8. 基于swiper的移动端H5页面,丰富的动画效果

    概述 通过运用swiper插件,制作移动端上下整屏滑动的H5页面,用来宣传或者简单注册等,可以嵌套H5音乐或者视频. 详细 代码下载:http://www.demodashi.com/demo/119 ...

  9. 转载:【Linux+windows】PHP5.5安装PHPRedis扩展

    首先,你必须安装了 Redis服务器,然后才能安装php-redis扩展,就像先安装mysql,然后再将php-mysql扩展安装并引入(区别是:php-redis扩展插件php没有自带,php-my ...

  10. storm trident merger

    import java.util.List; import backtype.storm.Config; import backtype.storm.LocalCluster; import back ...