CakePHP 概述

欢迎来到 CakePHP Cookbook,这是一本使用 CakePHP web 应用程序框架开发一块蛋糕的的手册!

本手册假定你了解 PHP,并且有面向对象编程(OOP)方面的基础知识。 框架中的不同功能使用了不同的技术 —— 类似于 SQL、JavaScript 和 XML ——本手册不准备讲解这些技术,仅仅说明其在相关上下文中如何使用。

  • 什么是 CakePHP?它如何使用?
  • 理解 模型 - 视图 - 控制器
  • 从哪儿获取帮助

什么是 CakePHP?它如何使用?

CakePHP 是一个 免费的, 开源的, 快速发展的 PHP 框架 。 它是创建 web 应用的基本程序结构。我们的主要目标是让你能够在一个结构上快速开始工作 —— 不需要太复杂。

CakePHP 从单调的 web 开发中解脱出来。我们为你提供开始编码的全套工作,包括你的应用程序的具体逻辑。 代替每次重复发明轮子的是坐下来开始一个新项目,检出 CakePHP 的代码副本然后鼓起勇气开始编程。

CakePHP 拥有活跃的CakePHP has an active 开发团队 和社区,给项目带来巨大的价值。除了让你摆脱重复发明轮子,使用 CakePHP 还意味着你的应用程序的核心是易于测试并不断提高的。

以下是一些当你使用 CakePHP 时能享受到的特性的快速列表:

  • 活跃、友好的 社区
  • 富有弹性的 许可
  • 兼容 PHP 5.2.8 及更高版本。
  • 整合的数据库 CRUD 操作。
  • 应用程序 脚手架.
  • 代码生成。
  • MVC 设计风格。
  • 清晰的请求颁发、自定义的 URL 和路由。
  • 内置的 校验.
  • 快速灵活的 模板 (PHP 语法,带有助手)。
  • Ajax、JavaScript、HTML 表单等等方面的视图助手。
  • Email、Cookie、安全、Session和请求处理等的组件。
  • 灵活的 ACL.
  • 数据清除。
  • 灵活的 缓存.
  • 本地化。
  • 几乎不需要对 Apache 进行配置就可以在任意站点目录内工作。

理解 模型 - 视图 - 控制器

CakePHP 遵循 MVC 软件设计模式。 使用 MVC 编程将应用程序分隔为三部分:

模型层

模型层是在你的应用程序中实现商业逻辑的那一部分。 它负责检索数据并将其转换成对你的应用程序有意义的概念。包括加工、校验、连接或者与数据处理相关的其他任务。

乍一看,模型对象可以被当成与你的应用程序所使用的数据交互的第一层。 但总体来说,它们是贯穿了你的应用程序实现的主体概念。

在社会网络中,模型层关注的任务包括保存用户数据、保存朋友关系、存储和检索用户照片、为寻找新的朋友提供建议等。此时,模型对象可以被当成 “Friend”、”User”、”Comment” 或者 “Photo”.

视图层

视图渲染可视化数据。它被从模型中分离出来,负责使用它可用的信息,产生应用程序中需要的可视化接口。

例如:当模型层返回一个数据集,视图就用它渲染一个包含这些数据集的 HTML 页面。或者为其他需要提供一个 XML 格式的结果。

视图层不仅是数据的 HTML 或者文本表示,它还能用于传送你需要的各种格式,比如视频、音乐、文档或者你能想到的其他所有格式。

控制器层

控制器层处理来自用户的请求。它借助模型和视图层渲染一个回应。

控制器可以被看作一个照看完成一个任务的全部所需资源并委托给正确人员的管理员。它等待客户端的请求,根据认证或授权规则检验其有效性,将数据委托给模型进行读取或处理,选择客户端所期望的数据的正确表现形式,并最终将此次渲染委托给视图层。

CakePHP 请求生命周期

插图: 1: CakePHP中的标准 MVC 请求

标准的 CakePHP 请求生命周期起始于一个用户请求应用程序中的一个页或者资源。分发器先计算这个请求,并选择一个正确的控制器对象处理它。

一旦请求到达控制器,它将请求传递给模型层计算所有的数据,根据需要进行读取或保存操作。 在此次传递结束后,控制器将来自模型的数据继续委托给正确的视图对象,生成输出结果。

最后,输出一生成,它就将其渲染给用户。

应用程序中的每个请求几乎都遵循这个基本模式。随后我们将向 CakePHP 加入一些具体的详细内容,在我们继续进行时,记住这一点。

好处

为什么要使用 MVC?因为它是一种经过实践证明的有效的软件设计模式,可以使应用程序变成为可维护的、模块化的、快速的开发包。 将应用程序任务分解为分隔模型、视图、控制器任务,使得创建应用程序更容易。 新特性更易于添加,修改旧特性也很容易。模块化和分离设计还允许程序员和设计师同时工作,能够快速开发原型。 分离还允许程序员在改变程序的一个部分时不影响其他部分。

如果你从没有用这种方法创建过应用程序,需要你花费一些时间学习,但是我们相信一旦你使用 CakePHP 建立了第一个应用程序,你就不会再想使用其他方式了。

要开始你的第一个 CakePHP 应用程序, 现在就试着建立一个博客 吧。

从哪儿获取帮助

CakePHP 官方网站

http://www.cakephp.org

CakePHP 官方网站总是访问的最佳选择。它包括常用的开发者工具、截屏、捐赠和下载的链接。

Cookbook

http://book.cakephp.org

本手册将是你获取答案的首选。和许多开源项目一样,我们经常会有新的朋友。试着自己先回答自己的问题。答案可能会有点慢,但是会保存很久 —— 你还能帮我们减轻负担。手册和 API 都有在线版本。

面包店

http://bakery.cakephp.org

CakePHP 面包店是 CakePHP 所有事物的集结地。可以从中找到教程、案例和代码示例。一旦你熟悉了 CakePHP,登录论坛并分享你的知识,就可以名利双收:)

API

http://api20.cakephp.org/

直接源自内核程序员的 API 是最全面的文档,包含了此框架的全部细节和内部工作原理。它直接来自代码参考,会带给你更强劲的动力。

测试用例

如果你觉得 API 提供的信息仍然不够,可以浏览随 CakePHP 一直提供的测试用例。它们为每个类的功能和数据成员的用法提供了实际的例子。

lib/Cake/Test/Case

IRC 频道

IRC Channels 在 irc.freenode.net:

  • #cakephp – 一般性讨论
  • #cakephp-docs – 文档
  • #cakephp-bakery – 面包店

如果你遇到了障碍,在 CakePHP IRC 频道向我们发牢骚。 来自开发团队的成员常常会在那,尤其是北美或南美的用户常常会在那泡一整天。 我们喜欢听到你的声音,如果你需要帮助,想要在你所在的区域寻找用户,或者想捐赠你那辆全新的运动型轿车。

Google 小组

http://groups.google.com/group/cake-php

CakePHP 还有一个非常活跃的 Google 小组。 它是找到归档答案、常见问题和当前问题的回复的上佳资源。

CakePHP 问答

http://ask.cakephp.org/

简单地注册、登录并提问。等待你的答案到来,并且选择正确的回复。你可以展示、注释、为以前的提问和解决方案投票。

CakePHP 2.x CookBook 中文版 第四章 CakePHP 概述相关推荐

  1. CakePHP 2.x CookBook 中文版 第三章 入门(三)

    为什么80%的码农都做不了架构师?>>>    路由 多数情况下,CakePHP 的默认路由都能够很好地工作.对用户体验和搜索引擎兼容敏感的程序员将注意到 CakePHP 的 URL ...

  2. CakePHP 2.x CookBook 中文版 第七章 模型 之 关联:将模型连接在一起

    关联:将模型连接在一起 CakePHP 的一个非常强劲的特性就是由模型提供关系映射,通过关联来管理多个模型间的连接. 在应用程序的不同对象间定义关系是很自然的.例如:在食谱数据库,一个食谱可能有多个评 ...

  3. CakePHP 2.x CookBook 中文版 第六章 视图 之二

    主题 主题可以使你快捷地切换页面的外观. 要使用主题,只需在控制器中指定主题名称: 1 class ExampleController extends AppController { 2 public ...

  4. CakePHP 2.x CookBook 中文版 第五章 控制器 之 请求和响应对象

    请求和响应对象 在 CakePHP 2.0 中请求和响应对象是新的.在之前的版本中,这些对象是用数组来表示的,相关的方法分散在RequestHandlerComponent.Router. Dispa ...

  5. CakePHP 2.x CookBook 中文版 第五章 控制器

    控制器 控制器是 MVC 中的 'C' .在应用了路由且正确的控制器被找到之后,控制器的动作(action)被调用.控制器将处理解释请求数据,确保正确的模型被调用,确保正确的输出或视图被渲染.控制器可 ...

  6. CakePHP 2.x CookBook 中文版 第五章 控制器 之 组件

    为什么80%的码农都做不了架构师?>>>    组件 组件是在多个控制器中共享的逻辑包.如果你发现自己想要在控制器间复制粘贴某些东西时,你就应该考虑将一些功能包装在一个组件中了. C ...

  7. CakePHP 2.x CookBook 中文版 第七章 模型 之 删除数据

    删除数据 CakePHP 的模型类提供了几种从数据库中删除记录的方法. delete delete(int $id = null, boolean $cascade = true); 通过 $id 删 ...

  8. CakePHP 2.x CookBook 中文版 第七章 模型 之 保存数据

    保存数据 CakePHP 会为保存模型数据制作快照.准备保存的数据使用如下基本格式传递给模型的 save() 方法: 1 Array 2 ( 3 [ModelName] => Array 4 ( ...

  9. CakePHP 2.x CookBook 中文版 第七章 模型 之 检索数据

    检索数据 如前所述,模型层的一个角色是从多种存储中获取数据. CakePHP 模型类带有很多功能,帮助你搜索这些数据,排序,分页并且进行过滤.你将要使用的很多功能集成于模型的 Model::find( ...

最新文章

  1. 风清杨之Oracle的安装与说明
  2. 韦布望远镜现在到哪儿了:距离地球60万公里,NASA还说可以用10年
  3. 【Android 异步操作】FutureTask 分析 ( Future 接口解析 | Runnable 接口解析 | Callable 接口解析 )
  4. Spring常见问题
  5. NGUI_2.6.3_系列教程一
  6. 分布式id-数据库实现
  7. 1060. 爱丁顿数(25)-PAT乙级真题
  8. Class.forName()、Class.forName().newInstance() 、New 三者区别!
  9. 【排序算法】快速排序-迭代方法
  10. 第十六章 python Pygame的使用
  11. 使用 SASS 混合器 和@media 适应分辨率变化
  12. excel电子表格插件_从电子表格到漏洞管理
  13. django项目中使用crontab定时任务
  14. A Beginner‘s Guide To Understanding Convolutional Neural Networks(part 1)
  15. 【Android实战】----基于Retrofit实现多图片/文件、图文上传
  16. 树分治(挑战p360)
  17. 呦呦呦!SMS来个通俗点的小栗子!!!
  18. linux多系统引导管理,Linux 多重引导MBR与系统引导管理器GRUB.docx
  19. 利用计算机引号作用,计算机双引号怎么打出来
  20. 《解救吾先生》TC枪版1.07GB迅雷bt种子ed2k下载

热门文章

  1. 2-3 实变函数之测度论
  2. 黑马史上第一个自带鬼畜的Java教程来了!
  3. java volatile内存屏障_volatile 和 内存屏障
  4. BigDecimal.setScale用法总结
  5. 高防CDN的知识了解
  6. PendingIntent无法唤起activity | service无法唤起activity【从后台启动activity无效的原因】
  7. Peakvue和自相关技术轴承诊断
  8. 双向-带头--循环链表
  9. 加载插件时,提示反射异常,调用的目标出现异常,该模块应包含一个程序集清单...
  10. Azure Q4增速放缓至47% 微软能否借“云”站上科技股市值C位?