旗下导航:搜·么
当前位置:网站首页 > PHP框架 > ThinkPHP > 正文

tp 框架开辟整顿总结【ThinkPHP教程】

作者:搜搜PHP网发布时间:2019-11-27分类:ThinkPHP浏览:136


导读:tp3.2文档http://www.ki4.cn/xiazai/shouce/31大写字母的用法A函数用于实例化掌握器花样:[资本://]...

tp3.2文档 http://www.ki4.cn/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
  • 疾速保留数据:F("mydata","这里是要保留的数据"),如许就在项目Data目次下保留了一个名叫mydata.php的文件,里边的内容是该函数的第二个参数。
  • 指定保留时候 :F("mydata","这里是要保留的数据","60"),如许,假如下次再接见,距离大于60秒则删除次缓存文件。
  • 指定保留目次:F("mydata","这里是要保留的数据","60",DATA_PATH) ,如许就指定保留在data目次下
  • 马上删除缓存:F("mydata",null),第二个参数通报一个null值,如许就删除了mydate这个缓存
  • 读取缓存数据:F("mydata"),如许就读取这个缓存了

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

运用要领:

  • 获得当前模块的Action地点 :U("/nowMethod");
  • 获得当前模块的Action地点,并通报参数:U("/nowMethod?params=test");
  • (假如不习惯上边那种体式格局,能够运用U("/nowMethod",array("params"=>"test");如许的数组体式格局通报参数,结果是一样的)
  • 接见其他模块的要领:U("Other/otherMethod"),如许就是接见Other模块下的otherMethod要领

跨项目接见:

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
  • 全局缓存读写函数,和C相似,不过是直接写成文件,写在Temp目次下,不过在缓存有一点须要注重,
  • 假如缓存称号是aaa,那末缓存生成的文件称号就是md5("aaa")的值。

手艺

防备xss进击

简朴的防备

当网站不触及庞杂的用户交互时,能够对用户一切提交的文本举行htmlspecialchars函数处置惩罚。

  • 版本为:3.2
  • 步骤:
    • 一:在项目设置文件中增添设置: 'DEFAULT_FILTER' => 'htmlspecialchars', //默许过滤函数
    • 二: 运用框架带的I要领猎取来自用户提交的数据;
  • 例子

    • M('Member')->save(array('content'=>I('post.content')));

对COOKIE举行IP绑定

  • cookie的信息一但被他人经由过程XSS进击猎取后也一样等同于把本身的帐号暗码给了他人。
  • 对cookie举行IP绑定,(固然也能够猎取用户客户端更多的别的信息举行同时绑定)能够依据用户的IP来推断这个cookie是不是是来原始受权用户。

示例

  • 用户设置了自动登录时保留自动登录信息:
    $auto=I('post.auto');//用户设置了自动登录
    if(!empty($auto)){
    cookie('auto',encrypt(serialize($data)));//将登录信息保留到cookie,个中$data里含有加密后的帐号,暗码,和用户的IP,这里的cookie已在全局中设置逾期日期为一周
    }
  • 用户封闭浏览器再次接见网站时,举行自动登录
    if (!is_login()) {//是不是未登录状况?
    $auth=cookie('auto');
        if(!empty($auth)){//是不是未有自动登录cookie?
            $data=unserialize(decrypt($auth));
                if(!empty($data) && !empty($data['username']) && !empty($data['password']) && !empty($data['last_login_ip'])){
                    $user=M('Member')->where(array('username'=>$data['username'],'password'=>$data['password']))->find();
                        if(!empty($user['id'])&&($user['last_login_ip']==get_client_ip())){//cookie帐号暗码是不是有用?//IP泉源是不是雷同?
                            login_session($user['id'], $user['username'], $data['last_login_ip']);//用户自动登录胜利
                        }
                }
        }
    }
  • 长处:大多数场景下可以使被XSS进击偷取的cookie失效。
  • 瑕玷:因为IP存在多台电脑共用的能够,对绑定做不到非常邃密

为COOKIE增添httponly设置

能够保证cookie只在http要求中被传输,而不被页面中的剧本猎取,现市面上绝大多数浏览器已支撑。

HTML5的新特征:

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

为iframe的增添的sandbox属性,能够防备不信任的Web页面实行某些操纵.置信这个要领今后会被普遍运用。

富文本过滤

5.0文档

http://www.ki4.cn/xiazai/shouce/32

以上就是tp 框架开辟整顿总结的细致内容,更多请关注ki4网别的相干文章!

标签:tp框架