HTTP リクエストのルーティングからデータベースへのアクセス、ユーザー インターフェイスのレンダリングまで、ほとんどの Web アプリケーションには相互に多くの共通点があります。それらの多くは訪問者にログインを許可しており、電子メール配信のない Web アプリケーションを想像するのは困難です。
ソフトウェア フレームワークは、この観察を実践する 1 つの方法です。
フレームワークを使用すると、アプリケーションの共通の特性と基礎となるアーキテクチャを抽出し、それらを再利用可能なテンプレートとライブラリのコレクションにバンドルすることで、開発者はプロジェクトを際立たせるものに集中できるようになります。
実際には、最初から始めるのではなく、以前のプロジェクトをテンプレートとして使用する場合、すでに一時的なフレームワークを使用していることになります。 Laravel、Yii、Symfony などの一般的な PHP フレームワークは、フレームワークのアーキテクチャとツールの設計に重点を置き、他の開発者がプロジェクトで使用できるようにするという論理的な結論に向けてこのアプローチを採用しています。
しかし、フレームワークを使用することが常に最良のアプローチなのでしょうか?それとも、純粋な PHP を使用して最初から始めることが合理的な場合もありますか?
この質問に答えるために、このチュートリアルでは、PHP フレームワークを使用する 5 つの利点と欠点を見ていきます。
まず、PHP フレームワークの使用がアプリケーション開発にどのように役立つかを見てみましょう。
###1。急速な発展###PHP フレームワークの使用は、この要件を満たす 1 つの方法です。
適切に設計された PHP フレームワークは、一般的な問題の最適な実装をオープンソース コミュニティから選択し、それらを基にして、ガイドとなるアプリケーション アーキテクチャ (ほとんどの場合、モデル-ビュー-コントローラー パターンに基づく) を提供します。あなたの発展。
これにより、アプリケーションのアーキテクチャの計画や利用可能なさまざまなライブラリの評価に時間を費やす必要がなくなり、代わりに完全に機能するテンプレートから開始して、アプリケーションに固有の機能を直接構築できます。多くの PHP フレームワークには、コードを生成し、さらに貴重な開発時間を節約するために使用できるコマンド ライン ツールも付属しています。
###2。フレームワークによりアプリケーションの安全性が高まりますフレームワークは開発をスピードアップする一方で、安全性も高めます。作業は迅速ですが、手っ取り早く汚いソリューションを使用するのではなく、最良で実績のあるプラクティスと実装用の既成コンポーネントを使用することによって行われます。
そうは言っても、フレームワークを使用するからといって、セキュリティや適切な開発慣行をすべて忘れてもよいというわけではないことを覚えておくことが重要です。フレームワークを意図したとおりに使用し、常に最新の状態に保ち、パラメーターの検証などの役割を果たしているようにしてください。フレームワークのツールを使用すれば、それはそれほど難しくありません。
###3。メンテナンスがさらに便利になります
PHP フレームワークは、アプリケーションに健全な構造を提供し、ソフトウェア開発のベスト プラクティスとパターンの採用を促すことで、疎結合で重複ができるだけ少ないコードの作成をガイドします。言い換えれば、読みやすく、テストし、保守し、さらに開発するのが簡単です。
あなたはまだ自分の役割を果たす必要があります。ただし、最初から始めるよりも、これらの概念を思い出させ、使用を促すフレームワークとそのドキュメントを用意する方が確かに役立ちます。
フレームワークを使用してアプリケーションのメンテナンスを容易にするもう 1 つの方法は、共有コンポーネントを使用することです。フレームワーク ライブラリとヘルパーはアプリケーションとは独立して開発されるため、アプリケーションのメンテナンスの大部分をフレームワーク開発者にオフロードできます。
ある意味では、開発者チームが無料で働いてくれるようなものです。
###4。チームワークの強化開発者はクラスや関数に精通しており、簡単に使用できます。しかし、チームメンバーを迎え入れると状況は変わります。
設計上の決定と完全なドキュメントに関する知識がなければ (正直に言うと、特に急速な開発の世界では、ドキュメントは後回しになることがよくあります)、アプリケーション コードを理解するのは難しいでしょう。
それまでは、開発者に自分の考え方を教える代わりに、アプリケーションの開発を続けることができます。
###5。コミュニティはいつでもサポートいたします
p> すべての主要なフレームワークには、フレームワーク自体の開発に加えて、他のウィジェット、ライブラリ、ヘルパー コンポーネントを開発して、他の人が自分のアプリケーションに組み込めるオープン ソースのコントリビュータが集まります。他の寄稿者は、実際のプロジェクトでフレームワークを使用する方法の詳細を説明するチュートリアルや書籍を執筆したり、ビデオを作成したりしています。
このタイプの開発者コミュニティの一員として、あなたは開発者として成長し、すぐに学び、学んだことをアプリケーション開発に応用することができます。
ご希望であれば、自分にとって自然で充実感を感じる方法で、オープンソース プロジェクトに恩返ししたり、参加したりすることができます。
PHP フレームワークを使用する 5 つのデメリット
###1。実行が遅くなる
ただし、ほとんどの Web アプリケーションでは、フレームワークの効率への影響は、フレームワーク自体よりもその使用方法に大きく依存します。たとえば、アクティブ レコードの実装はデータベースにアクセスするのに便利な方法ですが、データベース内の複数の行を同時に処理する必要がある場合に使用しても意味がありません。
つまり、アプリケーションのニーズを理解しながら、特定の使用方法に固執しないことが重要になります。場合によっては、フレームワークを使用する場合でも、回避してより低い抽象レベルでコードを記述することが合理的になることがあります。
###2。特定の問題に対する一般的な解決策PHP フレームワークの考え方は、Web アプリケーションの開発時にほとんどの開発者が遭遇する繰り返しのニーズに対する普遍的なソリューションとなることです。しかし、フレームワークに含まれるものと、アプリケーション (またはサードパーティのアドオン) に実装を委ねるものとの間の線引きはどこにあるのでしょうか?
PHP の作成者であるラスムス・レルドルフはかつてこう言いました:
「普遍的な問題を持っている人はいません。誰もが、解決したい非常に具体的な問題を抱えています。汎用フレームワークは、その問題を解決できますが、通常、他の多くのことができない方法で解決します。 「それを解決する方法が必要です。最終的にはすべてのリクエストが完了します。」
したがって、フレームワークを使用する場合は、必ずアプリケーションのニーズに合ったものを選択してください。
ほとんどのフレームワークは遅延読み込みに基づいており、アプリケーションで使用されないフレームワークの部分は含まれませんが、追加された複雑さは依然として存在し、その結果、フレームワークに付属する機能を削除するときに不必要な変更が発生します。する必要はありません。
###3。フレームワークの学習と習得には時間がかかります
他のフレームワークやプロジェクトでこれらの設計原則にすでに慣れている人にとって、学習曲線は比較的短いでしょう。経験の浅い開発者の場合、学習曲線は長くなります。フレームワークをマスターすることは言うまでもありません。
したがって、急いでいてプロジェクトが小さい場合は、新しいフレームワークの学習を始める時期ではない可能性があります。代わりに、マイクロフレームワークを使用するか、最初から使い慣れたライブラリを使用することを検討してください。
その後、スケジュールが許せば、時間をかけて本格的な PHP フレームワークを学習してください。
###4。限られた可視性と制御ソフトウェア フレームワークを使用すると、アプリケーション開発をより高い抽象レベルに引き上げることができます。これは仕様によるもので、通常は良いことです。ただし、問題が発生する可能性もあることを認識しておくとよいでしょう。
フレームワーク テンプレートの多くの部分はカスタマイズが必要ですが、フレームワークのコアとそのライブラリは、操作はできてもあまり制御できないブラック ボックスのようなものです。改善を提案することはできますが、最終的に変更を含めるかどうかを決定するのはフレームワークの開発者です。
###5。フレームワークにより外部依存関係が導入されます
フレームワークは常にアプリケーションの外部依存関係であり、あなたやあなたのチーム以外の人によって制御されるコードです。通常、これは問題になりませんが、構築しているソフトウェアがビジネスの中核部分であるかどうかを検討する価値があります。
フレームワークの開発が放棄されたり、望まない方向に進んでしまったらどうするかを自問してください。
このリスクを軽減する良い方法は、活発な開発者およびユーザー コミュニティが存在する、信頼性が高く人気のあるフレームワークを使用することです。しかし、それでも、次のことを考えてみる価値はあります。フレームワークを使用するメリットはリスクに見合うだけの価値があるのでしょうか?
###結論は###ただし、上記の結論の鍵となるのは、ジョブに適したツールを選択することです。すべてのプロジェクトは異なり、あるプロジェクトで機能するフレームワークであっても、次のプロジェクトには適合しない可能性があります。シンプルさを目指して、本格的なフレームワークがプロジェクトに適しているのか、それとも Lumen のようなマイクロフレームワークを使用する方がより良いソリューションなのかを自問してください。
プレーンな PHP を使用して最初から開始することが最良の選択肢であることはほとんどありませんが、非常に単純なアプリケーション (対話性があまりない Web サイトなど) を開発する場合にも考慮する価値があります。また、いつでも Use Composer の選択を渡して拡張できることを覚えておいてください。好みのライブラリを選択できます。
フレームワークを選択するときは、選択したフレームワークが積極的に開発およびサポートされており、適切なソフトウェア エンジニアリングの実践に従っていることを確認してください。こうすることで、基礎となるフレームワークが静かに終了することがなくなり、アプリケーションの将来性が保証されます。
最後に、たとえフレームワークを使用しないことに決めたとしても、1 つ以上の最新の PHP フレームワークに慣れておくことをお勧めします。これらを学ぶことは、ソフトウェア開発スキルを学び向上させるための素晴らしい方法であり、進化し続ける PHP 開発の世界で時代の先を行くのに役立ちます。
他のレビュー
自分に合ったフレームワークを選択するためのクイックガイド
以上がPHP フレームワークを使用することの長所と短所: それはあなたにとって正しいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。