web-dev-qa-db-ja.com

なぜPHPでフレームワークを使用するのですか?

私は興味があります、PHPでフレームワークを使用することの利点(および欠点)は何ですか?

バージョン3以降、PHPのオンとオフを使用しています。PHPで使用できるフレームワークを使用したことがないので、何を見逃しているのでしょうか。

32
ste

フレームワークは、低レベルの詳細からユーザーを抽象化し、生産性を高め、低レベルのエラー(SQLインジェクション攻撃の防止など)からユーザーを保護します。

優れたPHPフレームワークでは、懸念事項を分離し、実績のあるアーキテクチャを実装する必要があります。これにより、最終的に設計が改善され、コードの読み取りと保守、および単体テストがはるかに簡単になります。

ここに いくつか 参照 なぜあなたがすべきかについて フレームワークを使用する

26
Graviton

なぜフレームワークを使用するのですか?

(私は Symfony 開発者なので、 Symfony を中心に答えます。同様の機能を持つ他のフレームワークがありますが、私の意見では、まったく同じものはありません。包括的またはよく書かれている Symfony )。

Symfony Webサイトからの引用:

frameworkは、特定の目的で使用されるパターンの多くを自動化することにより、アプリケーション開発を合理化します。フレームワークもコードに構造を追加、開発者に書くように促しますより良く、より読みやすく、より保守しやすいコード。最終的に、フレームワークはプログラミングを容易にします複雑な操作を単純なステートメントにパッケージ化するためです。

Symfonyは、いくつかの重要な機能によってWebアプリケーションの開発を最適化するように設計された完全なフレームワークです。手始めに、それはWebアプリケーションのビジネスルール、サーバーロジック、およびプレゼンテーションビューを分離します多数のツールとクラスが含まれています複雑なWebアプリケーションの開発時間を短縮することを目的としています。さらに、それは一般的なタスクを自動化するので、開発者はアプリケーションの詳細に完全に集中できます。これらの利点の最終結果は、新しいWebアプリケーションが構築されるたびに車輪の再発明を行う必要がないことを意味します。

Symfonyは完全にPHP 5で書かれています。これは徹底的にテストされたさまざまな実世界のプロジェクトでテストされており、実際に高レベルで使用されています。 -デマンドe-ビジネスWebサイト。MySQL、PostgreSQL、Oracle、Microsoft SQL Serverなど、利用可能なほとんどのデータベースエンジンと互換性があります。* nixおよびWindowsプラットフォームで実行されます。まずその機能を詳しく見ていきましょう。

Symfonyの機能-つまりあなたが見逃しているもの...

Webプロジェクトの一般的な機能のほとんどは、次のようにsymfony内で自動化されています。

  • 組み込みのinternationalizationレイヤーでは、データとインターフェイスの両方の変換、およびコンテンツのローカリゼーションが可能です。
  • プレゼンテーションでは、フレームワークの知識がなくてもHTML設計者が作成できるテンプレートとレイアウトを使用します。ヘルパーは、コードの大部分を単純な関数呼び出しにカプセル化することにより、書き込むプレゼンテーションコードの量を減らします。
  • フォームのサポート自動化された検証と再入力。これにより、データベース内のデータの品質が向上し、ユーザーエクスペリエンスが向上します。
  • 出力エスケープ破損したデータを介した攻撃からアプリケーションを保護します。
  • キャッシュ管理機能により、帯域幅の使用量とサーバーの負荷が軽減されます。
  • 認証および資格情報機能制限されたセクションの作成とユーザーのセキュリティ管理を容易にします。
  • ルーティングとスマートURLページアドレスをインターフェースと検索エンジンの一部にします。
  • 組み込みの電子メールおよびAPI管理機能により、Webアプリケーションは従来のブラウザー操作を超えることができます。
  • Listsは、自動化されたページ付け、並べ替え、およびフィルタリングのおかげで、よりユーザーフレンドリーです。
  • ファクトリ、プラグイン、およびミックスイン高レベルの拡張性を提供します。
  • Ajaxクロスブラウザ互換のJavaScriptエフェクトをカプセル化する1行のヘルパーのおかげで、インタラクションは簡単に実装できます。
  • 組み込みユニットと機能テストフレームワークは、テスト駆動開発を可能にする完璧なツールを提供します。
  • デバッグパネル開発者が作業しているページに必要なすべての情報を表示することにより、デバッグを高速化します。
  • 2つのサーバー間のアプリケーション展開を自動化するへのコマンドラインインターフェイス。
  • logging機能は、管理者にアプリケーションのアクティビティに関する完全な詳細を提供します。
14
Jon Winstanley

車輪の再発明をしないでください

それがすべてです。フレームワークには、長年の経験を通じて認められたベストプラクティスを使用して実装されたすべての主要な機能があります。

10
David Espart

PHP :)の代わりにC++を使用できるからかもしれません。

フレームワークは、定義された構造と実装を使用して、より短い時間で品質、セキュリティなどの点でより良い目標を達成するために使用されます。

すでに作成されたフレームワークを使用していない場合は、独自のフレームワークを作成していますが、それでもフレームワークを作成しています。

3
lukas.pukenis

フレームワークは、Webサービスと管理サイトの開発をスピードアップするように設計されていると思います。私はbackvendor Yii拡張機能を使用しており、最初の段階で時間を節約するのに本当に役立ちます。

1
Alex Dev

1つの開発のスピード。また、手動でコーディングすることに伴う多くの負担を取り除きます(もちろん、車輪の再発明をしないことを意味します)。

1
sylv3rblade

優れたフレームワークは、アーキテクチャのベストプラクティスをガイドし、実証済みの安定した方法で、頻繁に必要とされる機能を提供します。したがって、常に車輪の再発明を行う必要はありません。

0
johannes