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
是大法官水电费
是大法官水电费公司的水电费公司的