tp 框架开发整理总结

tp 框架开发整理总结

tp3.2文档 http://www.php.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或者postI('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

BibiGPT-哔哔终结者 BibiGPT-哔哔终结者

B站视频总结器-一键总结 音视频内容

BibiGPT-哔哔终结者 28 查看详情 BibiGPT-哔哔终结者

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的增加的sandbox属性,可以防止不信任的Web页面执行某些操作.相信这个方法以后会被广泛使用。

富文本过滤

5.0文档 

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/499103.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月8日 19:24:10
下一篇 2025年11月8日 19:27:48

相关推荐

  • 探究最佳响应式布局框架:竞争激烈!

    响应式布局框架大比拼:谁是最佳选择? 随着移动设备的普及和多样化,网页的响应式布局变得越来越重要。为了满足用户的不同设备和屏幕尺寸,在设计和开发网页时采用响应式布局框架是必不可少的。然而,面对众多的框架选择,我们不禁要问:哪个是最佳选择? 以下将对目前比较流行的三种响应式布局框架进行比较评价,它们分…

    2025年12月24日
    000
  • 深入学习响应式布局框架:适合初学者到专家的详尽指南

    响应式布局框架解析:从初学者到专家的必备指南 随着移动设备的普及和多样化,响应式布局成为了现代Web设计的必备技能。响应式布局框架以其简单、灵活和可维护的特点,成为了开发者们的首选工具。然而,对于初学者来说,学习和理解响应式布局框架可能会感到有些困惑。本文将从初学者到专家,为您提供一个详细的指南,帮…

    2025年12月24日
    000
  • 选择最适合您的响应式布局框架:综合评估不同工具

    响应式设计是指网页可以根据不同设备的屏幕尺寸和分辨率进行自适应的布局,以确保在各种设备上都能提供良好的浏览体验。为了方便开发者实现响应式布局,出现了许多优秀的框架和工具。本文将汇总一些主流的响应式布局框架,并提供具体的代码示例,帮助读者选择最适合自己的工具。 Bootstrap(https://ge…

    2025年12月24日 好文分享
    000
  • 探索五种流行的响应式设计框架

    随着移动设备的广泛应用和互联网的普及,响应式布局已经成为了网页设计的重要概念。响应式布局能够根据用户使用的设备(如手机、平板、电脑等)不同的屏幕尺寸和分辨率,自动适应调整网页的布局和样式,提供更好的用户体验。 为了快速实现响应式布局,开发者可以使用现成的响应式布局框架。这些框架提供了一系列的CSS和…

    2025年12月24日
    000
  • 了解Ajax框架:探索常见的五种框架

    了解Ajax框架:探索常见的五种框架,需要具体代码示例 引言:在现代Web应用开发中,Ajax是必不可少的技术之一。它以其支持异步数据交互,提升用户体验等特点,成为了前端开发中不可或缺的一部分。为了更好地了解和掌握Ajax框架,本文将介绍五种常见的Ajax框架,并提供具体的代码示例,帮助读者深入了解…

    2025年12月24日
    000
  • 解析网页设计中CSS框架和排版的作用与优点

    在如今的网页设计领域,排版和CSS框架扮演着至关重要的角色。而在这种快节奏的工作中,更快速、更高效地完成任务显得尤为关键,这就是排版和CSS框架的优势所在。本文将会探讨如何使用这些工具来优化网页设计,同时提供一些实际的代码篇例,以便读者更好地理解。 一、CSS框架的作用和优势 CSS框架是为了能够更…

    2025年12月24日
    000
  • 揭开提高手机网页开发效率的秘密武器:了解手机CSS框架的全貌

    在如今移动互联网盛行的时代,手机网页开发已经成为一项必要的技能。相比于传统PC端网页,手机网页的开发要面临更多的挑战和限制。因此,使用一些高效的开发工具和技巧可以大大提高开发效率和质量。其中之一就是手机CSS框架。本文将介绍手机CSS框架的基本概念、常用的手机CSS框架以及具体代码示例,希望能对大家…

    2025年12月24日
    000
  • 常见的css框架有哪些

    常见css框架:1、Bootstrap框架;2、Foundation框架,一个专业的前端框架;3、Pure框架,优点是渲染快;4、Skeleton框架;5、99lime HTML KickStart框架,适合网站快速开发;6、Kube框架。 本教程操作环境:windows7系统、CSS3版、Dell…

    2025年12月24日 好文分享
    000
  • 15 个优秀的响应式 Web 设计 HTML 和 CSS 框架

    【推荐教程:CSS视频教程 】 响应式 Web 设计旨在为各种设备(从台式机显示器到手机)提供最佳的浏览体验。本文汇总了一些优秀的响应式 Web 设计 HTML 和 CSS 框架。这些框架都是开源的并免费的。 对响应式 Web 框架进行比较并不那么容易。有的框架适合设计更快、更精简网站的某些功能,而…

    2025年12月24日 好文分享
    000
  • 最受欢迎的10大CSS框架

    web 开发工程师在开发页面样式的时候需要花费大量的时间开发,其中最头疼的还是浏览器的兼容性问题,最省事的是使用 css 框架,幸运的是一些大神编写了一套精美的 css 框架并开源出来,那么有哪些不错的 css 框架呢? 我收集了一些资料和数据来和大家讨论,下面我就说说 Github 上 star …

    好文分享 2025年12月24日
    000
  • HTML文件的框架是什么?如何编辑HTML文档?

    一个最基本的html文件框架包含以下核心部分:1.声明html5文档类型,避免浏览器怪异模式;2.作为根元素并指定语言;3. 包含元数据如设置字符编码、适配移动设备、定义网页标题;4.承载实际内容,如 标题和 段落;编辑html需用文本编辑器(如vs code)创建或打开.html文件,编写代码后保…

    2025年12月22日 好文分享
    000
  • 学习canvas框架 详解常用的canvas框架

    探索Canvas框架:了解常用的Canvas框架有哪些,需要具体代码示例 引言:Canvas是HTML5中提供的一个绘图API,通过它我们可以实现丰富的图形和动画效果。为了提高绘图的效率和便捷性,许多开发者开发了不同的Canvas框架。本文将介绍一些常用的Canvas框架,并提供具体代码示例,以帮助…

    2025年12月21日
    000
  • 学习不同canvas框架:了解各种canvas框架的特性与使用场景

    深入研究canvas框架:掌握多种canvas框架的特点与应用场景,需要具体代码示例 近年来,Web前端开发的重要领域之一是图像处理和动画效果。为了实现这些效果,开发人员通常使用HTML5的canvas元素。canvas元素提供了一个可以通过JavaScript来绘制图形的空白容器。 为了更好地利用…

    2025年12月21日
    000
  • 简介:HTML中的CSS框架是什么?

    什么是HTML中的CSS框架?一种简介 HTML和CSS是构建网页的两个基本技术。HTML用于创建网页结构,而CSS则用于设计网页的外观和样式。在开发网页时,我们经常需要为每个元素编写样式,这可能非常繁琐而耗时。幸运的是,CSS框架的出现解决了这个问题,它们提供了一套预定义的样式和布局,简化了网页开…

    2025年12月21日
    000
  • 掌握CSS框架,提升网页设计效果的利器

    HTML是构建网页结构的标记语言,而CSS则是用于美化和布局网页的样式表语言。在网页设计中,使用CSS框架可以提升设计效果,使网页呈现出更专业、更吸引人的外观。本文将介绍一些常见的CSS框架,并分析它们的特点和优势。 Bootstrap(响应式设计) Bootstrap是目前最受欢迎的CSS框架之一…

    2025年12月21日
    000
  • 深入研究CSS框架,提升网页布局和样式的能力

    CSS(Cascading Style Sheets)是一种用于描述网页样式和布局的语言,它使得网页设计更加灵活和易于管理。然而,编写和管理大型网页样式表可能会变得复杂和耗时。为了解决这个问题,开发人员们创建了各种CSS框架,这些框架提供了一套预定义的样式和布局模板,使得网页开发更加快速和高效。 本…

    2025年12月21日
    000
  • HTML框架怎么用

    一个浏览器文档窗口只能显示一个网页文件,但是可以通过使用框架,在同一个浏览器窗口中显示不止一个页面,本文就来介绍一下html框架 一、框架 一个浏览器文档窗口只能显示一个网页文件,但是可以通过使用框架,在同一个浏览器窗口中显示不止一个页面。使用框架的页面主要包含两个部分,一个是框架集,另一个就是具体…

    好文分享 2025年12月21日
    000
  • HTML 框架如何使用

    使用html框架的好处不用自己去写令人头疼的响应式了,html标签使用也比新手程序员使用的要严谨等,会使用了html框架这样对我们的html代码书写量也会减少哦! Previous Page Next Page 通过使用框架,你可以在同一个浏览器窗口中显示不止一个页面。 框架 立即学习“前端免费学习…

    好文分享 2025年12月21日
    000
  • C++框架的未来发展趋势:行业洞察与预测

    c++++框架的未来发展趋势:跨平台支持增强,便于开发跨平台应用程序。ai和ml集成,允许构建智能应用程序。云计算优化,提供可扩展、可用解决方案。物联网设备支持提升,轻松连接和管理物联网设备。 C++ 框架的未来发展趋势:行业洞察与预测 引言 C++ 是软件开发中备受推崇的编程语言,其稳健性和高性能…

    2025年12月18日
    000
  • C++框架与其他语言框架的比较:优缺点分析

    c++++ 框架以其高性能、低级控制和跨平台支持而见长。但它们学习曲线陡峭,调试困难且资源消耗多。对于需要高性能和低延迟的项目,c++ 框架是理想选择,例如使用 boost.asio 框架进行实时数据处理。 C++ 框架与其他语言框架的比较:优缺点分析 前言 C++ 作为一种广泛使用的编程语言,拥有…

    2025年12月18日
    000

发表回复

登录后才能评论
关注微信