G('start');//时间描点start

php代码。。。。

G('end');//时间描点end

echo G('start','end',4).'-----------'; 时间统计
echo G('start','end','m');内存统计

echo parse_name('java php python',1); //1是java编码风格, 0 是c 编码风格

layout渲染(等同于python的装饰器):1方法在配置里开启 'LAYOUT_ON'=>true, 'LAYOUT_NAME'=>'layout'(指定的layout文件 ),2方法动态的在控制器里开启layout(true),就只是这个模板会被渲染。

widget渲染输出:

模块下建立Widget文件夹,创建widget如(TestWidget) 继承Controller  比如有个方法good($name,$age) return 'hello'.$name'.'年龄'.$age;前台调用 {:W('Test/good',array('allen','18'))} ,当然也可以传入变量 如 {:W('Test/good',array('allen',$age))} ,目前觉得这人方法的好处是可以方便页面调用,当然他的方法也可被控制器调用。

错误地址的重定向:

入品文件 必须要关闭app_debug 设为 false

'ERROR_PAGE' =>'index.html',设为这个是时候是把错误的跳到当当前的控制器,如果没有此控制器就会跳到index的控制器

行为设置注意事项(在Home模块下的):

1.在Home建一个Behavior文件夹,新建一个TestBehavior.class.php(没有class调用时找不到行为)必须是run入口

2.在tags.php注册行为:'test'  =>  array('Home\\Behavior\\TestBehavior'),

3.在用的地方调用 tag('test',参数);这个参数可选但必须是先定义了的,大B方法调用的时候传参B('Home\Behavior\Test','',$name)

4.调用内部的行为  B('Behavior\BrowserCheck');这个是防刷新,没有东西输出了

原生php 的一些类

php version >5.5.0  yield 能知道yield的一个功能就是能有效的降低迭代的内存开销(里面所有的中间变量都只使用一个内存$i)。

function xrange($start, $end, $step = 1) {
    for ($i = $start; $i <= $end; $i += $step) {
        yield $i;
    }
}
foreach (xrange(1, 1000000) as $num) {
    echo $num."\n";
}

SplFixedArray 是一个固定的数组长度   例 $new = new \SplFixedArray(2);初始化这个数组 长度是2(这里是在th的框架所以用前面有\)

SplFixedArray::fromArray($new1,false) 方法

//第二参数默认为true的话,保持原索引,如果为false的话,就重组索引;  例 :$arrObj = SplFixedArray::fromArray($new1);

SplFixedArray 这个是返回是一个对象,可以用$arrObj->toArray();方法转回数组

跌代

private  $array = array();
    private  $valid = FALSE;

function __construct($array){
        $this->array =  $array;
    }
      function rewind(){
        $this->valid = ( FALSE !== reset($this->array));
    }
     function  current(){
        return current($this->array);
    }
     function  key(){
        return key($this->array);
    }
     function next(){
        $this->valid = ( FALSE !== next($this->array));
    }
     function valid(){
        return $this->valid;
    }

跌代是一种惰性加载,所以他的性能是比foreach好(foreach 是一次把所有的数据 读入内存,这对于大数据会很消耗内存的),跌代如果能跟之前的yield()结合起来性能应该会很高。

http_build_query 这个魔术方法   $_arr = array('action'=>'show','page'=>'2'); http_build_query($_arr); echo $_arr;  action=show&page=2

thinkphp 杂项(3.2.3)的更多相关文章

  1. thinkphp杂项功能(主干)

    thinkphp杂项功能(主干) 一.总结 1.杂项功能:杂项里面我需要有点印象的是五个:缓存,多语言,图像处理,文件处理,单元测试 二.thinkphp杂项功能(主干) thinkphp扩展杂项功能 ...

  2. Thinkphp框架拓展包使用方式详细介绍--验证码实例(十一)

    原文:Thinkphp框架拓展包使用方式详细介绍--验证码实例(十一) 拓展压缩包的使用方式详细介绍 1:将拓展包解压:ThinkPHP3.1.2_Extend.zip   --> 将其下的 \ ...

  3. 嘶吼CTF2019总结(Web部分题目复现以及部分杂项)

    easy calc 这次的比赛自己一题都没有做出来,赛后看题解的时候很难受,其实有很多东西自己其实是可以做出来的,但是思路被限制了,可能这就是菜吧. 首先web题目就是一个easy calc,emmm ...

  4. 强哥ThinkPHP学习笔记

    TP框架:1.模板引擎2.MVC设计模式3.常用操作类 模板引擎和框架区别1.模板引擎只是框架中用来做php和html分离 MVC设计模式M model 数据模型V view 视图C control ...

  5. 制作类似ThinkPHP框架中的PATHINFO模式功能

    一.PATHINFO功能简述 搞PHP的都知道ThinkPHP是一个免费开源的轻量级PHP框架,虽说轻量但它的功能却很强大.这也是我接触学习的第一个框架.TP框架中的URL默认模式即是PathInfo ...

  6. 在 SAE 上部署 ThinkPHP 5.0 RC4

    缘起 SAE 和其他的平台有些不同,不能在服务器上运行 Composer 来安装各种包,必须把源码都提交上去.一般的做法,可能是直接把源码的所有文件复制到目录中,添加到版本库.不过,这样就失去了与上游 ...

  7. ThinkPHP+Smarty模板中截取包含中英文混合的字符串乱码的解决方案

    好几天没写博客了,其实有好多需要总结的,因为最近一直在忙着做项目,但是困惑了几天的Smarty模板中截取包含中英文混合的字符串乱码的问题,终于解决了,所以记录下来,需要的朋友看一下: 出现乱码的原因: ...

  8. ThinkPHP 模板substr的截取字符串函数

    ThinkPHP 模板substr的截取字符串函数在Common/function.php加上以下代码 /** ** 截取中文字符串 **/ function msubstr($str, $start ...

  9. thinkphp数据的查询和截取

    public function NewsList(){ $this->assign('title','news'); $p = I('page',1); $listRows = 6; $News ...

随机推荐

  1. [MAVEN]一、maven入门之软件的下载及配置到Eclipse中

    1.Maven是什么? maven是Apache.org的一个子项目,他通过一个.pom的文件(xml文件)配置可以下载此项目中需要用到的jar包.文档.源码等.Maven提供了命令行的使用方式,我们 ...

  2. bzoj3343

    3343: 教主的魔法 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 1178  Solved: 527[Submit][Status][Discus ...

  3. BZOJ3505 [Cqoi2014]数三角形

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...

  4. git 代码更新

    第一:先说首次使用 意思就是这个文件夹中的代码你还没有向GITHUB提交过代码 cd /home/test(假如 test就是你的用户名)/githubtest(这是个文件夹,你可以提前先建立好,这个 ...

  5. 看完《Thinking in Java》后,我觉得自己就是一个不懂编程的小孩子,如何快速摆脱这种自卑感

    我虽然不懂java也不懂程序员,但我理解这种心情.当看到自己还算自信的专业领域中一部超越自己水平很多的作品或比自己优秀太多的人,难免会感到震惊,继而进行自我否定.就像我曾经非常喜欢写作,在杂志和校报上 ...

  6. asp.net Literal

    常用于动态向页面添加内容 Panel panel = new Panel(); Literal literal = new Literal(); literal.Text = "<br ...

  7. ArcGIS Server开发教程系列(3)切片

    切片工作,我们可以一级一级的切,也可以,所有的一块切,Recreate All Tiles这项是说,在没有进行任何的切片工作时,可以选用这项:Recreate Empty Tiles这项是说,如果之前 ...

  8. Yii2中如何将Jquery放在head中的方法

    原文地址: https://my.oschina.net/kenblog/blog/547602 方法一(推荐):针对jquery进行components配置,指定Yii2自带jquery自带资源出现 ...

  9. MySql类似Oracle的dual虚拟表

    在mysql里也存在和oracle里类似的dual虚拟表:官方声明纯粹是为了满足select ... from...这一习惯问题,mysql会忽略对该表的引用. 你可千万注意了: select * f ...

  10. 0、Web基本概念

    一.Web的概念: 本意是蜘蛛网和网的意思,在网页设计中我们称为网页的意思. 二.Web的分类:Internet上供外界访问的Web资源分为静态Web资源和动态Web资源两种. 1.静态Web资源:W ...