热门标签 | 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/

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

分享到:

推荐阅读
  • 本文探讨了在执行SQL查询时遇到的因字符集不同而导致查询结果差异的问题,特别是涉及中文字符时。文章分析了在不同字符集设置下,SQL查询结果的变化,并提供了详细的解决方案。 ... [详细]
  • 本文探讨了如何在JavaScript中调用PHP函数及实现两者之间的有效交互,包括通过AJAX请求、动态生成JavaScript代码等方法。 ... [详细]
  • 本文详细探讨了 Java 中 Daemon 线程的特点及其应用场景,并深入分析了 Random 类的源代码,帮助开发者更好地理解和使用这些核心组件。 ... [详细]
  • 解决CSS因MIME类型不匹配导致的加载失败问题
    本文详细介绍了在Web开发过程中,遇到CSS文件因MIME类型不匹配而无法正确加载的问题及其解决方案,适合前端开发者阅读。 ... [详细]
  • 基于函数实现的进制转换工具
    本文介绍了一种利用函数实现不同进制数(二进制、八进制、十进制)之间转换的方法。包括了程序的运行效果展示、所使用的主要函数解析、以及如何验证用户输入的合法性。整个项目仅使用了两个全局变量来存储用户的选项和输入的数值。 ... [详细]
  • Spring框架中的关键配置文件详解
    本文详细介绍了Spring项目中常见的配置文件,包括pom.xml和spring.xml的作用与使用方法。pom.xml用于管理项目依赖,而spring.xml则负责Bean的定义与初始化。 ... [详细]
  • CGroups: 资源管理和控制
    CGroups(Control Groups)是Linux内核提供的一个功能,旨在限制、记录和隔离进程组使用的物理资源,如CPU、内存和I/O等。它通过精细的资源管理,支持现代容器技术如Docker的资源限制需求。 ... [详细]
  • 软件项目管理实践——Jenkins持续集成与Maven、GitHub的应用
    本文详细介绍了如何利用Jenkins实现持续集成,以及Maven和GitHub在项目开发中的具体应用。包括环境搭建、工具安装、项目创建及代码管理等关键步骤。 ... [详细]
  • 下面根据配置文件,来说明一些底层与webservices的关系:回顾一下servlet的映射模式。我们知道,servlet是从javax.servlet.http.HttpServ ... [详细]
  • 一、数据更新操作DML语法中主要包括两个内容:查询与更新,更新主要包括:增加数据、修改数据、删除数据。其中这些操作是离不开查询的。1、增加数据语法:INSERTINTO表名称[(字 ... [详细]
  • SQL注入实验:SqliLabs第38至45关解析
    本文深入探讨了SqliLabs项目中的第38至45关,重点讲解了堆叠注入(Stacked Queries)的应用技巧及防御策略。通过实际案例分析,帮助读者理解如何利用和防范此类SQL注入攻击。 ... [详细]
  • KKCMS代码审计初探
    本文主要介绍了KKCMS的安装过程及其基本功能,重点分析了该系统中存在的验证码重用、SQL注入及XSS等安全问题。适合初学者作为入门指南。 ... [详细]
  • 本文详细探讨了在Windows Server 2003环境下遇到MySQL连接失败(错误代码10061)的解决方案,包括通过卸载特定的Windows更新和调整系统注册表设置的方法。 ... [详细]
  • Python作为一种广泛使用的高级编程语言,以其简洁的语法、强大的功能和丰富的库支持著称。本文将详细介绍Python的主要特点及其在现代软件开发中的应用。 ... [详细]
  • 本文介绍了jQuery的基本使用方法及AJAX技术的基础知识,包括选择器、事件处理、DOM操作、动画效果等核心功能,以及如何利用AJAX实现页面的部分刷新。 ... [详细]
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社区 版权所有