一个项目的开发会用到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. 机器学习笔记,使用metrics.classification_report显示精确率,召回率,f1指数

    sklearn中的classification_report函数用于显示主要分类指标的文本报告.在报告中显示每个类的精确度,召回率,F1值等信息. 主要参数: y_true:1维数组,或标签指示器数组 ...

  2. Virtools元素、类和面向对象设计

    无意中发现了在某个不存在的网站( https://sites.google.com )上,还存有09年写的一些半成品教材,下面这篇文章就是其中一部分. 概述 Virtools将元素(Element)组 ...

  3. Java NIO 系列教程 <转>

    Java NIO提供了与标准IO不同的IO工作方式: Channels and Buffers(通道和缓冲区):标准的IO基于字节流和字符流进行操作的,而NIO是基于通道(Channel)和缓冲区(B ...

  4. 在controller中无法通过注解@Value获取到配置文件中定义的值

    1. 默认的我们通常只在dao层用到jdbc的配置,然后使用到@Value注解获取到值. 这时候会在spring-dao扫描中加入下面配置 <context:property-placehold ...

  5. H2O中的随机森林算法介绍及其项目实战(python实现)

    H2O中的随机森林算法介绍及其项目实战(python实现) 包的引入:from h2o.estimators.random_forest import H2ORandomForestEstimator ...

  6. Sql Over的用法

    转载自:http://www.cnblogs.com/lanzi/archive/2010/10/26/1861338.html OVER(PARTITION BY)函数介绍 开窗函数 Oracle从 ...

  7. hbase源码系列(四)数据模型-表定义和列族定义的具体含义

    hbase是一个KeyValue型的数据库,在<hbase实战>描述它的逻辑模型[行键,列族,列限定符,时间版本],物理模型是基于列族的.但实际情况是啥?还是上点代码吧. HTableDe ...

  8. RavenDb学习(四)处理文档相关性

    RavenDb是文档型数据库,但是我们常常也需要定义对象之间的关系,那RavenDb当中是如何处理的呢? RavenDb提供了优雅的解决方式,使用正确的话,可以减少数据开销以及网络拥堵 Denorma ...

  9. Casual Note of OS

    20170104 冯诺依曼计算机(遵循冯诺依曼结构设计的计算机:存储器.运算器.控制器.输入设备.输出设备)之前也有计算机,不过在那之前的计算机是专用的,不可编程,只能干特定的事情没法干其他事.与之前 ...

  10. R语言常用基础知识(入门)

    data.frame 动态确定列名称 var <- "mpg" #Doesn't work mtcars$var #These both work, but note tha ...