Symfony2学习笔记二: 框架的工作原理

Symfony2学习笔记二: 框架的工作原理_第1张图片

从Requests(请求)链接开始,根据不同的请求调用前台的controller(控制器),由controller调用系统核心功能对请求的URI资源进行Routing(路由)解析,再根据解析的结果调用不同action函数,生成Responses(响应数据)并返回。


其中,不同的链接都对应不同的controller,系统是如何判断的呢?

不同的链接就必须在app/config/routing.yml文件中进行配置,例如要添加/contact链接(通过index.php/contact访问),配置如下:
contact:
path: /contact
defaults: { _controller: AcmeDemoBundle: Main: contact  }

该配置的意思是当用户请求index.php/contact,路由系统根据配置执行 MainController类的 contactAction函数

MainController类部署如下:
//src/Acme/DemoBundle/Controller/MainController.php
use Symfony\Component\HttpFoundation\Response;
class MainController
{
   public function contactAction()
   {
    //do something 实现功能,这里返回一个带h1标签的"Contact us!"输出
     return new Response('<h1>Contact us!</h1>');
   }
}

标准组件

Symfony框架允许我们自由地创建自己的应用程序,并且大量的内置工具来协助完成各种各样的任务(如持久化数据库,渲染视图,发送邮件,处理提交数据,验证用户输入,安全处理)

Symfony本身包含超过了20个核心的相对独立组件,每个组件实现不同的功能:

HttpFoundation( HTTP处理):其中包含request类和response类,主要处理HTTP的请求和响应;session处理;Cookie处理;上传文件等

Routing( 路由 处理):解析URI资源,根据分析的结果执行操作

HttpFoundation( HTTP处理):,其中包含request类和response类,主要处理HTTP的请求和响应;session处理;Cookie处理;上传文件等

Form( 表单处理):Symfony提供Forms组件帮助我们快速创建表单,以及处理表单提交的任务

Validator( HTTP处理):定义验证规则,验证用户提交的数据

ClassLoader( 类加载):自动加载,让开发者不通过require方式包含文件即可调用指定的类

Templating( 模板):可将获取的数据渲染到html模板中,实现逻辑与展示分离

Security( 处理安全性问题

Translation( 语言翻译):实现多语言的功能

你可能感兴趣的:(Symfony2学习笔记二: 框架的工作原理)