1、symfony2这种量级的框架怎么可能有捷径可走?其定位是松藕合和易扩展,并不是很容易的事。sf2是靠configuration系统(它可以把各种语义化yml配置转为数组)和服务容器概念来实现的bundle的分发,因此其灵活强大的extension架构,并非口头说的那么简单,用起来也有门槛,你不得不使用compiler pass来对各种依赖实施特殊注入。而这一块正是其他php框架难以超越sf2的关键所在。

对symfony2来说,理论与实践同样重要,一般来说一年之内很难入门,需要两三年才能入门。而且英语必须,爬出必须。

现在的symfony2因为表现出色,已经逼得zend framework3不得不重新包装、重新推出。因此如果你想扎实掌握现代php开发,应该从底层,也就是http、request、response这些角度,来理解究竟sf2 component中的kernel/httpkernel是怎样运作的?然后才是其他的组件和功能。这其中,“事件”组件是极其重要的,event_dispatcher也是sf2的灵魂。官方几本2.6版的pdf全部下载,每本都是400页,里面30来个组件,按我的理解一个也绕不开,外加doctrine的400页,和twig的160页。最好找1毛1页的打印店,全部打出来装订上,以备随时参阅。

不过,2.7版有重大变化,因为是承上启下的,直接对接3.0。尽管如此,2.6还是有必要全面掌握。2.7/2.8是向下兼容并长期维护的,再往上就不兼容了。

当你能够使用symfony2开发东西时,你的项目自然是最好的,至少你不会也没有必要再羡慕其他任何web开发语言的框架。symfony2生成东西是很快的,页面本身也是可以定制和扩展的。无论是表单环节还是会员环节(即开发中绕不开的安全验证/角色授权),都可以自动化,真的是非常简单,不需要太多关注(当然sf2-form和sf2-security的原理一定要懂,里面有很多概念,比如transform或是voter都是必须掌握的)。如果使用ORM很多东西确实与传统web开发不太一样,比如Django的Admin在symfony2中有更完美解决方案,强大到令人不可思议。

2、knpbundles.com第一页的前10个,全部要装,都会用到。其他还有很多,因为在symfony哲学里是不可以随便发明轮子的。比如,Guzzle,Geshi,Geocoder等第三方的包,不一定非得是被好心人封装成bundle,随便任何一个library(乃至Zend2中你喜欢的库),你可以原封不动的扔到Vender中,利用symfony2提供的自动加载,立即使用。至于像是google map、fckeditor、markdown等常用工具皆早已被封装成bundle直接composer下载。

说到composer,大家应该明白,正是symfony2的刚需促成了composer的诞生。不过现在sf2本身的安装已经不利用composer了,只有bundle会用。composer.phar的核心就是symfony2的console component。

接楼上观点回几句:按我的理解,sf2是可以有两种玩法,一个是少数精锐,做出大网站;一个是规模团队,做出惊人的web产品。sf2之所以强,就是因为他可以开发出网站以外的“高端互联网产品”(这个面儿很广,大家可以到sitepoint搜symfony2或到官网成功案例中自研,laravel这种只是其一),而做一个网站对sf2来说是不需要太多人的,该框架的底层封装和底层便利,以及具有空前扩展能力和自定义能力的第二方(symfony项目的不少灵魂人物都有自己的bundle,比如FOS、KNP、stof,JMS,sonata这些专家级的)、第三方bundle(世界级的php程序员),可以保证你的项目质量。

难就难在我们是否具备对框架的理解能力和操作能力。如果你会了sf2(主要是DIC、EVENT、FORM、SECURITY这四个是必须精通的,开发过程可以使用annotation来减少代码总量,并减少从controller等php文件往yml文件中切换的次数),你再回过头来看看thinkphp3,你会赞叹tp3相较前代的进步,而如果你查看think的底层代码你会觉得“的确非常简单”,真的。如果sf2上不了手,tp3一样可以用,因为你要完成项目,而不是追求什么高大上。

某网站看到的某神的Symfony_使用心得的更多相关文章

  1. 【网站支付PHP篇】thinkPHP集成汇潮支付(ecpss)

    系列目录 支付宝集成:http://www.cnblogs.com/nerve/p/3437879.html 系列说明 最近在帮朋友的系统安装支付模块(兑换网站积分),现在总结一些开发心得,希望对大家 ...

  2. 【网站支付PHP篇】thinkPHP集成支付宝支付(担保交易)

    目录 系列说明 开发环境 部署支付宝 支付请求 支付宝返回处理 系列说明 最近在帮朋友的系统安装支付模块(兑换网站积分),现在总结一些开发心得,希望对大家有用.这个系列会讲以下第三方支付平台的集成: ...

  3. Sublime Text 2 快捷键 插件配置

    一.前言之前 从设计到前端,有过一段时间是懵懵懂懂的状态,缺乏对整个职业更加深入的了解.后来混迹于各个前端大牛的博客,在各个QQ群里聆听各路大神的经验之谈,坚定了前端之路的信心.一直收藏各类精华的帖子 ...

  4. Git的简单的基本使用

    前言: 接触了Android Studio,自然是知道了Github这个网站,这个网站有许多大神们做的开源库,我们只需要简单地引入就是可以使用到这些开源库从而实现酷炫的效果,最近也是刚接触到Git的使 ...

  5. [C#]基于命名管道的一对多进程间通讯

    在工作中碰到了一个进程间通讯的问题,大概是这样的: 项目本身是.net Core做的,但是有部分功能Core中不方便实现,有的是依赖Framework,有的是因为权限和安全问题. 那基于这个问题,问了 ...

  6. Asp.net Core认证和授权:JWT认证和授权

    JWT验证一般用户移动端,因为它不像cookie验证那样,没有授权跳转到登陆页面 JWT是json web token的简称,在  jwt.io 网址可以看到 新建一个API项目,通过postman ...

  7. flask+apache+mod-wsgi部署遇到的坑

    首先,看到这种方式部署,我也有疑问,为什么不用nginx,gunicorn.接手的项目,就先按照前人思路run起来. 线上使用ubuntu系统,apache2,而给我玩耍的测试机是centos6.5, ...

  8. mendeley不能做中文批注的解决方案

    mendeley是一个很好用且免费的文献管理工具,但在ubuntu系统下,对文献进行批注无法切换中文输入法,实际上对ibus是支持的,但ibus实在是太难用,大部分ubuntu用户钟爱的还是fcitx ...

  9. seo搜索优化教程13-SEO搜索引擎站点收录

    为了使大家更方便的了解及学习网络营销推广.seo搜索优化,星辉科技强势推出seo搜索优化教程.此为seo教程第13课 想要用户能够在搜索引擎中通过关键词搜索到您的页面信息,首先要做的是让搜索引擎收录您 ...

随机推荐

  1. SolrCloud攻略

    SolrCloud攻略 近期一直在使用SolrCloud,乘着酒醉大概总结一下. 1.安装 原来一直有个误区,认为SolrCloud启动时,必须至少有个core才可以,其实不然. 首先按照Solr官方 ...

  2. DDD社区官网

    DDD社区官网上一篇关于聚合设计的几个原则的简单讨论: 聚合是用来封装真正的不变性,而不是简单的将对象组合在一起 聚合应尽量设计的小 聚合之间通过ID关联 聚合内强一致性,聚合之间最终一致性 从聚合和 ...

  3. Java学习笔记——MySQL的安装使用以及SQL语法简介

    在 Java 的开发中,数据库的应用是非常必要的,下面,我们为Java对于数据库的应用做一些必要的准备工作.. Java 对数据库的应用统称为 JDBC. JDBC(Java Data Base Co ...

  4. WinForm酒店管理软件--框架

    WinForm酒店管理软件--框架 搞软件开发4年多了,现在自认为还是菜鸟,从一开始走上工作岗位各种技术对我都很新奇没解决一个问题都觉得很伟大到后来开始对出路的迷茫,到现在我坚信学什么技术不重要,做什 ...

  5. LigerUI权限系统之角色管理

    角色管理比前面几个页面都稍显复杂点.好吧,还是先看图. 左边是角色列表,右边是页面列表,它们也是多对多的关系,即一个角色可以访问多个页面,同时一个页面也可以被多个角色访问. 点击左边的角色,刷新右边页 ...

  6. mac系统及xcode使用的SVN客户端升级

    mac系统及xcode使用的SVN客户端升级 当前的SVN版本已经升级到1.8.x了,但mac系统自带的以及xcode使用的SVN客户端版本没有跟着升级,还是1.6.x的版本.为了解决隐藏目录.svn ...

  7. 谷歌、flick网站图片 一次性下载 javaWeb项目 多线程下载,

    源码下载:http://download.csdn.net/detail/liangrui1988/5760473

  8. 《Head First Python》学习笔记 01

    Python 3提供了70多个内建函数,这是Python“功能齐全”的观点:Python已经包含足够多的内置功能,使你能完成大多数工作,而不必依赖第三方代码. Python 列表: Python列表是 ...

  9. Wireshark抓包介绍和TCP三次握手分析

    wireshark介绍 wireshark的官方下载网站: http://www.wireshark.org/ wireshark是非常流行的网络封包分析软件,功能十分强大.可以截取各种网络封包,显示 ...

  10. 黑马程序员:Java基础总结----正则表达式

    黑马程序员:Java基础总结 正则表达式   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 正则表达式 import  java.util.regex.*; 符合一定规 ...