web-dev-qa-db-ja.com

サイレックスvs SLIM PHPフレームワーク

SilexとSlimの間で検索を絞り込みましたPHPルーティングのためのフレームワークREST Apache/PHP/MySQLサーバー上のAPI。

両方とも良いレビューがあるようです。 SilexはSymfonyから来たため、おそらくより大きなコミュニティを持っています。しかし、ドキュメントはSlimの方が優れているようです。

あなたたちは何を示唆していますか?実稼働環境からの実際の経験はありますか?

サティッシュ

14

私は同じ選択をする必要があり、私はサイレックスを選択しました、これが理由です:

  • SilexはSlimよりも大きなコミュニティを持っているようです。おそらくそれは私の見解です
  • これはSymfonyコンポーネントに基づいているため、少し考えてみると、Symfonyで機能するヒントや回避策を使用して、Silexに適用できます。
  • Symfonyに基づいているため、他のバンドルとの統合が優れています(たとえば、Twigが必要です)。
  • このSymfonyのベースは、独立しているSlimよりも「長期サポート」になることも保証しています。

結論として、主な議論はSymfonyに基づいており、多くの利点があります。 Symfonyデバッグツールは、地球上で最高のものです!!

現在、Twigで作成された2つのサイトがあり、本当に満足しています!

また、これはこれらの両方のフレームワークの技術的な比較です: https://michalzuber.wordpress.com/2015/04/02/silex-vs-slim-php-microframework-comparison/

20
Raphaël Vigée

Slim 3は非常に軽量でAPIに適しています。

Slimアプリを構築するときに、オプションでコンテナー(デフォルトではPimpleですが、すべてのContainer-Interopが機能します)を挿入できます。 SilexアプリはPimpleを拡張して、isコンテナーにします。

Twigが必要な場合は、slim/twig-viewが必要です。

Slimのリクエストとレスポンスは、PSR-7 HTTPメッセージの実装をサポートしています。

8
Chris Peckham

2018年1月12日、このマイクロフレームワークのメイン著者であるFabien Potencierは、SensiolabsがSilexのサポートを停止すると書いています。

https://symfony.com/blog/the-end-of-silex

サイレックスの公式サイトからの引用:

Silexはメンテナンスモードです。エンドオブライフは2018年6月に設定されています。 Symfony 4を使用 代わりに。詳しくは Symfonyのブログ をご覧ください。

6
hywak

軽量で高速なAP​​Iを作成する場合は、スリムの方が適しています。したがって、slimはDIとルーティングを提供し、laravelまたはsymfonyまたはサードパーティの独自のライブラリまたはプラグインを使用する方がはるかに柔軟です。たとえば、laravel

3
Tofeeq

SilexがPSR-7をサポートしていなかったという事実(これを書いている時点では)は非常に失望しています。それはすでに上で述べた非常に多くの良い点を持っています。それを可能にするプラグイン/拡張機能がありますが、軽量フレームワークを探しているときにこのオーバーヘッドを追加しても意味がありません

0
user1898726

TL; DR Choose Slim 4「Slimは、本質的に、HTTPリクエストを受信し、適切なコールバックルーチンを呼び出し、HTTP応答を返すディスパッチャです。それだけです。」それはそれであるはずです。

パーティーに遅れましたが、それでも、このトピックに関する特に2セント(!)のトピックがあります(Silexは廃止されましたが)。スリムに行きます。私は以前の2つのプロジェクトですでにやったことで、決して失望することはありませんでした。 「ここにある理由」の前に、私の背景を簡単に説明します。私はNode.jsを紹介する直前に、CakePHPとLaravel(特に> = 5.4、<5.8)(およびLumenも使用)で数年前に作業しました。私のすべての作業はクラウド内のNode.jsで実行されます。これで、テーブルにGolangが追加されました...しかし、それはまた別の話です。前述の2つのプロジェクトの要件(または制約と言えます)のため、PHPを作成する必要があります。 Node.jsを使って何年も前から、私はPHPのことをほとんど忘れてしまったことに突然気づきました。しかし、はっきりと覚えている2つのことがありました。私は苦しんでいます。これらのフレームワークを誤解しないでください。前者は最年長者であり、後者はパックのヒップスターです。私はそれら、彼らの作者、そしてコミュニティを尊重します。すべてが存在する理由があります。しかし、1つは巨大で、もう1つは魔法のようです(どちらも良い方法ではありません。つまり、Laravelこれらのファサードと静的メソッドなどでデバッグしようとしたことはありますか?)OKです。これらはフレームワークであり、彼らはあなたのために何かをすべきです(あなたはハリウッドの原則を聞いたことがあります)すべてではありませんあなたのために。これが私に意味することは、彼らがあなたの耳に「私たちの道または高速道路」(時には叫ぶことさえある)でささやいていることです。 「確かにこれを実行できます(たとえば、ジョブをキューにプッシュする、データベースにクエリを送信する、電子メールを送信するなど)が、最初にこれを実行し、次にそれを実行します」(おそらくさらにいくつかの手順を実行しますが、これはそれほど悪いことではありません)。これの悪い点は、(誰も非難しない)わかりません彼らがフレームワークに何を意味するかです。彼らは意味のあることをしなければなりません、しかし、明らかに、それが何であるかわかりません。知っておくべき?はい、もちろん。私はこのアプリケーションを神のためにそのフレームワークを使って書いています。バージョンXは簡単に理解できましたが、バージョンY、Z、Tについてはどうですか?Laravelのドキュメントサイトでバージョンドロップダウンを確認しましたか?私はそう言われたので私はそれらのステップを踏みました。繰り返しますが、それは問題ありません。公平で公平です。これらのステップにより、私ははるかに大きなものを達成できます。しかし、徐々に私は彼ら(それぞれの著者)の支配下にあります。その後、小さな変更でも、SO、GitHubの問題、Googleで多くの検索が必要になります。場合によっては成功することもあれば、そうでないこともあります。どちらの方法でも、フレームワークに対する戦争を宣言する必要があります。私の見解では、これはオープンソースのフレームワークがどうあるべきかではありません。私はある意味でベンダーに閉じ込められています。多分私はPSRを守りたいと思います(それは私がアドバイザー推奨フリークであるためではありません。PHP-FIGはlanguageのほぼすべての側面について標準を持つ有名なグループであるためです。これは重要です。言語、フレームワーク用ではありません)。何かお聞きしましょう。 Composerを使用しますか?もしそうなら、なぜですか?それは標準だからです(そうであるかどうかはわかりません)?みんな使ってるから?あなたの必要なパッケージがこのインストール方法を推奨しているので?実際には、答えはすべての問題ではなく、1日の終わりに使用します。 PHP framework/project。Composerでは、PHPが必要最小限のシステムであり、偶然にもそれが唯一の要件です。これは自由であり、私はそれを望んでいます。自分の好みに合わせてルーターまたはコンテナを選んで選択したいと思います。今日このパッケージは、後で何か他のものになります。

スリムは私に、特にバージョン4でその自由を与えてくれました。コミュニティは小さく、予見できます。他の本格的なフレームワークよりもはるかに少ないです。実際には、それはマイクロフレームワークです(私はMVCアプリケーションとREST APIサーバーを使用して作成しました)。他のパッケージのコミュニティが今重要です。コンテナcomposer require php-di/php-diが必要です「コミュニティ」について考えてみましょう。「あなたの」アプリケーション(つまりフレームワーク)はその一部です。問題がありますか?そのパッケージについて特別に助けを求めてください。おそらく別のフレームワークを使用している人(またはフレームワークをまったく使用していない人)今日残っているものがあれば)問題を解決するかもしれません。フレームワークにとらわれず、設定に感謝します。PHP DIは好きではありません。別のPSR-11を見つけてください。準拠パッケージ。同じことがSlimのほぼすべての部分に当てはまります-ルーター(NikicのFastRouterがベルを鳴らすはずです)を除いて、これはすでに私が見ている他のルーターの基盤です。

私が終える前に、私もそう言うべきです、ルーメンとサイレックスには兄がいます。私はルーメンといくつかの欲求不満の瞬間を経験しました。 「LumenバージョンXYでは[ここではあまり一般的でない問題をここに記入する]ことができない」と言うと、「Laravelを使用すると、アップグレードが非常に簡単です」と表示されます。それは神のためにあるべきです!彼らは同じ血を共有します。私はそれを求めませんでした。もし私が使いたいのならLaravel私は最初にそれを選び、そもそも私がLumenを選択したのにはいくつか理由がありました。たとえば、著者がそれを書いた理由もいくつかあります(理由はわかりませんが、それでも...)。Lumenは、より軽量なマイクロフレームワークの代替品であるべきですララヴェルへ、飛び石ではありません。

スリムを選択することにはデメリットもありますが、それは認識に関するものだと思います。状況に応じて、アプリケーションで何が起こっているのか知りたいのですが。実際にそれについて推論していませんか?私がこの岩だらけの道に行くつもりであったとしても、私が最後に私のアプリケーションが私が命じたとおりに動作することはわかっています。

お時間をいただき、ありがとうございます。フォーマットしてください。

0
ozanmuyes