CakePHP:快速PHP开发框架PHP框架

印迹2020-1-13 819

CakePHP简介:

CakePHP是一个快速开发PHP的开发框架,其中使用了一些常见的设计模式如ActiveRecord,Association Data Mapping,Front Controller以及MVC,其主要目标在于提供一个令任意水平的PHP开发人员都能快速开发web应用的框架,而且这个快速的实现并没牺牲项目的弹性。

CakePHP是一个运用了诸如ActiveRecord、Association Data Mapping、Front Controller和MVC等著名设计模式的快速开发框架。该项目主要目标是提供一个可以让各种层次的PHP开发人员快速地开发出健壮的Web应用,而 又不失灵活性。
CakePHP是一个基于PHP,免费且开源的迅速发展框架最开始从Ruby On Rails框架里得到灵感。

它提供程序员所需要的基本体系架构,因此程序员可以使用它更快速且不失灵活性地创建网络应用程序。而这就是我们创造 CakePHP 的首要目的。

大家对网络开发那千篇一律的步骤或许感到厌烦了。CakePHP 因此提供了开发一个网络程序时所需要的所有工具,您这时只需要编写程序里的详细逻辑就可以了。那每当您要开始一个新的程序的时候,您只需要把 CakePHP 给拷贝一份,接着就可以迅速地开始开发您的程序了。

CakePHP 拥有一个活跃的开发团队以及社区,使 CakePHP 本身更具备应有的价值。另外,使用 CakePHP 也意味着您的应用程序将更容易地测试以及更容易地被改良、更新。

官网:https://cakephp.org/

开源:https://github.com/cakephp/cakephp,下载

特性
CakePHP有多个特点,这些特点让CakePHP成为了快速开发框架中的佼佼者之一。
拥有既友好又活跃的社区
灵活的MIT许可证
兼容PHP5
数据库交互运用了CRUD(create, read, update and delete),即增查改删。
应用程序Scaffolding(脚手架)
代码自动产生(代码产生器)
MVC体系架构
清晰,干净的高度自定义的URLs和路由请求分发器(Request dispatcher)
内置验证机制(validation)
快速灵活的模板机制 (PHP 语法,利用Helpers)
拥有AJAX, JavaScript, HTML表单和更多的视图助手工具
邮件、Cookie、安全、会话(Session),和请求处理的组件
灵活的ACL访问控制机制
数据的清理(Data Sanitization)
灵活的视图缓存(Flexible View Caching)
可在任何子目录里工作,很少甚至不需要更改任何Apache相关配置
本地化
基本原则

CakePHP 框架提供了强大的基础来建立你的应用。它可以处理每个细节,从用户的不同请求,到网页的最终渲染。由于框架符合 MVC 设计模式思想,所以可以轻松地定制和扩展你的应用。

该框架也提供了一个基本的组织结构,从文件名到数据库表名,使你的整个应用保持一致性和逻辑性。这个概念虽简单但非常强大。遵守规则,会使你确切地知道东西在哪儿和它们怎么组织的。

CakePHP的结构

控制器 (Controller),模型 (Model) 及视图 (View) 是 CakePHP 的特色,除此之外它也包含了一些附加的类和对象,使得在 MVC 设计模式下开发更快更有乐趣。组件 (Component)、行为 (Behavior) 及助手 (Helper),提供了可扩展性及可重用性来快速新增功能到你的应用中。我们将站在较高的层级上,接着开始寻找一些关于如何使用这些工具的细节。

一次典型的CakePHP请求

我们已经看过CakePHP的基本成分了,那么就来看看各个对象怎么完成一个基本的请求。继续讲我们之前的请求的例子,想象一下我们的朋友Ricardo刚刚在一个CakePHP的应用的首页上点击了“立刻买一个自定义的蛋糕!”这个链接。

黑色 = 请求的元素, 灰色 = 可选的元素, 蓝色 = 回调方法

1.Ricardo 点击了指向一个URL 的链接, 然后他的浏览器对你的服务器发出了一个请求。
2.路由(route)从URL中解释并提取出这次请求的参数: 控制器(controller), 动作(action)以及其他在这次请求中影响到业务逻辑的所有其他参数。
3.使用路由后,请求的URL被映射到一个控制器的动作中(在特定的一个控制器的类的一个方法)。在这个例子,是CakeController类的buy()方法。在控制器的所有动作逻辑执行之前会调用beforeFilter()回调方法(callback)。
4.控制器可能会使用模型来处理应用的数据。在这个例子里,控制器使用了一个模型从数据里得到Ricardo上次买的东西。在这次操作中所有这个模型适用的回调方法、习惯(behavior)和数据源(DataSource)都可能得到实施。即使模型没有被用到,所有的CakePHP控制器的初始化至少都需要一个模型。
5.当模型取得数据后,数据会被返回到控制器。模型的回调方法可能会被实施。
6.控制器可能使用组件对数据进行进一步的加工,或者进行其他的操作(例如会话处理、验证或者发电子邮件)。
7.一旦控制器使用了模型和组件以有效地准备数据,就可以使用控制器的set()方法把数据传送到视图(view)。在数据送到视图前,控制器的回调方法可能会被实施。视图逻辑会被执行,可能包括了各种元素及(或者)帮助方法。默认情况下,视图会在一个布局(layout)里被渲染。
8.附加的控制器回调方法(像afterFilter)可能被实施。最后,完整的经过渲染的视图代码就被送到Ricardo的浏览器了。

下载解压缩后,在CakePHP目录下会看到这样一些文件和目录:

1. app
2. cake(较高的cakephp版本是lib/Cake)
3. vendors
4. .htaccess
5. index.php
6. README

其中有三个主要的目录:

1.app目录,将是你施展魔术之处——放置你应用程序的地方。
2.cake目录,是CakePHP的核心代码,请不要随意修改这里边的代码,除非你确信自己有这个能力。
3.vendors目录,是放置第三方PHP库的地方。如果在开发过程中还引入一些除CakePHP之外的库,最好放在这个目录下,便于代码的管理。
MVC的定义

CakePHP遵循MVC软件开发模式。 程序开发设计使用MVC分开你的应用程序为三个主要的部分:

1.模型(Model):就是封装数据和所有基于对这些数据的操作
2.视图(View):就是封装的是对数据显示,即用户界面
3.控制器(Control):就是封装外界作用于模型的操作和对数据流向的控制等,简单来说就是负责处理和分发客户的请求

图示 1显示了一个在CakePHP中的大概的MVC请求范例。举例说明,假设一个名叫"Ricardo"的客户刚刚点击了一个“现在购买一个客户自定义的Cake!”的链接在你的应用程序页面。

1.Ricardo 点击一个链接指向 URL, 并且他的浏览器向你的web server发送了一个请求。
2.接着这个分发器检查 URL请求,并且协助这个请求指到正确的控制器。
3.这个控制器就会执行特定的应用程序逻辑。例如,他将检查看Ricardo是否已经登陆。
4.这个控制器也使用模式去获得应用程序数据层的数据。模式通常展现数据库表,但是他们同时也展现(呈现) LDAP(轻量级目录访问协议)入口 entries, RSSfeeds, 或者系统文件。在这个范例中, 这个控制器使用了一个模式(model)从数据库中去抓取、撷取Ricardo的最近的订单。
5.一旦控制器已经开始魔法似的处理那些数据,他支配了那些数据成为一个视图。 视图的得到这个数据并且让它为展现给客户准备好。 在CakePHP视图通常是使用HTML格式, 但是一个视图应该能够很容易的成为一个 PDF, XML 文档, 或者 JSON 对象依赖于你的需求。
6.一旦视图从控制器中获得数据就会呈现一个完成的编译好的视图给大家,那个视图的内容将会被返回到Ricardo的浏览器。
差不多每次请求你的应用程序都将遵循这个基本原则。稍后我们将会增加一些关于CakePHP这方面的细节,所以当我们继续下去时请谨记此点。

为何使用MVC

因为它是一个经过考验的真正的软件设计模型,它可以使程序成为可维护的、模块化的和快速开发的包。使用分离的模型(Model)、视图(View)和控制器(Controller)组织的程序是轻便的。新的特性很容易就被加入,旧的程序换上新的外观也是一下子的功夫。模块化和分离的设计使得开发者和设计者能够同时工作,这包括了快速原型的能力。分离的设计令开发者可以修改应用的一部分而不会影响到其他部分。





http://www.virplus.com/thread-1172.htm
转载请注明:2020-1-13 于 VirPlus 发表

推荐阅读
最新回复 (0)

    ( 登录 ) 后,可以发表评论!

    返回