看起来你想要知道Symfony2是如何工作的,以及要如何对它进行扩展。这让我非常高兴。本节深入Symfony2内部,对其进行说明。
如果你想了解Symfony2是如何工作的,或者你想扩展Symfony2的话,你只需要阅读本节。
Symfony2的代码由几个独立层构成,每层都构建在上一层之上。
自动加载没有被框架直接管理;它是在UniversalClassLoader类和src/autoload.php的帮助下独立实现的。更多信息请阅读专用章节。
HttpFoundation组件
最底层是HttpFoundation组件。HttpFoundation提供处理HTTP所需的主对象。它是一些PHP函数和变量的面向对象的抽象:
- Request 类抽象出主要的PHP全局变量。如$_GET、$_POST、$_COOKIE、$_FILES、和 $_SERVER;
- Response类抽象出一些PHP函数。如header()、setcookie()和echo;
- Session类和SessionStorageInterface接口抽象会话管理函数。如session_*()。
HttpKernel组件
HttpFoundation层之上是HttpKernel组件。HttpKernel处理HTTP的动态部分;它是一个Request和Response类的瘦封装,是规范请求处理的方式。它也提供了扩展点和工具,使之成为一个理想的基点,用以创建一个没有太大负载的Web框架。
它也可以增加配置性和扩展性,感谢依赖注入组件和强大的插件系统(Bundle)。
请阅读更多关于HttpKernel组件的内容、阅读更多关于依赖注入和Bundle的内容。
FrameworkBundle组件
FrameworkBundle组件是联系主要组件和库的钮带,它用于构建一个轻量级的、快速的MVC框架。它具有合理的缺省配置和约定,用以缓和学习曲线。
本文转自 firehare 51CTO博客,原文链接:http://blog.51cto.com/firehare/587277,如需转载请自行联系原作者