請問symfony2一些使用心得
大家讲道理
大家讲道理 2017-05-16 16:45:01
0
2
461

請問前輩的一些symfony2的使用心得,本人剛學習symfony2,想走一下捷徑,我有兩個問題, 1,學習symfony2那些是必須學,那些是作用不大,我希望能聽一下前輩們的使用心得 2,安裝完symfony2後,你們通常會安裝使用那些bundle? 謝謝

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回覆 (2)
習慣沉默
  1. Symfony 2的組件可以拆開用(zend2等等都是這樣,受益於composer)
  2. 各Bundle也是透過composer隨用隨取

所以,建議你,用得上什麼用什麼。

另外,僅建議符合下列條件的個人或團隊使用Symfony 2:

  1. 執行面對物件設計
  2. 多人協作(多不算)
  3. 開發-測試-部署的過程中,會運用腳本或實作持續整合
  4. 尋求共同語言,有興趣融入一個大的氛圍
  5. 最後一條,可以不會英語,但至少打算學英語
    世界只因有你

    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一樣可以用,因為你要完成項目,而不是追求什麼高大上。

      最新下載
      更多>
      網站特效
      網站源碼
      網站素材
      前端模板
      關於我們 免責聲明 Sitemap
      PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!