📅  最后修改于: 2020-10-19 03:10:00             🧑  作者: Mango
Symfony基本上是高质量组件和捆绑软件的集合。组件是提供单个核心功能的类的集合。例如,缓存组件提供了缓存功能,可以将其添加到任何应用程序中。组件是Symfony应用程序的构建块。 Symfony具有30多个高质量组件,这些组件已在许多PHP框架中使用,例如Laravel,Silex等。
捆绑包类似于插件,但易于创建和使用。实际上,Symfony应用程序本身就是由其他捆绑软件组成的捆绑软件。单个捆绑包可以使用任意数量的Symfony组件以及第三方组件来提供诸如Webframework,数据库访问等功能。Symfony核心网络框架是一个名为FrameworkBundle的捆绑包,还有一个名为FrameworkExtraBundle的捆绑包,它提供了更复杂的功能。编写Web应用程序的选项。
下图指定了组件,捆绑软件和Symfony应用程序之间的关系。
Symfony的主要目的是相对轻松地编写高质量的Web应用程序。它提供了各种选项来编写从简单的网站到基于REST的高级Web服务的不同类型的Web应用程序。 Symfony将Web框架作为单独的捆绑软件提供。 Symfony Web框架中使用的常见捆绑包如下-
Symfony Web框架基于模型-视图-控制器(MVC)架构。模型代表了我们业务实体的结构。视图根据情况以最佳方式向用户显示模型。 Controller处理来自用户的所有请求,通过与Model交互完成实际工作,最后为View提供必要的数据以向用户显示。
Symfony Web框架提供了企业级应用程序所需的所有高级功能。以下是Symfony Web应用程序的简单工作流程。
工作流程包括以下步骤。
步骤1-用户通过浏览器向应用程序发送请求,例如http://www.symfonyexample.com/index。
步骤2-浏览器将向Web服务器(例如Apache Web服务器)发送请求。
步骤3 -Web服务器将请求转发到基础PHP,然后将其发送到Symfony Web框架。
步骤4 -HttpKernel是Symfony Web框架的核心组件。 HttpKernel使用路由组件解析给定请求的控制器,并将请求转发给目标控制器。
步骤5-所有业务逻辑都发生在目标控制器中。
步骤6-控制器将与模型交互,而模型又通过Doctrine ORM与数据源交互。
步骤7-控制器完成该过程后,它会自己生成响应或通过View Engine生成响应,并将其发送回Web服务器。
步骤8-最后,响应将由Web服务器发送到请求的浏览器。