Symfony2框架的工做原理
从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(语言翻译):实现多语言的功能
欢迎关注本站公众号,获取更多信息