Symfony核心类
Symfony的MVC方式使用了一些你以后会经常碰到的类
l sfController是控制器,他解码请求并专递至动作(action)
l sfRequest存储了所有的请求元素(参数、Cookies、头信息等等)
l sfResponse包含了响应头信息和内容,这些是最终要转换为HTML并送与用户的东西
l 一个上下文(通过sfContext::getInstance()获取)保存了所有核心对象的参考和现有的配置信息,他可以在任何位置被访问。
就像你看到的,所有的symfony类使用sf前缀,这可以避免和你自己的类或变量冲突,而且可以使核心框架的类容易识别。
代码的组织
你已经知道了symfony应用的不同组成,但也许还不知道他是如何组织的。
项目结构:应用、模块和动作
在symfony里,一个项目是一组制定域名下的服务和操作,他们共享对象模型。
一个项目是由多个应用组成,一个应用有多个模块组成,一个模块可以包含多个动作。
项目结构图:
Symfony的根树结构及描述
| 包含了项目的应用,一个应用对应一个文件夹 |
Batch/ | 包含用于命令行执行或者调度的PHP代码 |
Cache/ | 缓存文件夹,需要777的权限 |
Config/ | 保存项目的基本配置 |
Data/ | 存放项目的数据文件,比如数据库结构、创建数据表的SQL文件,或者SQLite的数据库文件等 |
Doc/ | 存放项目文档,包括你自己的文档和PHPDoc产生的文档 |
Lib/ | 数据模型 |
Log/ | 日志文件夹,需要777权限 |
Plugins/ | 存放在应用中安装的插件 |
Test/ | 半酣单元和共性测试 |
Web/ | WEB服务的根 |