• 技术文章 >php框架 >ThinkPHP

    tp 框架开发整理总结

    步履不停步履不停2019-06-23 13:52:48原创1465

    tp3.2文档 //m.sbmmt.com/xiazai/shouce/31

    大写字母的用法

    • A函数用于实例化控制器
    • 格式:[资源://][模块/]控制器 A($name,$layer='',$level='')
      @param string $name 资源地址
      @param string $layer 控制层名称
      @param integer $level 控制器层次
      @return Controller|false

    B执行某个行为 B($name,$tag='',&$params=NULL)

    @param string $name 行为名称
    @param string $tag 标签名称(行为类无需传入)
    @param Mixed $params传入的参数 @return void

    这是随着行为应运而生的新生函数,可以执行某个行为,例如B('app_begin');
    就是在项目开始之前,执行这个行为定义的所有函 数,支持2个参数,第二个参数支持需要接受一个数组

    例如

    B('app_begin',array("name"=>"tdweb","time"=>time()));

    C 读取及设置配置参数C($name=null,$value=null,$default=null)

    @paramstring|array $name 配置变量
    @param mixed $value 配置值
    @param mixed $default 默认值
    @return mixed

    获取值:  

    • 获取所有设置:C(); 不传递任何参数,返回一个包含所有设置的数组。
    • 获取指定配置:C('URL_MODEL') 这样就能得到URL_MODEL的配置信息
    • 获取指定二维数组配置:C("array.name"),这样就返回数组array下的key为name所对应的值

    设置值:

    • 为二维数组赋值C("array.name","value"),原理同上(获取array.name的值),后边的value是值
    • 批量赋值:
      $test=array("URL_MODEL"=>1,"THIN_MODEL"=>true");
      C($test);  这样直接将数组里的值赋值了

      判断是否赋值:

      C("?URL_MODEL")这样前边加个"?",如果已经赋值,则返回true

      需要说明的是,这里虽然更改了配置的值,但是仅仅是这个页面做了更改,到下个页面就不起作用了,
      如果想改就永久更改,那么需要配合F函数,将配置文件写入config.PHP才行。


    D函数用于实例化模型类格式 [资 源://][模块/]模型 D($name='',$layer='')

    @param string $name 资源地址
    @param string $layer 模型层名称
    @return Model

    D函数有2个优点:

    • 一是如果之前实例化过这个Model,那么就不再实例化了,省资源;
    • 二是方便调试,如果不存在 这个Model,会抛出TP异常,非常人性化。
      如果访问本项目的Model直接D("Model名称");就可以了,如果打算跨项目访问,就使用 D("Model名称","项目名称");

    E抛出异常处理 E($msg, $code=0)

    @param string $msg异常消息
    @param integer $code 异常代码默认为0
    @return void

    F快速文件数据读取和保存针对简单类型数据字符串、数组 F($name, $value='',$path=DATA_PATH)

    @param string $name 缓存名称
    @param mixed $value 缓存值
    @param string $path 缓存路径
    @return mixed

    G记录和统计时间(微秒)和内存使用情况

    G($start,$end='',$dec=4)

    使用方法:

    G('begin'); // 记录开始标记位 // ... 区间运行代码
    G('end'); // 记录结束标签位
    echo G('begin','end',6); //统计区间运行时间精确到小数后6位
    echo G('begin','end','m'); // 统计区间内存使用情况 如果end标记位没有定义,则会自动以当前作为标记位

    其中统计内存使用需要 MEMORY_LIMIT_ON 常量为true才有效

    @param string $start 开始标签
    @param string $end 结束标签
    @paraminteger|string $dec小数位或者m
    @return mixed

    I获取输入参数支持过滤和默认值

    I($name,$default='',$filter=null)

    使用方法:

    I('id',0); //获取id参数自动判断get或者post
    I('post.name','','htmlspecialchar s'); //获取$_POST['name']
    I('get.'); //获取$_GET

    L()获取和设置语言定义(不区分大小 写)

    L($name=null,$value=null)
    @paramstring|array $name 语言变量
    @param mixed $value 语言值或者变量
    @return mixed

    语言定义函数,L("intro")获取定义成intro的语言,l("intro","介绍")为intro赋值


    M函数用于实例化一个没有模型文件的Model

    M($name='',$tablePrefix='',$connection='')
    @param string $name Model名称支持指定基础模型例如MongoModel:User
    @param string $tablePrefix表前缀
    @param mixed $connection  数据库连接信息
    @return Model

    N设置和获取统计数据

    N($key,$step=0,$save=false)

    使用方法:

    N('db',1); // 记录数据库操作次数
    N('read',1); // 记录读取次数
    echo N('db'); // 获取当前页面数据库的所有操作次数
    echo N('read'); // 获取当前页面读取次数
    @param string $key 标识位置
    @param integer $step 步进值
    @return mixed

    R远程调用控制器的操作方法 URL 参数格式 [资源://][模块/]控制器/操作

    R($url,$vars=array(),$layer='')
    @param string $url调用地址
    @paramstring|array $vars调用参数支持字符串和数组
    @param string $layer 要调用的控制层名称
    @return mixed

    T获取模版文件格式资源://模块@ 主题/控制器/操作

    T($template='',$layer='')
    @param string $name 模版资源地址
    @param string $layer 视图层(目录)名称
    @return string

    U()URL组装支持不同URL模式

    U($url='',$vars='',$suffix=true,$domain=false)
    @param string $url URL表达式,格式:'[模块/控制器/操作#锚点@域名]?参数1=值1&参数2=值2...'
    @paramstring|array $vars传入的参数,支持数组和字符串
    @param string $suffix 伪静态后缀,默认为true表示获取配置值
    @paramboolean $domain 是否显示域名
    @return string

    使用方法:

    跨项目访问:

    U("appname://Other/otherMethod");

    使用路由访问:

    U("appName://routeName@moduleName/actionName?params");

    另外,如果想直接跳转,那么就在第二个参数写1

    U("/nowMethod",1)

    这样就直接调转到指定URL了


    W渲染输出Widget

    W($name,$data=array())
    @param string $name Widget名称
    @param array $data 传入的参数
    @return void

    S缓存管理

    S($name,$value='',$options=null)
    @param mixed $name 缓存名称,如果为数组表示进行缓存设置
    @param mixed $value 缓存值
    @param mixed $options 缓存参数
    @return mixed

    技术

    防止xss攻击

    简单的防止

    当网站不涉及复杂的用户交互时,可以对用户所有提交的文本进行htmlspecialchars函数处理。

    对COOKIE进行IP绑定

    • cookie的信息一但被别人通过XSS攻击获取后也一样等同于把自己的帐号密码给了别人。
    • 对cookie进行IP绑定,(当然也可以获取用户客户端更多的其它信息进行同时绑定)可以根据用户的IP来判断这个cookie是不是来原始授权用户。

    示例

    • 优点:大多数场景下可使被XSS攻击盗取的cookie失效。
    • 缺点:由于IP存在多台电脑共用的可能,对绑定做不到十分精细

    为COOKIE添加httponly配置

    可以保证cookie只在http请求中被传输,而不被页面中的脚本获取,现市面上绝大多数浏览器已经支持。

    HTML5的新特性:

    <iframe src="http://alibaba.com" sandbox>

    为iframe的增加的sandbox属性,可以防止不信任的Web页面执行某些操作.相信这个方法以后会被广泛使用。

    富文本过滤

    5.0文档

    //m.sbmmt.com/xiazai/shouce/32

    以上就是tp 框架开发整理总结的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:tp 框架
    上一篇:thinkphp如何配置css路径 下一篇:使用 Workman 做一个聊天室
    大前端线上培训班

    相关文章推荐

    • apache http server是什么意思• TP框架和Laravel框架的区别是什么• tp5如何连接sqlserver数据库

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网