[PHP] 开发技巧 →→→→→进入此内容的聊天室

来自 , 2020-09-07, 写在 PHP, 查看 111 次.
URL http://www.code666.cn/view/8a1d6947
  1. 1)不要在模板中直接使用{$_GET.id}或者{$Think.get.id},因为{$_GET.id} {$Think.get.id} 这两种方式都没有任何过滤,容易被XSS。建议使用I方法,即:{:I('get.id')}
  2.  
  3. 2)在thinkphp中如果需要获取数据库中某个表的字段该怎么办呢?示例如下:
  4.  
  5. 查看代码打印
  6. 1
  7. $user=M('user');
  8. 2
  9. $fields=$user->getDbFields();
  10. 结果将返回一个由表字段组成的一个一维数组。
  11.  
  12. 3)数据修改的过程中如果我们只需要修改某个字段的值,就可以使用setField方法,而不需要每次都调用save方法,例如:
  13.  
  14. 查看代码打印
  15. 1
  16. $user=M('user');
  17. 2
  18. $user->where('id=2')->setField('username','www.phpernote.com');
  19. 4)涉及到比较的情况下不一定非得使用if condition这种形式的,还可以按如下的形式来写:
  20.  
  21. 查看代码打印
  22. 1
  23. <eq name="web" value="phpernote">value</eq> // name 变量的值等于 phpernote 就输出
  24. 2
  25. <neq name="web" value="phpernote">value</neq> // name 变量的值不等于 phpernote 就输出
  26. 3
  27. <gt name="age" value="5">value</gt> // name 变量的值大于 5 就输出
  28. 4
  29. <egt name="age" value="5">value</egt> // name 变量的值大于等于 5 就输出
  30. 5
  31. <lt name="age" value="5">value</lt> // name 变量的值小于 5 就输出
  32. 6
  33. <elt name="age" value="5">value</elt> // name 变量的值小于等于 5 就输出
  34. 5)在thinkphp的删除操作中可以不使用where直接使用delete来执行删除,例如:
  35.  
  36. 查看代码打印
  37. 1
  38. $User->delete('2,5');//删除主键为2和5的数据
  39. 6)关于thinkphp的几个快速操作的函数的用法说明。
  40.  
  41. C操作,操作(动态)配置: 主要用于Action方法里面
  42.  
  43. 获取:C('配置参数')
  44.  
  45. 设置:C('配置参数 ',新值)
  46.  
  47. A操作,快速创建Action对象:
  48.  
  49. $action=A('User'); 等效于 $action=new UserAction();
  50.  
  51. D操作,快速创建模型数据对象:
  52.  
  53. $model=D('User'); 等效于 $model=new UserModel();
  54.  
  55. S操作,快速操作缓存方法
  56.  
  57. 获取:S('name')
  58.  
  59. 设置:S('name','value');
  60.  
  61. 删除:S('name',NULL);
  62.  
  63. F操作,快速文件数据保存方法,使用方法与S操作一样。
  64.  
  65. 7)Model命名时,默认要和数据库里的表名一致,如PhpernoteUserModel.class.php对应数据库的名称应该是 '前缀_phpernote_user',在程序代码中的调用应该是:D('PhpernoteUser');
  66.  
  67. 8)开发的过程中如不需要进行缓存,可以在入口文件中进行如下定义:
  68.  
  69. 查看代码打印
  70. 1
  71. define('NO_CACHE_RUNTIME',true);
  72. 9)在开发的过程中如果需要知道一些额外的信息,可在配置文件中进行相应的定义,下面给出几个比较常见的信息定义方式:
  73.  
  74. 查看代码打印
  75. 1
  76. 'SHOW_RUN_TIME'=>true,//运行时间显示
  77. 2
  78. 'SHOW_ADV_TIME'=>true,//显示详细的运行时间
  79. 3
  80. 'SHOW_DB_TIMES'=>true,//显示数据库的操作次数
  81. 4
  82. 'SHOW_CACHE_TIMES'=>true,//显示缓存操作次数
  83. 5
  84. 'SHOW_USE_MEM'=>true,//显示内存开销
  85. 10)自定义Model类并在实例化模型(模型就是数据库操作类)时使用,举例如下:
  86.  
  87. a、在工程目录下的Lib目录下的Model目录下建立一个IndexModel.class.php,然后里面写一个方法play,此方法内容体为循环输出110
  88.  
  89. b、那么在Action中的方法里,还可以这么写:
  90.  
  91. 查看代码打印
  92. 1
  93. $index=M('index','IndexModel');//这里可以加上自定义的模型类一起实例化
  94. 2
  95. $index->play();
  96. 那么会输出110
  97.  
  98. 11)使用thinkphp的过程中如果需要更改默认的模板后缀名,可以在配置文件中做如下定义:
  99.  
  100. 查看代码打印
  101. 1
  102. 'TMPL_TEMPLATE_SUFFIX' => '.dwt'//这里就将模板后缀名改为了dwt
  103.  

回复 "开发技巧"

这儿你可以回复上面这条便签

captcha