ソーシャルメディアでは、新人の 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 でした。
Slims スケルトン プロジェクトは、予想していたよりもディレクトリ構造が複雑で驚きました。小規模なプロジェクトよりも大規模なプロジェクトで使用できる構造を対象としています。マイクロ フレームワークでは、これは予想外でした。
Slim スケルトンは 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 は、権限やアクティブ レコードなどの追加のアドオンを提供します。
これらのアドオンはすべて、サードパーティのソリューションを使用したり、独自のソリューションを構築したりする必要がなく、便利な追加機能です。
JSON を応答として返すのは、Slim よりも Flight PHP の方がクリーンです。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
スリムフレームワーク
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3