CakePHP中文手册【翻译】-基本概念

基本概念

1

介绍

本章是对MVC概念的一个短小而且随意的介绍,因为这些概念在Cake里得到实现。如果你是一个MVC模式的新人,很显然本章就是为你而写的。我们从MVC的一般概念的讨论开始,然后以我们自己的方式切入到CakePHP里的MVC的特定应用程序,并且展示一些简单的使用MVC模式的CakePHP例子

2

MVC模式

Model-View-Controller是一软件设计模式,它帮助你把逻辑和代码进行分离,使代码变得更加可重用,可维护,变得更加优秀。MVC由四人帮第一次描述。Dean Helman写到(它精确来自Objective Toolkit Pro白皮书):

    "MVC是一种打破应用程序的方式,甚至仅是一段应用程序的接口,它分成3部分:模型(Model),视图(View),以及控制器(Controller)。MVC的开发原本是为了将传统的输入,处理,输出的角色转化为GUI的层面。

     输入->处理->输出

     控制->模型->视图

 

用户的输入,外部世界的建模,以及用户的可视化回馈都被模型,视图以及控制对象进行分隔和处理。控制器解释了鼠标和键盘的用户输入,并将这些用户操作映射为命令发送到模型和/或视图口(port),并做出适当的改变。模型管理一个或多个数据元素,并响应它的状态查询以及响应改变状态的指令。视图口管理矩形的显示区域,并负责以图形和文本的组合方式将数据呈现给用户。

 

Cake里,Model代表了一个特定的数据库表/记录,以及与其他表和记录的关系。Model也包含数据的验证规则,当插入或更新model数据时会采用这些规则。View代表Cake的视图文件,他们是正规的嵌入PHP代码的HTML文件。CakeController处理来自Server的请求。它采用用户输入(URLPOST数据),应用业务逻辑,使用Model从数据库和其他数据源读写数据,最后将输出的数据发送到合适的view文件。

 

为了尽可能简单的组织你的应用程序,Cake使用这个模式,不仅管理这些对象如何和你的应用程序交互,而且还管理文件如何保存,这将在下面详细介绍。

3

当你在Server上解压缩Cake包时,你会发现有3个主要的文件夹:

      app

      cake

      vendors

 

cake文件夹是Cake层的核心库所在之处,一般来说,你永远不需要接触他们。

 

app文件夹是你的应用程序文件夹和文件所在之处。对你来说,cakeapp文件夹的分离,让有多个app的文件夹共享单个Cake库变为可能。这同时也让CakePHP的更新变得更为简单:仅需要下载最新版本的Cake,然后覆盖当前的核心库即可。没有必要担心它会覆盖某些编写的应用程序的东西。

 

你可以使用vendors目录维护第三方库。后面将学习更多关于vendors的知识,但是基本的概念是,你可以使用Cakevendor()方法访问vendors目录下放置的类。

 

让我们看看整个层次结构:

/app

    /config            - 包含数据库,ACL等的config文件

 

    /controllers         -  Controller在这里

        /components   - Components 在这里

 

    /index.php         - 允许你用/app作为DocumentRoot来部署

 

/models            - Models在这里

 

    /plugins            - Plugins 在这里

 

    /tmp              -用来存放cachelog

 

    /vendors          -包含此应用程序的第三方库

 

    /views            - Views 在这里

        /elements     -元素,少量视图

        /errors        -自定义的错误页面

        /helpers       - Helper

        /layouts       -应用程序的布局文件

        /pages        -静态的视图

 

/webroot          -应用程序的 DocumentRoot

    /css

        /files

        /img

        /js

 

/cake                  -Cake的核心库。不要编辑任何文件

 

index.php          

 

/vendors              -server级的第三方库

 

VERSION.txt           -让你知道你正在使用哪个版本的Cake


Last Updated:2006年11月30日

posted @ 2006-11-01 18:33  张太国  阅读(...)  评论(...编辑  收藏