Symfony可谓是PHP的行业标准,laravel本身很多部分都是基于或来自Symfony,那么这个专场里,Symfony的作者在laravel的国际会议上,一起给大家讲解symfony的由来,它到底标准化了哪些方面、哪些做法?

什么是symfony?

symfony 是 法国常用PHP框架
symfony 2是一系列超过25个PHP组件的组合,每一个组件都解决一个常见的开发问题,都尽量独立地解决其对应问题,不依赖其它的,这样你就可以只安装一个组件,而不用安装其它的。每个组件都尽量提供你需要的所有功能,尽量足够复杂、能够扩展,这样你需要的时候可以自行添加逻辑。这些组件从设计模式、不同语言中吸收思路、理念和最佳实践,比如Perl、python、ruby,甚至java,同时也借鉴别的框架,比如django和spring。

symfony项目,同时也包括同名的全栈框架symfony,这个全栈symfony框架是基于那些组件的,有点像是laravel,laravel可以看作是基于symfony组件之上的,又一个框架实现。

symfony的先进之处举例
symfony作为PHP的业界标准和老大哥,一直在PHP世界里引领创新。十几年前,symfony是第一个倡议开发工具栏的,就像我们laravel常用的那个debugger-bar,如果你看看现在,所有的主流框架,不管是python、ruby还是PHP的,它们也都有类似工具了。

symfony 2以上,还更进了一步,自带性能侧写工具,比如可以看到在处理请求的不同部分,分别花费了多少时间,这个我们laravel到现在还没有呢。

大名鼎鼎的Twig也是symfony的,它是历史上第一个真正的PHP模板引擎,现在drupal、magento 2都在用twig。

再一个例子,十年前,当时很多人还排斥在PHP项目里使用容器的理念,当时在Zend美国会议上就有一个Zend的核心开发人员,明确说Zend框架里绝不会用依赖注入容器,但后来看了symfony 2的容器后,也就是他在zend 2里也实现了容器。symfony 2是第一个使用依赖注入容器的项目,现在就没人会跟你争论,使用依赖注入是有用的,这么个事实了,以及在大的项目使用容器是很好的这个事实。laravel也在用依赖注入容器,是一个基于Pimple的容器,Pimple是symfony作者、也即本次主讲创建的一个很小的容器,当时主要是让PHP开发者们敢于尝试容器的,但我们用过laravel的都知道,这个容器真是给我们带来了无穷的便利。

如何学习symfony,有什么好处?
symfony并不是个黑盒子,它只是一些原生PHP代码,你可以读懂的,每个人都能懂得。但更重要的是,symfony是在实现诸多最佳实践,以及设计模式,这些好东西。学习symfony,就更像是学习那些最佳实践,而不是去太关注symfony代码的具体实现。当阅读symfony代码时,你能学到的大部分东西,都不会只限于symfony自身的,意味着,如果你已经足够了解http协议,或者依赖注入原理,你就能够快速地学好symfony。如果你不懂那些,好消息是你可以用上你在其它技术或语言里学到的那些。

当然了,这里只是说了些symfony的好处,关于更具体的,比如symfony的组件都怎么用,laravel里如何使用的某些symfony组件,这些涉及到代码细节的,就自行观看专场学习吧。

Symfony 框架优势相关推荐

  1. Symfony4中文文档: 安装和设置Symfony框架

    安装和设置Symfony框架 要创建新的Symfony应用程序, 首先确保使用的是PHP7.1 或更高版本并且已经安装Componser. 如果未安装, 请首先在系统上全局安装Componser. 如 ...

  2. symfony php 更新内容,Symfony框架中的Doctrine

    在新的标准版本的Symfony框架中已经集成了Doctrine,Doctrine就是一种对象关系映射(ORM)同时也是一种数据库抽象层(DBAL),使用ORM和DBAL能让我们很轻易的操作数据库.本文 ...

  3. php symfony 安装,Symfony4中文文档: 安装和设置Symfony框架

    安装和设置Symfony框架 要创建新的Symfony应用程序, 首先确保使用的是PHP7.1 或更高版本并且已经安装Componser. 如果未安装, 请首先在系统上全局安装Componser. 如 ...

  4. Symfony 框架实战教程——第一天:创建项目(转)

    这个系列的实战博客真是太有用了,很多例子自己调试也是通的,不同于很多网上不同的实战例子...附上原文地址  https://www.chrisyue.com/symfony-in-action-day ...

  5. symfony框架_为什么我们放弃传统的Symfony框架

    symfony框架 一个成功的组织为什么要抛弃一个拥有活跃的开发人员社区的优秀开源Web开发平台? 这就是我要讲的故事. 如果您不熟悉eZ Systems的名称,请允许我们自我介绍:eZ是商业开源软件 ...

  6. symfony入门学习资料之十六:Symfony框架启动过程介绍

    symfony入门学习资料之十六:Symfony框架启动过程介绍 Symfony框架的核心本质是把Request转换成Response的一个过程.从入口文件(web_dev.php)的源码可以看个大概 ...

  7. php框架symfony,Symfony框架配置

    Symfony框架 是业界领先的企业级PHP框架,由Symfony组件构成.用于构建网站和开发互联网产品. Symfony配置 使用Symfony Installer来创建全新Symfony项目是唯一 ...

  8. php symfony 安装,安装和设置Symfony框架

    欢迎来到Symfony!开始一个全新的Symfony项目是容易的,你的第一个可正常运作的Symfony程序能在几分钟之内配置完成. 为了让创建新程序更加简单,Symfony提供了一个安装器,下载它就是 ...

  9. Symfony框架如何使用的笔记(symfony4.2)

    之前用过symfony2.8系列的版本开发过在线教育的购课网站,所以对这个框架不是太陌生.已经有半年没用过了,今天把最新版4.2的使用笔记记录下来,方便自己和他人对symfony有更深的理解.(未完) ...

最新文章

  1. python scrapy框架原理_Scrapy框架的工作原理是什么?
  2. 计算机网络试题大连工业大学,2016大连工业大学计算机网络考研大纲
  3. CSS 强制换行和禁止换行强制换行 和禁止换行样式
  4. Java wait forever_彻底搞清楚Java并发 (一) 基础
  5. TrinityCore3.3.5编译过程-官方指导-踩坑总结
  6. 斐波那契博弈(证明+结论)
  7. C# StreamReader类和StreamWriter类
  8. jmeter 计数器_JMeter函数
  9. MyEclipse 7.0 用java代码生成序列号
  10. php gif 切成一帧,GIF动画帧提取器 如何截取gif的每一帧图片
  11. android日期选择区间控件_Android日期时间选择器实现以及自定义大小
  12. Spring源码系列(十一)——Spring源码总结
  13. 网页爬虫:零基础用爬虫爬取网页内容
  14. 一个初学者的辛酸路程-Python基础-3
  15. Echarte柱状图文字位置
  16. 土方测量-挖方填方量的计算思路
  17. ABAP 数据的基本输出Write简单用法
  18. ADB常用命令(adb常用命令)
  19. Vue.js学习笔记—shop-bus:实战:利用计算属性、指令等知识开发购物车
  20. 如何对复杂网络建模所需要的数据进行预处理

热门文章

  1. 深度学习7 Transformer系列实例分割Mask2Former
  2. 光纤交换机是什么?光纤交换机品牌ONV/光网视
  3. 数据库 蚂蚁_蚂蚁集团把夺得世界第一数据库的 OceanBase 独立公司化
  4. Moment函数上周/上月/今年/去年等时间开始和结束数组
  5. 权限维持之:SID History 域控权限维持
  6. UE4模型整体导入流程
  7. Collections.sort()排序使用TimSort排序报Comparison method violates its general contract 原因
  8. linux下使用命令lha压缩成.lzh文件包
  9. 计算机科学与技术导论的课后题答案,《计算机科学导论》课后习题答案
  10. MySQL ERROR 1709 (HY000)