关于thinkphp开发的几种规范(仅限个人)

一、只要设计到where查询语句,无论是增删改查

$cn[‘username‘] = session(‘member.username‘);
$cn[‘itemid‘] = $itemid;
$item =  M(‘Buy‘)->where($cn)->find();

或者

$cn = array(session(‘member.username‘),‘2‘,‘_multi‘=>true);
$list = M(‘FinanceRecord‘)->where($cn)->select();

a.小于两个或者两个用下边的!超过2个用上边的。
b.这里有个小东西,就是list是列表,即select() 而,item是对象,即find();
c.还有$cn请记住这种写法!

二、关于保存和添加

$ds[‘moneyremain‘] = 0.00;
$ds[‘status‘] = 4;
$ds[‘edittime‘] = NOW_TIME;
$step2 = M(‘Buy‘)->where($cn)->save($ds);//添加为add($ds),当然无where

如果是批量添加,则必须用批量方式进行添加

$ds[] = array(
                   ‘usernameout‘=>$usernameout,
                   ‘usernamein‘=>$usernamein,
                   ‘money‘=>$money,
                   ‘moneypre‘=>M(‘Member‘)->where(‘username=\‘‘.$usernameout.‘\‘‘)->getField(‘money‘),
                   ‘addtime‘=>NOW_TIME,
                   ‘ip‘=>get_client_ip(),
                   ‘typeid‘=>$typeid,
                   ‘catid‘=> $catid,//资金流向
                   ‘itemid‘=>$itemid,
                   ‘title‘=>$cats[$catid].‘:‘.$types[$typeid],
                   ‘status‘=>2,
                   ‘paytime‘=>NOW_TIME,
            );
$ds[] = array(
                   ‘usernameout‘=>$usernameout,
                   ‘usernamein‘=>$usernamein,
                   ‘money‘=>$money,
                   ‘moneypre‘=>M(‘Member‘)->where(‘username=\‘‘.$usernameout.‘\‘‘)->getField(‘money‘),
                   ‘addtime‘=>NOW_TIME,
                   ‘ip‘=>get_client_ip(),
                   ‘typeid‘=>$typeid,
                   ‘catid‘=> $catid,//资金流向
                   ‘itemid‘=>$itemid,
                   ‘title‘=>$cats[$catid].‘:‘.$types[$typeid],
                   ‘status‘=>2,
                   ‘paytime‘=>NOW_TIME,
            );

M(‘FinancePay‘)->addAll($ds);

 

三、关于另一种保存(更新一个字段或者两个字段,多了用上边那个)

M(‘Order‘)->where($cn)->setField(array(‘status‘=>2, ‘paytime‘=>NOW_TIME));

四、关于搜索页面小技巧

前台页面搜索字段为

status=0(所有),status=1,status=2

catid=0(所有),catid=1,catid=2

typeid=0(所有),typeid=1,typeid=2

...

后台处理,get提交

$cn = cn(array(‘status‘,‘catid‘,‘typeid‘));//如果以后还有其他字段还可以添加
$cn[‘username‘] = session(‘member.username‘);
$list = M(‘FinancePay‘)->where($cn)->order(‘payid desc‘)->page($p.‘,10‘)->select();
if($list) {

  foreach($list as $k => $item) {
    $list[$k][‘dstatus‘] = $clang_status[$item[‘status‘]];
  }

}

其中cn函数为

function cn($item) {
    $cn = array();
    foreach($item as $value) {
        $cn[$value] = I(‘get.‘.$value);
        if(!I(‘get.‘.$value)) unset($cn[$value]);
    }
    return $cn;
}

五、关于安全

尽量用数组方式和I()函数,暂时用这两个就可以搞定sql注入问题了

六、T(..)函数的作用是输出前台include的真实路径,有的时候模版找不到,可以用这个输出

七、语言类配置文件

尽量放到一个lang下

时间: 2024-08-01 10:32:30

关于thinkphp开发的几种规范(仅限个人)的相关文章

从" ThinkPHP 开发规范 "看 PHP 的命名规范和开发建议

稍稍水一篇博客,摘抄自Think PHP 的开发规范,很有引导性,我们可以将这些规范实践到原生 PHP 中. 命名规范 使用ThinkPHP开发的过程中应该尽量遵循下列命名规范: 类文件都是以.class.php为后缀(这里是指的ThinkPHP内部使用的类库文件,不代表外部加载的类库文件),使用驼峰法命名,并且首字母大写,例如 DbMysql.class.php: 类的命名空间地址和所在的路径地址一致,例如 Home\Controller\UserController类所在的路径应该是 App

thinkphp开发技巧经验分享

thinkphp开发技巧经验分享 www.111cn.net 编辑:flyfox 来源:转载 这里我给大家总结一个朋友学习thinkphp时的一些笔记了,从变量到内置模板引擎及系统变量等等的笔记了,同时还有一些开发中碰到的问题的解决方案下面我们一起来看看吧. 一,常用的系统变量 (1)系统变量:在模板中输出系统变量:包括server.env.session.post.get.request.cookie {$Think.server.script_name} // 输出$_SERVER变量 {$

通俗理解J2EE的13种规范

学习到Java就不得不了解为人熟知的13种规范,小编从网上各种搜集资料,可是都是一些专业性的术语,确实很令人费解,讲解的都很抽象.在小编的不懈努力之下,通过看别人的博客,汇总了以下的内容. 1.JDBC(java Database Connectivity):   官方:JDBC API为访问不同的数据库提供了一种统一的途径,就像ODBC一样,JDBC对开发者屏蔽了一些细节问题,同时,JDBC对数据库的访问也具有平台无关性. 小编:学习过.NET的一定了解ODBC,这是属于同一个性质的,就是为了

手机 app 开发的几种方式 ionic 学习思路以及 ionic 新建的项目分析

手机 app 开发的几种方式 ionic 学习思路以及ionic 新建的项目分析 学习要点:1. 目前开发手机 app 的几种方式2. Ionic 学习思路简介3. Ionic CSS 框架4. ionic js 指令 路由 其他 ui 交互效果5. ionic 命令行/CLI 安装 调试 打包( 第三季 第一讲已讲)6. ionic 开发包下载 以及命令创建的项目分析 1. 目前开发手机 app 的几种方式原生/Native: 使用原生 SDK 开发 App.优点不用说, 当你有足够的资源,这

thinkphp开发建议

在使用ThinkPHP进行开发的过程中,我们给出如下建议,会让你的开发变得更轻松: 遵循框架的命名规范和目录规范: 开发过程中尽量开启调试模式,及早发现问题: 多看看日志文件,查找隐患问题: 养成使用I函数获取输入变量的好习惯: 更新或者环境改变后遇到问题首要问题是清空Runtime目录: thinkphp开发建议

使用ThinkPHP开发中MySQL性能优化的最佳21条经验

使用ThinkPHP开发中MySQL性能优化的最佳21条经验讲解,目前,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我 们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能.这里,我们不会讲过 多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库.希望下面的这些优化技巧对你有用. 1. 为查询缓存优化你的查询大多数的MySQ

【前端开发】25种提高网页加载速度的方法和技巧

尊重原创:http://blog.csdn.net/wxzking/article/details/4089384 您希望加快网页的加载速度吗?了解如何通过缩短加载时间来改善拨号上网用户的浏览体验,在某些情形下,加载时间最多可缩短 80%.下面介绍二十五中网速方法和技巧. 一.使用良好的结构 可扩展 HTML (XHTML) 具有许多优势,但是其缺点也很明显.XHTML 可能使您的页面更加符合标准,但是它大量使用标记(强制性的 <start> 和 <end> 标记),这意味着浏览器

ExtMVC+ThinkPHP开发CRM管理系统--导航树的实现

最近很是郁闷,因不明原因本机的开发的后台管理程序无法访问.模仿其他大侠给你的导航树(ExtJSMVC)到我这里没有效果.甚至一气之下删除了自己写的一周的代码样例,莫非是本月运势不好,不抱怨了(哈哈!无非是给自己近期没有更新博客找个借口). 进入正题今天分享一个通过后台访问mysql数据库,加载前台导航树的完整案例. 前期准备: 后台创建mySql数据库及相应表结构: MI_ID                    int(11) MI_MenuName              varchar

开发流程与版本管理规范

# 开发流程与版本管理规范 ## 版本号规则 如非特殊说明,所有产品的版本号将遵循 主版本.次版本.BuildNumber 的规则. - 主版本号:发布重大更新时增加 - 次版本号:发布新功能点时增加 - build number: 打包的编号, 日常更新,bug 修复, 功能优化 例如 2.1.34, 2 是 主版本号, 1为次版本号, 34 是 build number. 主版本号变化时次版本号清零,但是 build number 不清零,一直累加.2.1.34 的下个版本号是 3.0.35