热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CakePHP2.xCookBook中文版第四章CakePHP概述

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

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

Google 小组

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

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

CakePHP 问答

http://ask.cakephp.org/

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

分享到:

推荐阅读
  • 关于extjs开发实战pdf的信息
    本文目录一览:1、extjs实用开发指南2、本 ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
  • 本文介绍了一种处理AJAX操作授权过期的全局方式,以解决Asp.net MVC中Session过期异常的问题。同时还介绍了基于WebImage的图片上传工具类。详细内容请参考链接:https://www.cnblogs.com/starluck/p/8284949.html ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • 本文介绍了如何使用jQuery和AJAX来实现动态更新两个div的方法。通过调用PHP文件并返回JSON字符串,可以将不同的文本分别插入到两个div中,从而实现页面的动态更新。 ... [详细]
  • 本文介绍了Java集合库的使用方法,包括如何方便地重复使用集合以及下溯造型的应用。通过使用集合库,可以方便地取用各种集合,并将其插入到自己的程序中。为了使集合能够重复使用,Java提供了一种通用类型,即Object类型。通过添加指向集合的对象句柄,可以实现对集合的重复使用。然而,由于集合只能容纳Object类型,当向集合中添加对象句柄时,会丢失其身份或标识信息。为了恢复其本来面貌,可以使用下溯造型。本文还介绍了Java 1.2集合库的特点和优势。 ... [详细]
  • wpf+mvvm代码组织结构及实现方式
    本文介绍了wpf+mvvm代码组织结构的由来和实现方式。作者回顾了自己大学时期接触wpf开发和mvvm模式的经历,认为mvvm模式使得开发更加专注于业务且高效。与此同时,作者指出mvvm模式相较于mvc模式的优势。文章还提到了当没有mvvm时处理数据和UI交互的例子,以及前后端分离和组件化的概念。作者希望能够只关注原始数据结构,将数据交给UI自行改变,从而解放劳动力,避免加班。 ... [详细]
  • Allegro总结:1.防焊层(SolderMask):又称绿油层,PCB非布线层,用于制成丝网印板,将不需要焊接的地方涂上防焊剂.在防焊层上预留的焊盘大小要比实际的焊盘大一些,其差值一般 ... [详细]
  • 我将SpringMVC升级到Spring3.2.5.我的一些剩余调用即使存在,也会返回无法识别的字段异常.这是错误.Resolvingexceptionfrom ... [详细]
  • asp.net(vb脚本)如何获取xml的节点值?xmlversion1.0encodingutf-8?rootimageimagemenusmenuurl#frame_paren ... [详细]
  • 1、概述首先和大家一起回顾一下Java消息服务,在我之前的博客《Java消息队列-JMS概述》中,我为大家分析了:然后在另一篇博客《Java消息队列-ActiveMq实战》中 ... [详细]
author-avatar
説悢沵xb
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有