Symfony2Book16:Symfony2内部01-概述

简介:

看起来你想要知道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,如需转载请自行联系原作者

相关文章
|
数据安全/隐私保护 块存储
|
前端开发 应用服务中间件 nginx
使用Docker快速搭建Web服务器Nginx
本文指导如何使用Docker快速搭建Nginx服务器。首先,通过`docker pull`命令获取Nginx镜像,然后以容器形式运行Nginx并映射端口。通过挂载目录实现本地文件与容器共享,便于自定义网页。使用`docker ps`检查运行状态,访问IP:8088确认部署成功。最后,介绍了停止、删除Nginx容器的命令,强调Docker简化了服务器部署和管理。
|
前端开发 PHP 数据库
探索PHP的异步编程:ReactPHP入门与实践
【8月更文挑战第31天】 在Web开发的世界中,异步编程正成为提升应用性能的关键。PHP作为广泛使用的后端语言,其异步能力常被忽视。本文将带你了解ReactPHP库如何让PHP异步执行成为可能,通过实际代码示例揭示其背后的原理,并展示如何利用ReactPHP构建非阻塞应用。
|
存储 大数据 关系型数据库
【数据库三大范式】让我们来聊一聊数据库的三大范式和反范式设计
数据库三大范式是指数据库设计中的规范化原则,它们分别是第一范式(1NF)第二范式(2NF)和第三范式(3NF)。第一范式(1NF)第二范式(2NF)第三范式(3NF)
|
机器学习/深度学习 前端开发 JavaScript
WebAssembly:让前端性能突破极限的秘密武器
WebAssembly(简称 WASM)作为前端开发的性能加速器,能够让代码像 C++ 一样在浏览器中高速运行,突破了 JavaScript 的性能瓶颈。本文详细介绍了 WebAssembly 的概念、工作原理以及其在前端性能提升中的关键作用。通过与 JavaScript 的配合,WASM 让复杂运算如图像处理、3D 渲染、机器学习等在浏览器中流畅运行。文章还探讨了如何逐步集成 WASM,展示其在网页游戏、高计算任务中的实际应用。WebAssembly 为前端开发者提供了新的可能性,是提升网页性能、优化用户体验的关键工具。
6875 2
WebAssembly:让前端性能突破极限的秘密武器
|
移动开发 编解码 JavaScript
h5页面在移动端实现禁止缩放、双击放大和双指放大
h5页面在移动端实现禁止缩放、双击放大和双指放大
|
JSON 安全 API
⚡什么是 OpenAPI,优势、劣势及示例
OpenAPI 是一个用于描述RESTful API的标准,它提供了一个接口,使得人和机器无需源代码或文档就能理解服务。它定义了API的结构,与语言无关,适用于REST API。OpenAPI始于Swagger项目,后来成为OpenAPI倡议的一部分,由Linux基金会管理,得到了众多公司的支持。OpenAPI流行的原因包括其语言无关性、可读性、社区支持和工具生态系统。它使用JSON格式,支持各种数据类型,并具有严格定义的结构。虽然有其他如RAML和API Blueprint的竞争格式,但OpenAPI的广泛采用使其成为行业标准。
|
域名解析 缓存 网络协议
阿里云DNS常见问题之新买的域名生效很慢如何解决
阿里云DNS(Domain Name System)服务是一个高可用和可扩展的云端DNS服务,用于将域名转换为IP地址,从而让用户能够通过域名访问云端资源。以下是一些关于阿里云DNS服务的常见问题合集:
|
编译器
(16):深入 Qt5 信号槽新语法
(16):深入 Qt5 信号槽新语法
127 0
|
算法 C++
​LeetCode刷题实战187:重复的DNA序列
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !
219 0