tp总结
不知不觉学tp也快一个月了,虽然还处于一个仅仅只会使用的阶段,但毕竟算是我详细接触的第一个脚本框架,tp还是让我收获了许多。
废话不多说,先列出几个对于我这种新手来说tp新奇而实用的地方。
1、连贯操作
个人觉得tp的连贯操作真的是为新手打开了一扇新的大门(新手个人观点,大神轻喷),首先它支持所有的CURD操作,学会这个几乎就所有的跟数据库有关的操作都不用再发愁了,当然,前提是你要懂得数据库的基础语法。再者,连贯操作有效的提高了数据存取的代码清晰度和开发效率,使用起来相当简单。嗯,这里如果要举例子的话,不得不顺带提一句tp的大写单字母方法,一个字母就能实现你以前需要一行或者多行代码才能实现的功能,真的是炒鸡实用。下面是一个小例子:$User = M('User');//M函数用于实例化一个没有模型文件的Model,这里我们用来实例化一个数据表User
$User->order('create_time')->limit(10)->where('status=1')->select();
这短短一行代码就实现了查询一个User表的满足状态为1的前10条记录,简洁明了啊有木有。而且它的方法调用顺序不分先后,很多方法还支持多次调用,可谓是自由度极高,在也不用担心写代码的时候因为个人习惯造成顺序不对而异常的情况了,最后再强调一次,它支持所有的CURD操作!!!
2、变量输出
这又是一个非常实用的功能。tp可以通过assign方法向对应的模版输出你所需要的变量,然后在模版文件中就可以直接调用这个变量了,而且tp还添加进了许多诸如foreach、if之类的标签,让你可以很好的处理你的数据变量,哪怕数据变量是一个数组,哪怕你需要有不同的显示情况,这些都不是问题。有了它,你很多时候都不需要再用表单或者ajax去向后台PHP发送请求,来以此获取你所需要的数据并把它们展示到你的页面上。你可以不用再为表单提交时的自动跳转问题而苦恼(在你不需要跳转的时候),也可以不用因为有时候你只是需要一个非常短的数据时,却要写大段代码来实现ajax请求而无奈,tp为你省略了这些步骤,让前台对数据的展示变得方便快捷,并且更加完美。
3、模版继承和布局
没错,你没有看错,模版也可以继承了。这意味着,当你的项目因为需求而有很多地方架构相似但又有所不同的时候,你不用再为可能需要写许多整体结构相同可以说重复的代码,而且还要为它们重新设置css样式而苦恼了,你可以直接定义一个基础模板,并且其中定义相关的区块(block,也就是你很多地方可能会重复的架构),然后直接在子模版中继承(<extend name="baseName" />)该基础模版,对其区块进行重载,以此来实现一些小地方的不同(改动)。再来说模版布局,它所支持的嵌套功能真的是解决了大问题,又相对节省了时间。相信很多人应该发现有些类似博客之类的网站都有一个相同的特点,就是在多个页面切换的时候,它们的头部和脚部(或者其它一些地方)都是没有变化的。一般来说这个要如何实现? 再写一个完整相同的的页面,然后中间地方有所不同?这样代码的重量太大了。 通过ajax请求去动态改变不同的部分?可是当你执行一些刷新或者需要刷新的操作的时候,它们都将变回原样,这会使得用户体验非常差。而模版布局就为我们解决了这个问题,你可以把类似头部脚部这样的大块内容直接拆开封装成为一个单独的文件,然后通过定义layout文件用include标签把这些头、脚文件拼接在一起,最后,你只需要写好中间不同的内容(不需要头和脚并且都可以是一个单独的html文件),再用layout标签把他们都嵌套到头和脚中间就OK了,这样你直接访问的每一个中间内容文件,都能显示已经定义好的公用的头和脚,也就是说看到的是一个完整的html页面。
4、更多
当然tp给我们带来的便利还有很多很多,这些都需要自己去学习,这里我就不再啰嗦了。
说这么多,只是为了表达,tp真的让我收获了很多,虽然刚开始学的时候困难重重,虽然现在的我不懂、不知道的还有很多,但是tp真的让我对框架有了充分的认识和了解,对我的帮助可谓巨大。
代码有代码的神秘,框架也有框架的魅力,我想,我已经渐渐感受到了。。。
注:新手上路,多有不足,大神轻喷,请多指教。
tp总结的更多相关文章
- tp框架实现验证码
今天来看一个小插件. tp框架是怎么实现验证码的. 又到了我们千篇一律的时候了,首先呢,先做一个用来显示的html界面名为:zhuce.html <!DOCTYPE html PUBLIC &q ...
- tp框架验证信息
今天在这里我们学习一下tp框架里面怎么做验证. 验证又分为两种:静态验证.动态验证 首先,我们还是先做一个html界面,名为add.html.代码如下: <!DOCTYPE html PUBLI ...
- tp框架实现ajax
不墨迹,直接进主题. tp框架实现ajax 首先,我们先做一个testajax.html用来显示页面(只是一个简单的下拉列表^_^) <!DOCTYPE html PUBLIC "-/ ...
- tp框架的增删改查
首先,我们来看一下tp框架里面的查询方法: 查询有很多种,代码如下: <?php namespace Admin\Controller; use Think\Controller; class ...
- tp基础,文件存储路径
tp框架的几点注意事项: 1.tp框架结构MVC模式2.MVC模式最终访问的是方法,不是具体 页面3.控制器用驼峰法命名4.约定胜于配置 index.php:入口文件 Application:应用程序 ...
- tp框架之自动验证表单
tp框架的create自动加载表单的方法可以自动根据自己定义的要求来验证表单里面的内容,但是由于是在后台执行代码,会拖慢程序运行速度,所以还是建议通过前端js来进行判断,后台只进行数据库的查询以及传值 ...
- tp框架之分页与第三方类的应用
1.先把分页类放在根目录下,比如放在某个模块下 2.在类里面写入命名空间,注意类名的格式(类名要与里面的方法名一致) 3.在需要的方法里面按照路径进行实例化,然后就可以使用了 方法: public f ...
- tp中使用分页技术
1 public function showList() { $m_ld = D ( 'guangxi_ld' ); $page = I ( 'get.p', 1 ); // 在配置中获取分页值 $p ...
- tp框架之Model类与命名空间
1.获取系统常量信息 public function shuchu() { var_dump(get_defined_constants()); } 2.跨控制器或跨模块调用 function dia ...
- TP框架 ---空控制器和空操作
通过之前的学习我们知道了index.php是一个入口文件,如果没有这个入口文件的话,我们需要自己创建! [视图模板文件创建] 视图模板文件存放发位置在: 里面没有模板文件 如果我们想要访问Login控 ...
随机推荐
- 【hdu6093】Rikka with Number
多校第五場的題. 首先是一個好數只在某個進制下,不會是在兩個進制下都爲好數. 另外每個進制好數的個數爲d!-(d-1)!,因爲要保證第一位不爲0. 然後就是在臨界進制下有多少個好數的問題,可以變成兩個 ...
- 《Node入门》读书笔记——用Node.js开发一个小应用
Android APP的开发告一段落,一个稳定的.实现了基本功能的APP已经交付用户使用了!我和老板交流了下,接下来准备转战Node.js了,而且一部分前端的功能也要做进去!哈哈哈~~~接下来要朝一个 ...
- 【EF】EntityFramework DBFirst的使用
一.前言 久闻EF大名,之前做C/S产品用的是Dapper对SqlLite进行ORM.然后接触公司授权系统后发现用的是EntityFramework对SQLSever进行ORM.授权系统 ...
- listen() 函数
声明:本文来自网络博文的合并,文后有链接. 一.listen函数仅由TCP服务器调用 它做两件事: 1.当socket函数创建一个套接字时,它被假设为一个主动套接字,也就是说,它是一个将调用conne ...
- CF 566A Matching Names
CF 566A Matching Names 题目描述 给出n个名字和n个昵称,求一个名字和昵称的劈配方案,使得被劈配的名字和昵称的最长公共前缀长度的和最大. 1<=n<=100000 字 ...
- [IOI2013]Dreaming
link 一道非常类似的题目(link) 试题大意 给你一棵含有$n$个节点的有边权森林,问每次连边将会用$L$的代价,问你若此图通过加边成为树时的最小直径.$n \leq 5\times 10^5$ ...
- poj 1185 状态压缩
炮兵阵地 Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 27926 Accepted: 10805 Descriptio ...
- opencv函数制作的时钟模型
http://www.cnblogs.com/sytu/p/4192652.html 在秒针模型的基础上添加了分针和时针,并且添加了暂停控件和设置时间的功能. #include"cv.h&q ...
- 手脱FSG 2.0 -> bart/xt
声明: 只为纪录自己的脱壳历程,高手勿喷 1.在入口的第二行ESP定律下硬件断点然后F9运行8次(因为第9次就跑飞了) 0040955C > pushad 0040955D EB jmp //E ...
- Qt ------ 控件布局 setSizePolicy
setSizePolicy 是设置控件在布局(layout)里面的大小变化的属性.如果控件没有在布局里,没什么用. 默认情况下,把 widget 放入 layout,widget 的大小一定程度上会随 ...