web-dev-qa-db-ja.com

フレームワークを使用する必要があるのはいつですか?

私はWebプログラミングに不慣れで、現在PHPについて学んでいます。 PHP CakePHPなどのフレームワークをいつ使用する必要がありますか?これと他の同様のPHPフレームワークが提供するものは何ですか?そして、フレームワークを使用してプロになることが本当に重要ですか?

  • また、独自のフレームワークを作成して、気に入った機能を提供することはできますか?
15
Goma

PHPに慣れてきたら、フレームワークの使用を開始できます。そして、あなたはいつもそれらを使うべきです:

  1. すべてを再コーディングするよりもはるかに高速です
  2. データベースの変更やビューの変更など、変更が簡単になります
  3. 他の人との作業も、MVCパターンフレームワークが使用することが多いため、より簡単になります。

独自のフレームワークを作成することはできますが、絶対にお勧めしません。複雑で、すでに多くの優れたフレームワークがあり、不足している機能が見つかる可能性はほとんどありません。加えて、まったく新しいものを作成する必要なく、独自の機能を追加する方法を提供することがよくあります。

10
DistantEcho

フレームワークなしでいくつかのページを作成します...基本的に、試行錯誤によって独自のフレームワークの作成を開始します。それが済んだら、フレームワークに移動して、節約できる時間を楽しんでください。独自のフレームワークを構築しようとすると、いくつかのことがわかり、すでに存在するフレームワークを理解するのに役立ちます。

PHPを初めて使用したとき、フレームワークは複雑な時間の無駄だと思いました。今、私は単純なプロジェクトでもCodeIgniterを使用しています。起動して実行するのに約1分かかります。すでに大量の優れたライブラリを利用できます。また、前述のように、ほとんどのフレームワークは拡張可能であるため、いつでも必要な機能を追加できます。

9
TaylorOtwell

Niphra と同様に、フレームワークなしでPHPを使用できる(つまり、データベースにアクセスし、ヘッダーとコンテンツを送信する、文字列処理、データを使用する)操作など)あなたの質問に関する限り:

  • いつPHP CakePHPなどのフレームワークを使用する必要がありますか?プロジェクトが少数を超えたときPHP =ファイル;ロジックを個別の要素に強く分離し、モジュール化/共有機能(セッションなど)を開始する瞬間は、フレームワークを使用する必要があるときです。

  • これと他の類似のものは何ですかPHPフレームワークが私に提供しますか?抽象化;データベースと直接対話する代わりに、オブジェクト関係マッピング(ORM)を使用して、データベース内のデータ間の構造と関係を管理できます。多くの言語のほとんどのフレームワークは、対話を容易にするORMを提供しますアプリケーションのデータベースレイヤー。同様に、フレームワークは多くの場合、ユーザーインタラクションへの応答のレイヤーを分離します。最も一般的な分離は、Model View Controller(MVC)パラダイムです。これは、簡単に言えば、データベースロジックをモデル( ORM(多くの場合)、リクエストの処理、モデルとの対話によるコントローラーへのアクセス、実際のHTML/PDF /画像などのビューへのレンダリング。フレームワークは、ルーティング(複雑な処理を可能にする)などの他のツールを提供することがよくあります。リクエストURIの例(EG:リクエスト " http://example.com/users/1 "のコントローラへのマッピング)次に、IDが1)のユーザーモデルと、セッションおよびその他の基本構造の抽象化を検索します。

  • そして、フレームワークを使用してプロになることが本当に重要ですか?必ずしもそうではありません。フレームワークは生活を楽にします。しかし、専門家になるためにそれを使用する必要はありません。フレームワークは、便利な抽象化と標準化を提供しますが、ほとんどの場合、それらは要件ではありません。

4
dirk

いくつかの回答を読んだ後、まず、どのフレームワークを使用するか、またはフレームワークを使用するかどうか(プロとして)について、多くのオプションがない場合があることを最初に述べておきます。私はあなたを脅迫したくはありませんが、PHPを十分に理解して、1つのフレームワークから別のフレームワークに移動し、同時に複数のフレームワークを使用できるようにする必要があります。

いつPHP CakePHPなどのフレームワークを使用する必要がありますか?

これに対する普遍的な答えはありません。専門家として、あなたは特定の問題を解決する任務を負うことになります。これは、特にクライアントが特定の需要を持っている場合、各プロジェクトのいつ、何を行うかを決定する要因になります。ただし、一般的に言えば、独自のフレームワーク(WordpressまたはPHPBB)などの既存のアプリケーションを変更または拡張する場合を除いて、常に何らかの形式のフレームワークをPHPで使用します。

これと他の同様のPHPフレームワークが私に提供するものは何ですか?

Dirkが言ったように、それらは抽象化を提供します。これが意味することは、彼らが共通のマルチステップの手順を取り、それらを可能な限りシンプルかつ合理化することを試みることです。要するに、彼らは一般的なタスクのために水を加えるだけのソリューションを提示しようとします。

そして、フレームワークを使用してプロになることが本当に重要ですか?

一般的に言えば、いいえseプロであるためのフレームワークは重要ではありません。しかし現実的には、少なくとも2つの一般的なフレームワークに精通していなければ、それほどのキャリアはありません。 PHPフレームワークなしは、標準ライブラリなしのC++に似ています。必要ありません。実際には、下位レベルのbuiling-blockを直接使用するので、それなしでさらに多くのことができます。言語の機能性は同じですが、同じことを行うにははるかに長い時間がかかります。

また、独自のフレームワークを作成して、気に入った機能を提供することはできますか?

はい。実際、意図せずにそうすることになるでしょう。これによって、私はすべてを行う広範なフレームワークを意味するのではなく、タスクを実行する基本的な機能とスクリプトのツールバッグのように、平均的フレームワークで処理するには一般的または一般的ではありません。 Mineは基本的に、さまざまなファイルシステム、プロセス処理、およびいくつかの異なるcurlおよびstream/socketユーティリティを備えたrex-ex tid-bitsで構成されています。

3
JSON

フレームワークが何をするのか、そしてなぜそれが良い(または悪い)のかを知るのに十分な根本的なテクノロジーを知っている場合は、フレームワークを使用してください。

フレームワークは一種のメタツールであり、これにより、実行していることの詳細の一部について心配する必要なく、ツール(言語、データベース)を少し速く操作​​できます。ツール。

あなたが起こりたくないのは、ツールの代わりにフレームワークを学び、物事を行う特定の方法に運び込まれ、根本的な言語や概念を習得しないことです。松葉杖ではなく道具。

1
Eli

何度も何度も同じことをしていることに気づいたら、周りを見回して、自分でやったのと同じ冗長なことを行うフレームワークがあるかどうかを確認してください。誇大宣伝のためにフレームワークを使用しないでください。私は個人的にはCodeIgniterとRasmus Lerdorfの「no-framework PHP MVC framework)」が好きです http://toys.lerdorf.com/archives/38-The-no-framework-PHP- MVC-framework.html

1
programmer

私のデータベースとのやり取りやオンラインAPIとのやり取りを何年もかけてハッキングしてきた人によくあることですが、フレームワークを使い始めたばかりですが、可能であれば、少なくともフレームワークの動作を理解しているときに使用してください。

RedBean ですぐにジャンプしないでください。初めてデータベースを操作するときは、最初に手動でDBを操作してください。このようにして、実際にDBにフェッチして実行することを完全に理解し、スケーラビリティに本当に役立ちます。また、使用しているフレームワークで必要なことが実行されない場合は、独自のソリューションを作成することもできます。

何が起こっているのか理解したら、フレームワークを使用してください!それは物事をとても簡単にします。クエリを保存し、結果を_mysql_fetch_assoc_でループするという狂気はすべてなくなり、単一の呼び出し$book = R::load( "book", $id )に削減されました。生産性が大幅に向上し、将来のバグを修正したり、将来の機能をより簡単に追加したりできます。

1
TheLQ