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