陈国冰的一些笔记

来自技术开发小组内部wiki
跳转至: 导航搜索

开始

PHP 的通用规范

if 后面即使是一行,也要加 {} 

不要用  if():  endif; 方式,而是用 if(){}

大段注释不用 /**/ 而是用

/*

//*/

不要用 ==== >>>> <<<< 作为注释

////[[[[

//良好注释

////]]]]

批量查找替换的注释,// 放在最前面

用 Tab 而不是空格缩进 

大数据数组使用和 var_export 的格式

[del]用 LF换行而不是 CRLF换行[/del]

if($flag){
  $ret='a';
}else{
  $ret=;
}

$ret=;
if($flag){
$ret='done';
}

返回给 foreach 用的空值,请用 array();


变量记得初始化

技巧

$ret=;
$ret=($flag==1)?'A':$ret;
$ret=($flag==2)?'B':$ret;
$ret=($flag==3)?'C':$ret;

foreach($array as $k => &$v){
}


统一使用 mysql 相关编码函数

$this->db->escape()

$this->db->escape_str() 

 


View 的规范

View 的规范

主页面 [ View_的规范]


controller 规范

controller 的结尾不加  ?> 避免 后面换行或空格输出

controller 不能直接调用 sql 。

   要调用 sql ,请在 model 里写。

   如果怕冲突,暂时写在 controller里,请写在单独 protected 方法

对外方法,load_model在 方法的最前端,

GET,POST 数据处理放在最前面。

业务逻辑放中间

最后是 view 处理。


点滴

js 脚本和 php 传输给 js 的变量分开

正确

<script>var x=<?=json_encode($x)?></script>

<script>alert(x)</script>

错误

<script>

alert(<?=$x?>)

</script>


controller 里不要做 sql 语句

正确 把 sql 语句都放到 model里。


​利用好 sql_calc_found_rows()


error_reporting ( error_reporting() | E_NOTICE );

<?php
$app=new EventApp();
FMBEvent::Bind('Log',array(&$app,'log_it'));
//foo(){
FMBEvent::Fire('log');
//}



半截 sql 问题

架构

架构.jpg