84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
請問前輩的一些symfony2的使用心得,本人剛學習symfony2,想走一下捷徑,我有兩個問題, 1,學習symfony2那些是必須學,那些是作用不大,我希望能聽一下前輩們的使用心得 2,安裝完symfony2後,你們通常會安裝使用那些bundle? 謝謝
光阴似箭催人老,日月如移越少年。
所以,建議你,用得上什麼用什麼。
另外,僅建議符合下列條件的個人或團隊使用Symfony 2:
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 2:
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一樣可以用,因為你要完成項目,而不是追求什麼高大上。