web-dev-qa-db-ja.com

SymfonyとSilexの違い

Silexを試してみたいのですが、いくつか質問があります。

私はSymfony2を使用することを知っていますが、SilexがSymfonyと非常に異なるか、同じもの(同じ操作、同じコード...)かどうかを知りたいですか?

さらに、Silexは、小規模なPHPプロジェクトおよび中規模または大規模プロジェクトのSymfonyには推奨されますが、それは本当ですか?

36
Alex L.

注目に値するいくつかのこと:

  • Silexは、Symfony2フレームワークがそうであるように、Symfony2コンポーネントに基づいています。そのため、コンポーネント(ユーザーはWeb開発者)の代替ユーザーインターフェイスと見なすことができます。
  • それらは同じ基盤を使用するため、それらの間の移行は比較的簡単です。
  • Symfony2と同様に、Silexはほとんどがコントローラーフレームワークです。何らかの構造を提供しますが、モデルとビューのパーツはサードパーティのライブラリ(TwigまたはDoctrineなど)によって処理されます。
  • とにかくビジネスロジックがコントローラーにあるべきではないので、そのコードを分離してコントローラーを軽量に保つと、プロジェクトサイズの制限要因は、持っているルートの量だけになります。

とはいえ、SilexはSymfony2のバンドルを提供しません。

46
igorw

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-Edition または https://github.com/ivoba/ superleansilexplate (それは私のものです:))

もう1つのポイントは、SilexのフットプリントがSymfony2よりもおそらく軽いため、より小さくて高速なサイトが必要な場合、Silexを検討する価値があるということです。

15
ivoba

(UPDATE)Symfony 2.8以降、symfony 2はマイクロカーネルコントローラーでマイクロフレームワークとして使用できます。こちらの簡単な説明をご覧ください: symfony.com/blog/new-in-symfony-2-8-symfony-as-a-microframework 。現在、Symfonyは構造とアーキテクチャをより詳細に制御できます。 Symfony 2スタイルを好む場合は、Silexの代替として適しています。

2.8リリース前のSilexとSymfonyの比較

Silexマイクロフレームワークは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を使用するためのいくつかのProは、実際に使用する人から来ています。 https://www.youtube.com/watch?v=OJcdHGJFfL

8
DevWL

Silexは小規模プロジェクトに適していますが、大規模プロジェクトにも使用できます。私がSilexで最も気に入っているのは、プロジェクト構造を完全に制御できることですが、プロジェクトが適切に編成されているかどうかは責任です。
また、私のような場合は、JSフレームワークを使用してアプリケーションロジックをクライアント側に移動した場合、symfonyよりもお勧めします。私にとっては、symfonyをいくつかのjsonリクエストにのみ使用するのはやり過ぎだと感じています。

7
olanod

Silexは独立したSymfony2コンポーネントに基づいており、SymfonyのようなフルスタックWebアプリケーションフレームワークとは真に見なされていません。少数のファイルのみを必要とする非常に小さなプロジェクトにのみ使用する必要があります。そうしないと、かなり速く成長します。

5
Lusitanian

Silexは、大規模アプリケーションだけでなく小規模アプリケーションにも最適なフレームワークです。プロジェクトに構造を与えることは、Silexの責任です。プロジェクトが大きくなるにつれて、symfonyプロバイダーのドキュメントは特にsymfonyセキュリティコンポーネントにはあまり適していませんが、symfonyコンポーネントをプロジェクトにうまく統合できます。

Silexは、プロトタイピングプロジェクトに最適です。 symfonyコンポーネントのほとんどを使用することがわかっている場合は、symfonyに移動してください。symfonyコンポーネントのほぼすべてをsilexに統合することになります。

私の場合、箱から出してすぐに速度が必要で、silexは速度を提供してくれました。ほとんどのsymfonyコンポーネントを使用していますが、箱から出してすぐにsymfonyよりもはるかに高速です。

1
sonam

私がこれを書いている瞬間、Silexはメンテナンスモードであり、それは寿命です 発生しました2018年6月.

つまり、新しいプロジェクトにはもう使用しないでください。

代わりに Symfony 4 を使用することをお勧めします。

Silexは本当に素晴らしく、高速でした(単純なリクエスト/要件についてはsymfony 4よりも高速かもしれません)が、SF4はアプリケーションに新しいスタックと利点をもたらす可能性があります。

0
Ricardo Martins