2012-06-29 37 views
34

之間的區別,我想嘗試的Silex,但我的一些問題。Symfony和Silex的

我知道使用Symfony2的,我想知道,如果Silex的是非常不同的Symfony的或者是同樣的事情(相同的操作,同樣的代碼......)?

此外,Silex的是建議報告對小PHP項目,Symfony的爲中型或大型項目,這是真的嗎?

回答

45

值得注意的幾件事情:

  • Silex的是基於Symfony2的組件,就像Symfony2的框架。因此,它可以被認爲是組件的替代用戶界面(用戶是Web開發者)。
  • 由於他們使用相同的基礎,他們之間的遷移應該相對容易。
  • 就像Symfony2一樣,Silex主要是一個控制器框架。它爲您提供了一些結構,但模型和視圖部分由第三方庫(如Twig或Doctrine)處理。
  • 由於您的業務邏輯不應該在你的控制器,無論如何,如果你在項目規模上的代碼中分離出來,並保持你的控制器光,限制因素只會是你的路由的數量。

也就是說,Silex不會給你Symfony2的捆綁包。

+6

兩者之間的遷移並非易事(走向Sy2 - > Silex),特別是考慮到Silex提供商對Symfony組件的極好的完整文檔缺乏完整的文檔。這就是說,你的其他觀點正確的是錢。另一個主要區別是Symfony2已準備就緒,Silex仍處於-dev模式。 – lucian303

+2

Symfony => Silex會比反之更難,因爲你認爲理所當然的東西現在不再存在。在silex中的核心提供者擁有不錯的文檔,但大多數第三方提供者卻沒有。 – igorw

+0

igorw我的意思是「你的業務邏輯不應該在你的控制器中」,因爲如果它不在你的控制器中,它會發生什麼呢?它是否在實體中?或者你把它放在服務中? – ILikeTacos

5

Silex的是基於獨立Symfony2的組件,並沒有真正考慮像Symfony的一個全棧的Web應用程序框架。您只能將它用於只需要幾個文件的非常小的項目,否則您將會非常快速地超過它。

+7

僅對小項目使用Silex?衛生署。你也可以在你的大項目中使用它。爲什麼不?您可以創建自己的應用程序結構 - 將業務邏輯移出控制器,您可以創建存儲庫(Doctrine DBAL或PDO)。 –

15

下面是何時使用的Silex(尤其是在評論)的一些有趣的想法: https://web.archive.org/web/20160131151109/http://www.testically.org/2011/10/11/is-there-a-specific-situation-when-to-use-a-php-micro-framework-like-silex/

Silex的本身是非常光禿禿的,這意味着如果你想要更多的則只是路由,你將需要添加測試服務形式的特定功能(DB,Twig ...)。 我建議看看是提供給您的一些現成板: https://github.com/lyrixx/Silex-Kitchen-Editionhttps://github.com/ivoba/superleansilexplate(這就是我的:))

另一點是,Silex的比Symfony2的一個大概佔用較小的空間,因此,如果您需要更快的網站,更小的&,Silex值得考慮。

7

Silex適用於小型項目,但它也可用於大型項目。我最喜歡Silex的是,我完全控制了我的項目結構,但如果我的項目組織得好,這是我的責任。
另外我推薦它通過symfony,如果像我一樣,你使用JS框架將應用程序邏輯移動到客戶端。對我來說,使用symfony只是爲了滿足一些json請求而感到過分矯枉過正。

+0

嗨olanod,雖然這篇文章是相當老,我想知道你與sylix一起使用哪個JS框架?謝謝! – user2345998

+1

你好,那時我正在使用角度,它仍然是非常(最?)流行的。現在我是'aurelia'的早期採用者,這是一款非常易於使用的超酷下一代框架;) – olanod

-2

Silex的是一個PHP microframework。它是用於小型項目。symfony和silex的編碼風格幾乎與symfony類似。但symfony用於大型項目

+0

尺寸無關緊要。 Symfony具有更剛性的結構,如果您與項目中的許多開發人員一起工作,可以很方便。而在Silex中,你對結構更負責任。對我來說,Silex不那麼笨拙,更接近PHP,而且我一個人工作,即使在一個大項目中,也是如此。 – martti

8

(更新)由於Symfony 2.8您可以使用symfony 2作爲具有微內核控制器的微框架。請參閱此處的簡短說明:symfony.com/blog/new-in-symfony-2-8-symfony-as-a-microframework。現在Symfony讓我們更好地控制結構和體系結構。如果您喜歡Symfony 2風格,則可以選擇Silex。

之前2.8版本

Silex的microframework的Silex到Symfony的比較是基於Symfony的,但它並不完全是一回事。對於一個小型項目使用像Symfony這樣的全棧框架只是過度使用該項目。

在微框架中,您可以更靈活地選擇要使用的工具。您可以對應用程序體系結構和邏輯做出更多決策。 在具有一定擴展的全堆棧框架中,您將擁有一個已經預定義的架構和邏輯,並對其配置進行了限制和限制。

Silex的目的是構建該工具,而不是獲得您可能不需要的設置工具。我會說,對於Symfony中的小型項目,您將不得不刪除功能 - 在Silex中您將不得不添加它們。

Silex不適合大型項目也是不正確的。 Silex可以用於大型項目的成功,但請記住,您必須構建適合您需求的工具(如果您需要定製架構和邏輯 - 也許這是正確的方法)。除此之外,我會考慮使用Symfony,因爲Symfony已經有很多可用的工具。

Silex dependency injection

記住,: Silex limitations

最後,Silex的是適合較小的應用程序,併爲那些,它一定能取代Symfony的。 Silex也可以用於較大的項目(但對於較大的應用程序,我建議使用全棧框架,比如Symfony)。

幻燈片參考:http://www.slideshare.net/dustin.whittle/silex-from-micro-to-full-stack。如果您喜歡,請繼續閱讀關於Silex框架的更多信息。

我也推薦看這個介紹比較Silex和Symfony:https://www.youtube.com/watch?v=RDVtnsoOysE

此外,對於使用的Silex從究竟是誰使用它的人來了幾個專業:https://www.youtube.com/watch?v=OJcdHGJFfLU

1

Silex的是小型和大型應用的最佳框架。爲Silex提供結構是您的責任。隨着項目變得越來越大,您可以很好地將symfony組件集成到其中,儘管sym​​fony提供商的文檔不太好,特別是對於symfony安全組件。

Silex非常適合原型項目。如果你知道你將會使用大部分的symfony組件,那麼去symfony吧,因爲你最終會將幾乎所有的symfony組件都集成到silex中。

在我的情況下,我需要開箱即用的速度,而且silex爲我提供了速度,儘管我使用了大部分symfony組件,但它比symfony開箱快了很多。