7个使用Symfony的理由

By admin, 23 十一月, 2015

1. 这是一个被很多其它著名框架或PHP应用所使用的框架

包括Drupal、phpBB、Laravel、Joomla、Composer、Magento、Piwik。

2. 教程和demo写得非常好

教程不但解释用Symfony怎样用,还通过很易懂的方式解释了Symfony的原理、HTTP的基本知识、MVC的概念等,并且不会令有经验的程序员觉得教程冗长。Drupal和Laravel都使用了Symfony,但Drupal和Laravel的教程远没有Symfony解释得令人明白,学习Drupal和Laravel的时候是有必要把Symfony也学习一下的。

输入以下命令即可下载一个完整可运行的demo程序,方便的超乎想象。demo程序分前端和后端,并且每个页面都可展示当前PHP代码,非常直观,甚至决定很神奇。神奇的东西还有demo的数据库,它用了不需要服务进程的SQLite,让习惯了MySQL的程序员觉得这个PHP demo为什么有数据库功能而感到莫名其妙。demo的外观设计时尚,让人一看就觉得是现代互联网站风格。

symfony demo

教程还把安全、缓存等内容都介绍得比较详细,可以学习到专业的技术。如果使用一般简单的PHP框架对这些内容不会有太深的体会。使用简单PHP框架的结果是,网站不安全,没有缓存,但依然能正常运作,开发者也不知道自己在这些地方的知识有待提高。

3. YML方式支持用户、角色的支持及权限控制

这种支持可以通过yml文件配置,密码也可以用加密方式存储。这么方便的方式是我在其它PHP框架中没有见到过的。权限控制可以通过注释的方式实现。角色支持嵌套关系,比如说管理员角色可以包含普通注册用户角色权限、新闻编辑用户角色权限、后台数据处理角色权限。这种角色结构比Drupal的角色结构更为先进。

4. 支持多语言机制

Symfony支持多语言,而且在demo中就已经支持,而大部分PHP框架是不支持的。可以看出Symfony的起点是比较高的,立足于构建大项国际化的网站。

5. 方便的开发模式及命令行工具

通过app_dev.php的开发模式,不但可以看到错误堆栈,还可以看到加载时间、数据库查询时间、内存占用等性能分析数据,非常方便。

在命令行下运行以下命令可以把显示出所有配置:

app/console config:dump-reference framework

而下面命令则可以显示出所有路由,整个网站结构一目了然!

app/console debug:router

在NetBeans中,有专门为Symfony框架以及其使用的twig模板引擎的优化设置。说明这是一个历史悠久、使用广泛的框架。相信其它编辑器也有类似的优化。

6. 优秀的模板引擎、ORM引擎及Form处理机制

Symfony2所采用的模板引擎twig被认为是最好的模板引擎之一。(不过这种模板不是自然模板,和原生的html语法有些差距,也不能运行原生PHP语句。)

Symfony2采用的Doctrine2 ORM引擎和Laravel采用的Eloquent引擎是被认为最优秀的ORM引擎之一。

大部分PHP框架都没有一套完整的Form表单处理机制,据我所知只有Drupal有类似机制。一般都是通过原始的HTML代码+PHP去实现。Symfony有一套完整的Form处理机制,让这一流程更好管理。

7. 丰富的模块

Symfony有许多基础的component用于支持框架底层基本功能,也有许多Bundles用于提供常用的上层应用功能。当我们构建一个很庞大的网站的时候,选择一个有很多现成的、可重用的模块是提升效率的关键。

相关文章:7个不使用Symfony的理由

标签

评论1

Restricted HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id> <img src>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。
验证码
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.
请输入"Drupal10"

是大法官水电费 (未验证)

6 years 6 months 之前

是大法官水电费公司的水电费公司的