快速业务通道

CakePHP程序员必须知道的21条技巧

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-23

  这篇文章可以说是CakePHP 教程中最经典的了。虽然不是完整的手把手系列, 但作者将自己使用CakePHP 的经验总结了21条,这些尤其是对新手十分有用。

  翻译时故意保留了一些CakePHP 中特有的词语没有翻译, 如controller、model等。相信学过CakePHP 的人应该马上就能理解它们的意思吧。

  另外,CakePHP 的wiki已经失效,取而代之的是一个名为bakery的网站。 原文中引用的wiki的链接也都已更新到了bakery上。

  快速创建静态页面

  我想建立几个页面,它们仅包含静态数据,使用默认layout,不需要任何model。 最初我试图创建一个controller并为每个静态页面定义一个action。 但这种方法很笨拙,也不适合快速创建静态页面。

  实际上只要使用pages controller就可以做到——只要在 views/pages 文件夹下创建一个 view,就可以通过 /pages 来访问。例如,我创建了 /views/pages/matt.thtml , 就可以通过 http://www.example.com/pages/matt 来访问。

  改变静态页面的标题

  使用pages controller时如果想改变页面标题,只需在view中加入以下代码:

  pageTitle = "Title of your page."; ?>

  在静态页面中向layout发送数据

  如果需要向layout传递数据(例如表示导航栏中哪个部分应该高亮显示的变量), 可以在view中添加下面的代码:

  _viewVars[''somedata''] = array(''some'',''data''); ?>

  这个数组就可以在layout中通过$somedata来访问。

  快速创建后台管理

  如果你需要创建后台管理程序,并且希望所有管理action都位于某个特定文件夹下, 那么打开 config/core.php 并将下面这一行的注释去掉:

  define(''CAKE_ADMIN'', ''admin'');

  这样所有以”admin_”开头的action都可以通过 /admin/yourcontroller/youraction 来访问。例如,如果在posts controller中创建了名为”admin_add”的action, 那么可以通过 www.example.com/admin/posts/add 访问这个action。这样就可以方便地为admin目录设置密码以避免他人随意访问。

  查看后台执行的SQL语句

  只需改变config/core.php中的DEBUG常量,即可看到后台执行的SQL语句。 0为产品级,1为开发级,2为完整调试SQL,3为完整调试SQL并显示对象数据。 我通常将DEBUG设置为2,这样每页的底部会显示出一个包含SQL调试信息的表格。

  如果页面底部添加的表格会破坏页面布局(特别是使用Ajax获取页面并显示到页面中间而不是底部时), 你可以在CSS中添加以下代码以隐藏调试信息:

  #cakeSqlLog { display: none; }

  这样既能保持页面布局,又可以通过查看源代码来看到调试信息。 当然最后发布网站时别忘了将调试级别改回0。

  获取丰富的开发文档

  别总是盯着手册。wiki和API也是无价之宝。wiki中的开发指南十分有用,而API文档初看起来比较难, 但你很快就会发现这里的信息对你创建CakePHP 网站十分重要。`

  使用bake.php

  Bake是个命令行PHP脚本,可以根据数据库自动生成model、controller和view。在开发的最初阶段,我强烈推荐使用 scaffolding让你的原型程序跑起来。但如果你清楚地知道scaffolding不合适,我推荐你使用bake。 bake会生成所有的文件并保存到磁盘上,以便你随意修改。这样能节省创建关联、view、基本的CRUD crollder操作的重复工作。

  (译者注:CRUD - Create, Read, Update, Delete,数据库应用的四种基本操作,即”增删查改”。)

  bake很方便。你只需在数据库中建立一个表,然后到 /cake/scripts/ 目录下执行 php bake.php 即可。

  如果你通过交互方式来运行bake,它会分几步提示你创建model、controller和view。 创建结束之后,我通常

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号