• Symfony 的优缺点


    主要是提高了代码的抽象级别。相对于简单的,直接暴露底层概念的 PHP 语言,Symfony 提供了一套解决特定工程问题的概念和工具,帮助广大的 Coder 的减少重复性工作。抽象化意味着能用更简洁的东西表达复杂的概念,流程等。
    由于 Symfony 建立在简单直接的 PHP 之上,学习曲线相对平缓。Symfony 已经写了一年多了,对我来说的好处,是让我明白了“有各种各样的方式来简练代码”,“简练的代码的诸多好处“,以及”到底简练了什么东西“。
    学了一段时间的 Rails,喜欢上了。PHP 终归是一门单纯的语言,简单的语法,少有的高级概念,让它学起来轻松,但也限制了它的表达能力。

    Symfony 组件的一些使用介绍:

      • 路由:能限制 hostname,这就让有大量公共功能的网站可以共用一套代码;URI 识别支持 Reg 检测,让 url 能定义的随心所欲;支持前缀,便于模块化
      • Twig模板:这是我最喜欢的一个组件。它让我有本事把模板也弄得非常优美,基本上就是给模板弄了一套类似面向对象的机制,extend 算是继承,block 算是覆盖,include 算是接口。只需套用平时整理对象的那些习惯,就能把 html 页面当成 php 文件来整理了。写个 filter 对 Twig 来说,就像写个 c扩展 给 PHP,一个全局函数。
      • composer包管理:让使用第三方 bundle 变得很容易,虽然经常有些第三方的代码质量让我胸闷,但终归能凑合凑合,不用自己动手已经谢天谢地了。
      • Event,Listener 和 Services 这三个概念:可能现在写的网站还不是非常复杂,除了第三方组件外,基本没用到。不得不说,这三真让我蛋疼,到现在我都没记住到底哪个玩意该写到哪个地方,即使以前写过的东西,要弄明白也得半天。又没有整理过的文档,找个对路的 Event 还得到代码里面上蹿下跳,嫌弃我头发没白啊,真是。
    • Doctrine ORM:目前我觉得很大的好处是不用去纠结于数据库的细节,而只需仔细的设计需要持久化的对象。对象之间的关系可以自由设计,从生成数据库结构到生成查询语句的过程都不用再操心了。而且 twig 里面可以调用对象的方法,这的好处就太多了。当然我认为这也有些坏处,完全抽象了关系数据库带来的后果是在代码里面体现不出为了性能所做的妥协,天马行空般的设计对象后就是惨不忍睹的性能。还有功能我没用过就不做评价了。
    • asset:我也不清楚对应的概念叫什么,反正代码里面用的这个。写 js css sprite和 css 的时候有个问题就是不同的页面需要的功能不一样,而这个小东西可以将 js 和 css 写到不同的小文件里面,然后前台还是只请求一个 js ,后台可以用 yui compress 合并。
    • Listener 和 Service 。
    • Form组件:Symfony 提供了 form 生成,提交以及验证的功能,通过Form 组件可以很方便的利用。这里我认为最大的意义是抽象了所有的提交过程,增删改查这些 Controller 都可以写到基类里面,对于整个 form 的更改就只用修改对应的 formType 就行了。而且托了 Twig 的福,模板也是一样的情况。(刚接触的时候是很奇怪的概念,后来多写点代码就能感觉到 Form 的好处)

    性能是个问题,优化的空间很大,但你至少的是常读源代码的这个级别才能让它的性能上得了台面。学习成本高也是个问题,类似于学习 vim 的感觉,熟悉起来非常美好,不然的话...

  • 相关阅读:
    模版继承
    用一个指向int的指针来存储一个对象的地址。
    mysql 增 删 改 查
    虚函数背后的秘密2
    二叉树的应用—最优二叉树(哈夫曼树)
    虚函数
    经典贪心,哈夫曼编码。
    以下代码有什么问题?
    前缀运算和后缀运算
    虚函数背后的秘密
  • 原文地址:https://www.cnblogs.com/kaeloy/p/3415334.html
Copyright © 2020-2023  润新知