• 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是访问了LibAction目录下的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:wampwww hinkphpCommonfunctions.php  LINE: 112

    PS:APP_DEBUG要开启。否则无法做到实时,就不会显示出了。

    显示是没办法加载模块的

    然后访问:http://127.0.0.1/index.php/Index/test  Index首字母是大写!然后显示是:

    :(
    模板不存在[./index/Tpl/Index/test.html]
    错误位置
    FILE: D:wampwww hinkphpLibCoreView.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来实现视图效果。

  • 相关阅读:
    文件上传按钮样式定制
    消除2个按钮之间1px细节引起的冲突
    css 实用代码汇总
    除掉inline-block 间距
    SQL Server 创建索引的 5 种方法
    百度API从经纬度坐标到地址的转换服务
    百度地图API简单应用——1.根据地址查询经纬度
    极光API推送 (v3 版本)
    简单快捷地测试 JPush API
    使用极光推送(www.jpush.cn)向安卓手机推送消息【服务端向客户端主送推送】C#语言
  • 原文地址:https://www.cnblogs.com/nul1/p/9432094.html
Copyright © 2020-2023  润新知