一个项目的开发会用到cakephp的那些文件呢?

如果你的项目使用cake1.3.6,那么可以参考下面的内容
 
根据我的经验,会涉及一下文件夹:
config
controllers
models
services
vendors
views
webroot
可能还需要
logs
locale
 
我们一个文件夹一个文件夹的看
 
config文件夹
/config/core.php 核心文件,主要是通过Configure::write()和define()定义写全局静态变量
/config/database.php 数据库配置文件
/config/routes.php 路由配置文件

 
controllers文件夹
该文件夹下主要放MVC中的C层的代码,也就是控制层的代码,
在该文件夹下还有个文件夹叫components
在components文件里的文件是这么声明的:
class FilterComponent extends Object{}
这里面的类主要是对部分controller层的公共方法、代码的抽取
在controller文件中通过定义变量$this->components = array('Filter')来声明这个controller会使用这个component,调用方式为$this->Filter->method()

用一个controller时,会先调用每个controller里的beforeFilter(),调用完之后会再调用afterFilter()方
法。所以可以在基类的app_controller里面定义beforeFilter()函数,在里面进行用户身份校验等操作。
 
models文件夹
主要是MVC中的M层的代码,一般是数据库中有一个表,这里就需要有一个对应的model文件
models文件夹下还会有个behaviors文件夹,这里面主要放对model行为进行监听的代码,一般是不需要用的。
model在执行save、find时,会先执行beforeSave、beforeFind,在操作完成之后会执行 afterSave、afterFind函数,所以可以在这些函数中做过滤条件重组、规定关联层数等等
 
services文件夹
如果说component是对controller层的公共代码的抽取,那么services层就是对公共业务进行抽取。
比如我们会把文件导出、验证码生成等公共后台业务放在这个文件夹下
 
vendors文件夹
这里会放我们引入的第三方php代码,以及我们希望组件化的自己写的php代码
比如我们会把时间合适人性化、字符串去html标签等功能放在这里
 
views文件夹
这里就是放MVC中的V层代码了。
一个controller会在这里对应一个以controller名为名字的文件夹,里面放对应的.ctp页面(.ctp实际就是.html页面)
除此之外,这里还会放一个elements文件夹,这里面是对view层的公共代码的抽取。
比如我们会把前端用户头像展示、表单等前台逻辑放在elements里面
 
webroot文件夹
这里一般会配置成网站的根目录
这里面放的是一些前端资源文件了
比如这里面有css、fonts、img、js等文件夹用于放对应的文件
还有.index.php,是网站的唯一入口
还会放favicon.ico文件,这是浏览器tab上的小图标对应的图片

cakephp文件结构的更多相关文章

  1. [转]Patch文件结构详解

    N久不来 于是不知道扔在哪儿于是放这里先 如果你觉得碍事的话 帮我扔到合适的版块去.. 导读这是一篇说明文 它介绍了标准冒险岛更新文件(*.patch;*.exe)的格式文章的最后附了一段C#的参考代 ...

  2. 《深入理解Java虚拟机》类文件结构

    上节学习回顾 在上一节当中,主要以自己的工作环境简单地介绍了一下自身的一些调优或者说是故障处理经验.所谓百变不离其宗,这个宗就是我们解决问题的思路了. 本节学习重点 在前面几章,我们宏观地了解了虚拟机 ...

  3. 了解npm的文件结构(npm-folders)和配置文件(npm-mrc)

    一.npm的文件结构 npm的安装: 本地安装 1. 将安装包放在 ./node_modules 下(运行 npm 命令时所在的目录),如果没有 node_modules 目录,会在当前执行 npm ...

  4. jvm--1.class文件结构

    1.字节码(1)bytecode是构成平台无关性的基石 (2)当jvm发展到1.7-1.8的时候,jvm设计者通过,JSR-292,基本可以让其他语言运行在jvm上面. 如,Clojure , Gro ...

  5. Nova PhoneGap框架 第五章 文件结构

    一个好的项目架构必然有着合理的文件结构,如果一个项目的文件组织混乱,那么可以断言一定是项目架构有问题. 合理的文件结构能够帮你更清晰的管理你的文件,并且当需要添加新的文件的时候,你的程序员很清楚应该加 ...

  6. 再探.NET的PE文件结构(安全篇)

    一.开篇 首先写在前面,这篇文章源于个人的研究和探索,由于.NET有自己的反射机制,可以清楚的将源码反射出来,这样你的软件就很容易被破解,当然这篇文章不会说怎么样保护你的软件不被破解,相反是借用一个软 ...

  7. 【来至百度百科】linux文件结构

    文件结构 /:根目录,所有的目录.文件.设备都在/之下,/就是Linux文件系统的组织者,也是最上级的领导者. /bin:bin 就是二进制(binary)英文缩写.在一般的系统当中,都可以在这个目录 ...

  8. [数据库]cakephp操作ENUM、tinyint等类型的一点说明

    之前无法正常更新ENUM类型的数据,感觉是框架函数实现的bug. 问题很诡异,因为INIT的时候是可以成功写入的,没理由UPDATE的时候不成功. 前后琢磨了一下午,发现了一点蛛丝马迹才终于想通.问题 ...

  9. 最新一代文件结构 超高性能解析IP数据库 qqzeng-ip.dat

    高性能IP数据库格式 qqzeng-ip.dat 编码:UTF8           字节序:Little-Endian 返回多个字段信息(如:亚洲|中国|香港|九龙|油尖旺|新世界电讯|810200 ...

随机推荐

  1. gdb 内存查看

    (gdb) x /4xw 0xc20000000xc2000000:    0x00001111    0x22223333    0x00001111    0x22223333(gdb) x /8 ...

  2. MVC源码学习之AuthorizeAttribute

    常见的Controller定义方式: public class HomeController : Controller { public ActionResult Index() { return V ...

  3. ASP.net中aspx与cs函数的互调

    转载自:http://www.2cto.com/kf/201209/152898.html aspx前台的script函数,调用aspx.cs中后台函数: aspx: <script type= ...

  4. ie6幽灵文字及解决办法

    <!-- ie6 幽灵文字示例 --> <div style="width: 400px;"> <div style="float: lef ...

  5. Fix missing src/main/java folder in Eclipse Maven Project – 2 build path entries are missing

    新建项目没有src/main/java 和 src/main/resources 两个source文件的解决方法: Step 1 : Create a Maven Webapp project. Ri ...

  6. 经典JS

    用apply把document当作this传入getId函数,帮助“修正”this; document.getElementById = (function (func) { return funct ...

  7. Android-FragmentPagerAdapter刷新无效的解决方案

    按照通常使用ListView的习惯做法,如果你只是更新保存Fragment的List数据,然后调用adapter的notifyDataSetChanged()是不会起作用的. 搜索了下发现此问题普遍存 ...

  8. R中ifelse、which、%in%的用法

    R中ifelse.which.%in%的用法 (2014-02-08 13:54:08)标签: 教育 在R学习过程中,遇到了ifelse.which.%in%,下面分别举例,说明他们的用法.1.ife ...

  9. SQL Server 2012 books

    SQL Server 2012 Introducing Microsoft SQL Server 2012 Microsoft SQL Server 2012 High-Performance T-S ...

  10. 【转载】C#之玩转反射

    前言 之所以要写这篇关于C#反射的随笔,起因有两个:   第一个是自己开发的网站需要用到   其次就是没看到这方面比较好的文章. 所以下定决心自己写一篇,废话不多说开始进入正题. 前期准备 在VS20 ...