ソーシャル メディアでは、新人の PHP 開発者が「自分のプロジェクトにはどのフレームワークを使用すればよいか」と尋ねることがよくあり、一般に与えられる答えは「Laravel」または「Symfony」です。
これらはどちらも良い選択肢ですが、この質問に対する正しい答えは「何をするためにフレームワークが必要ですか?」であるはずです
適切なフレームワークとは、必要なことを実行し、決して使用しない機能を搭載していないフレームワークである必要があります。
ルートが 1 つの Web サイトを作成している場合、Laravel または Symfony を使用するとサイトのオーバーエンジニアリングになりますが、複雑なサイトの場合は Laravel または Symfony が正しい選択となる可能性があります。
マイクロ フレームワークは、フル スタック フレームワークが提供するすべての機能を必要としない小規模から中規模のサイトの構築に最適です。
たくさんありますが、Slim と Flight PHP は両方ともマイクロ フレームワークの優れた例です。
最近、私はユーザーにデータベース関連の 10 個の質問を解決するように求める小さな Web サイトを作成しました。これには 3 つのルートと、質問を取得して回答を比較するためのいくつかの基本的なクエリがありました。
このような小規模なプロジェクトには、マイクロ フレームワークが最適です。 Slim と Flight PHP の両方でサイトを構築して比較してみました。
これまで特定のフレームワークを使用したことがない場合は、通常、提供されているスケルトン プロジェクトを使用して始めるのが最適です。
Flight PHP スケルトン プロジェクトは、ほぼ私が期待していたもので、軽量で、MVC セットアップがシンプルで、フォルダー構造が理解しやすく、プロジェクト内のすべてをどこに配置すべきかがわかります。
フレームワークを初めて使用する人にとって、立ち上げて実行するまでの学習曲線は最小限です。
コンポーザー ライブラリに重点を置き、合計 5 つ (コア ライブラリを含む) のうち、本番環境で使用されるのは 4 つです。
スケルトンの制作サイズは 1.6Mb でした。
スリムスケルトンプロジェクトは私を驚かせました、ディレクトリ構造は私が予想していたよりも複雑でした。小規模なプロジェクトよりも大規模なプロジェクトで使用できる構造を対象としています。マイクロ フレームワークでは、これは予想外でした。
スリム スケルトンは、Flight PHP よりも少し重かったです。 21 個の作曲家ライブラリのうち、9 個が本番環境で使用されています。プロジェクトの制作サイズは 3.3Mb でした。
どちらも必要最小限の追加構成ですぐに機能しました。
スケルトンを使用する代わりに、独自のセットアップを作成してサイトを構築することにしました。これを行う利点は、自分のニーズに合わせてフレームワークを調整でき、さまざまな構造に対してフレームワークがどれほど柔軟であるかを確認できることです。
マイクロ フレームワークを使用する大きな利点の 1 つは、不必要なオーバーヘッドなしで必要なことを正確に実行するようにマイクロ フレームワークを構築し、必要に応じて機能やライブラリを追加できることです。
Flight PHP を使用した私のセットアップはスケルトンと大きな違いはありませんでしたが、最終的にはディレクトリが減り、異なるコンポーザー ライブラリが使用されましたが、構造的には似ていました。
Slim では、プロジェクトの構造が骨格とは大きく異なるものになりました。
Slim が柔軟で、構造について仮定を立てず、スケルトンとはまったく異なる構造でも問題なく機能したのは素晴らしかったです。
Flight PHP はこのように柔軟性も高く、必要に応じてより複雑な構造を可能にし、フレームワークへの新しいライブラリの追加は簡単でした。
ルーティング
ルーティングの観点から見ると、どちらも使いやすかったです。どちらも、ドキュメントをあまり読まなくてもセットアップが簡単でした。
Flight PHP のルートは、Slim よりもセットアップがわずかに簡単で、使用するコードも少なくなりましたが、セットアップはどちらも難しくありませんでした。
ルーティング グループ、正規表現機能、ミドルウェア オプションにより、ルートを柔軟にしながらも簡単に操作できるようになりました。
データベース接続
Slim では、データベース クエリに Eloquent や Doctrine などの ORM を使用することが期待されますが、Flight PHP は次の場合に使用できる PDO のシンプルなラッパーを提供します。必要に応じて、アクティブ レコード をクエリ構築用のプロジェクトに追加できます。
私が取り組んでいたような小さなプロジェクトの場合、ORM を使用するのは必要以上に思えたので、最終的には Flight PHP に組み込まれているものと同様の、Slim 用の小さな PDO ラッパー クラスを構築することにしました。 .
ORM は優れていますが、データベース クエリのコーディング方法を選択できる柔軟性が組み込まれているのは優れた機能です。
一般的なコーディング
Slim と Flight PHP フレームワークはどちらも、独自の方法でコードを記述できるようにするのに優れています。
一部のフレームワークは、特定の方法でコーディングすることを強制する傾向があり、フレームワークと戦っているように感じることがあります。
フレームワークはあなたに敵対するものではなく、あなたと協力して機能するべきであり、どちらも私と協力しているように感じました。
Slim は、CSRF 統合や HTTP キャッシュなどの便利なアドオンも多数提供します。
Flight PHP は、権限やアクティブ レコードなどの追加のアドオンを提供します。
これらのアドオンはすべて、サードパーティのソリューションを使用したり、独自のソリューションを構築したりする必要がなく、便利な追加機能です。
Flight PHP では、レスポンスとして JSON を返すのは、Slim よりもクリーンです。Slim 3 には、便利な withJson レスポンスがありました。 Slim 4 は PSR-7 に準拠していますが、JSON 応答を構築するにはより多くのコードが必要であることを意味します。
JSON 応答を頻繁に使用する場合は、PSR-7 標準に準拠しながら、より便利にするラッパーを作成する可能性があります。
これは 2 つのフレームワークの大きな違いです。Slim はコードベースをクリーンアップして簡素化するクラスを作成することでさらに調整する必要があるように感じますが、Flight PHP はすでにこれを行っています。
Slim は、多数のヘルパー ミドルウェアを提供します。一部の機能を動作させるにはミドルウェアが必要です。
この例としては、FETCH を使用して Javascript からデータを取得することが挙げられます。 Slim には、POST リクエストからデータ配列を作成するメソッド getParsedBody があります。
ただし、これを使用するには、addBodyParsingMiddleware をコンテナに追加する必要があります。
これは新しい開発者にとっては少し罠ですが、オプション機能へのアクセスも提供するため、必要な機能のみを有効にすることでフレームワーク全体のフットプリントを削減できます。
Flight PHP は設定ファイルを通じてこれを実現します。一部の機能は、ミドルウェアの有効化ではなく設定を通じてオンまたはオフにすることができます。
スピードテスト
ベンチマークによると、この 2 つを比較すると興味深い結果が得られ、一部の領域では Slim が Flight PHP を上回っていますが、他の領域では Flight PHP が Slim を上回っています。
私自身のコードで 2 つのフレームワークをテストしたところ、Flight PHP は Slim よりも応答時間が速く、より安定していることがわかりました。
フロントエンド
JSON を返す GET リクエスト
JSON を返す POST リクエスト
私が注目すべきと感じたのは、Slim を使用したときの異常値のスパイクです。
これらのテストを複数回実行すると、毎回上記で示したものと同様の結果が得られ、応答時間はどちらも概ね良好でしたが、Slim では異常値のスパイクが発生しましたが、これは Flight PHP のテスト時には発生せず、Flight PHP の方が全体的に優れていました。応答時間。
マイクロ フレームワークにまだ挑戦したことがない場合は、試してみてください。いくつかのフレームワークが存在します。試してみて、それぞれの好きなものと嫌いなものを確認するのは素晴らしい学習経験になるでしょう。 1つ。
Slim と Flight PHP はどちらも優れたマイクロ フレームワークです。
Slim は、あれば便利な機能を備えた堅牢なフレームワークで、静かに動作します。
Flight PHP は軽量で、そのシンプルさにより、フレームワークの学習が非常に簡単になります。
応答時間が短く、同じことを実現するためのコードがより単純化されているため、マイクロ フレームワークの使用に非常に適しています。
これら 2 つを並べてみると、私は Slim よりも Flight PHP の方が好きですが、他のフレームワークと同様に、試してみて自分に合うかどうかを確認してください。
結局のところ、適切なフレームワークとは、必要なことを実行するフレームワークです。
フライト PHP
スリムなフレームワーク
以上がSlim および Flight PHP フレームワークの比較の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。