一个项目的开发会用到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. 【微信小程序】使用setTimeout制作定时器的思路

    setTimeout(func, time)可以使得每隔time毫秒就执行一次func函数,常用来做计时器/时钟. 下面是在微信小程序中的使用思路,只截取了关键部分代码. var timer; // ...

  2. Postgres客户端编码问题

    数据库编程的编码问题数据库编程设计的编码问题包括三个方面:    数据库服务器编码:    数据库客户端编码:    本地环境编码.(1)数据库服务器字符编码:数据库服务器支持某种编码,是指数据库服务 ...

  3. java你可能不知道的事(2)--堆和栈<转>

    在java语言的学习和使用当中你可能已经了解或者知道堆和栈,但是你可能没有完全的理解它们.今天我们就一起来学习堆.栈的特点以及它们的区别.认识了这个之后,你可能对java有更深的理解. Java堆内存 ...

  4. Knockout开发中文API系列3–使用计算属性

    计算属性 如果你已经有了一个监控属性 firstName和lastName,如果你想显示全名该怎么做呢?这个时候你就可以通过计算属性来实现,这个方法依赖于一个或多个监控属性,如果任何依赖对象发生改变他 ...

  5. window.print()局部打印三种方式

    首先准备要打印的内容,也可以打印时再填充,html中定义如下: <!--startprint--> <div id="printcontent" style=&q ...

  6. drupal模板命名规则

    1.block--[region[module--delta]].tpl.php基于主题文件: block.tpl.php block--module--delta.tpl.phpblock--mod ...

  7. spring框架中的@Import注解

    spring框架中的@Import注解 Spring框架中的@Import注解 在之前的文章中,作者介绍了Spring JavaConfig. 这是除了使用传统的XML文件之外,spring带来的新的 ...

  8. this inspection reports usage of the default file template for file header

    使用idea创建一个java class的时候会出现如下的warning: this inspection reports usage of the default file template for ...

  9. Matlab查看数值不用科学计数法显示

    如图: 运行结果显示的是科学计数法的数据 输入命令“format long g”  -->  Enter -->  输入需要转换的数据 即可显示.

  10. Php5.5新特性 Generators详解

    在PHP5.5.0版本中,新增了生成器(Generators)特性,用于简化实现迭代器接口(Iterator)创建简单的迭代器的复杂性. 通过生成器,我们可以轻松的使用foreach迭代一系列的数据, ...