私はWebプログラミングの初心者であり、現時点ではPHPについて学んでいます。CakePHPなどのPHPフレームワークを使用する必要があるのはいつですか?これや他の同様のPHPフレームワークが私に提供するものは何ですか?そして、プロフェッショナルになるためにフレームワークを使用することは本当に重要ですか?
- そして、好きな機能を提供する独自のフレームワークを作成できますか?
私はWebプログラミングの初心者であり、現時点ではPHPについて学んでいます。CakePHPなどのPHPフレームワークを使用する必要があるのはいつですか?これや他の同様のPHPフレームワークが私に提供するものは何ですか?そして、プロフェッショナルになるためにフレームワークを使用することは本当に重要ですか?
回答:
PHPに慣れたら、フレームワークの使用を開始できます。そして、常にそれらを使用する必要があります:
独自のフレームワークを作成できますが、私は絶対にそれを推奨しません。複雑で、すでに多くの優れたフレームワークが存在し、欠落している機能を見つけることはまずありません。また、まったく新しい機能を作成することなく、独自の機能を追加する方法を提供します。
フレームワークなしでいくつかのページを構築します...あなたは基本的に試行錯誤によってあなた自身のフレームワークを書き始めます。それが終わったら、フレームワークに移動して、どれだけ時間を節約できるかお楽しみください。独自のフレームワークを構築しようとすると、いくつかのことを学ぶことができ、すでに存在するフレームワークを評価するのに役立ちます。
PHPを初めて使用したとき、フレームワークは複雑な時間の無駄だと思いました。今、私はCodeIgniterを単純なプロジェクトにも使用しています。起動して実行するのに約1分かかります。すでに多くの優れたライブラリを利用できます。また、前述のポスターで述べたように、ほとんどのフレームワークは拡張可能であるため、必要な機能をいつでも追加できます。
Niphraが言ったように、フレームワークなしでPHPを使用できる場合にのみフレームワークの使用を開始してください(つまり、データベースへのアクセス、ヘッダーとコンテンツの送信、文字列処理、データ操作など)。あなたの質問に関する限り:
CakePHPなどのPHPフレームワークを使用する必要があるのはいつですか?プロジェクトがいくつかのPHPファイルを超えて大きくなると、ロジックを明確な要素とモジュール化/共有機能(セッションなど)に強く分離し始めた瞬間に、フレームワークを使用する必要があります。
これおよび他の同様のPHPフレームワークが私に提供するものは何ですか? 抽象化; データベースと直接対話する代わりに、オブジェクトリレーショナルマッピング(ORM)を使用して、データベース内のデータ間の構造と関係を管理できます。多くの言語のほとんどのフレームワークには、アプリケーションのデータベースレイヤーとのやり取りを容易にするORMが用意されています。同様に、フレームワークは多くの場合、ユーザーの操作に応答するレイヤーを分離します。最も一般的な分離は、Model View Controller(MVC)パラダイムです。これは、簡単に言うと、データベースロジックをモデル(多くの場合、ORMへのインターフェイス)に抽象化し、リクエストを処理し、モデルとコントローラーとやり取りします。実際のHTML / PDF / image / etcのレンダリング。ビューに。フレームワークは、多くの場合、ルーティングなどの他のツールを提供します(リクエストURIの複雑な処理を可能にするため(例:リクエストのマッピング "http://example.com/users/1 "コントローラーUsersに送信されます。コントローラーUsersは、IDが1)のユーザーモデルと、セッションの抽象化およびその他の基本構造を検索します。
また、フレームワークを使用してプロフェッショナルになることは本当に重要ですか?必ずしも; フレームワークは生活を楽にします。ただし、プロになるために使用する必要はありません。フレームワークは便利な抽象化と標準化を提供しますが、ほとんどの場合、それらは要件ではありません。
いくつかの答えを読んだ後、最初に、どのフレームワークを使用するか、またはフレームワークを使用するかどうか(プロとして)の選択肢があまりないことを伝えたいと思います。私はあなたを怖がらせたくありませんが、1つのフレームワークから別のフレームワークへの移動を可能にし、同時に複数のフレームワークを使用できるように、PHPについて十分に理解する必要があります。
CakePHPなどのPHPフレームワークを使用する必要があるのはいつですか?
これに対する普遍的な答えはありません。専門家として、あなたは特定の問題を解決する任務を負います。これは、特にクライアントが特定の要求を持っている場合、各プロジェクトの時期と内容の決定要因になります。しかし、一般的に言えば、独自のフレームワーク(WordpressやPHPBBなど)を持つ既存のアプリケーションを変更または拡張する場合を除き、PHPでは常に何らかのフレームワークを使用します。
これや他の同様のPHPフレームワークが私に提供するものは何ですか?
ダークが言ったように、それらは抽象化を提供します。これが意味することは、彼らが共通のマルチステップ手順を取り、可能な限りシンプルで合理化することを試みることです。要するに、彼らは一般的なタスクのために水だけのソリューションを提示しようとします。
そして、プロフェッショナルになるためにフレームワークを使用することは本当に重要ですか?
一般的に言って、専門家になるためにフレームワークを使用することは重要ではありません。しかし現実的には、少なくともいくつかの一般的なフレームワークに精通していなければ、あまりキャリアを積むことはできません。フレームワークのないPHPは、stdライブラリのないC ++に似ています。あなたはそれを必要とせず、あなたは言語の下位レベルの埋め込みブロック機能を直接使用するので、実際にそれなしでより多くを行うことができますが、同じことをするのにはるかに時間がかかります。
そして、好きな機能を提供する独自のフレームワークを作成できますか?
はい。実際、意図しない場合でも、そうなる可能性があります。これにより、私は拡張可能なすべてのフレームワークを意味するのではなく、タスクを実行する基本的な機能とスクリプトのツールバッグのように、平均的なフレームワークで処理できるほど一般的または汎用的ではありません。私は基本的に、いくつかの異なるcurlおよびストリーム/ソケットユーティリティを備えた、さまざまなファイルシステム、プロセス処理、およびrex-ex tidビットで構成されています。
データベースとオンラインAPIの対話をするために私自身の方法をハッキングするのに何年も費やした人によくあり、フレームワークを使用し始めたばかりで、可能な場合は少なくとも彼らが何をしているのかを理解しているときに使用してください。
データベースを初めて操作するときにすぐにRedBeanにジャンプしないで、最初にDBを手動で操作してください。これにより、実際にDBをフェッチして実行していることを完全に理解できます。これは、スケーラビリティに非常に役立ちます。また、使用しているフレームワークが必要なことを行っていないときに、独自のソリューションを作成することもできます。
何が起こっているかを理解したら、フレームワークを使用してください!とても簡単になります。クエリを保存してから結果をループするという狂気mysql_fetch_assoc
はすべてなくなり、単一の呼び出しになります:$book = R::load( "book", $id )
。生産性が大幅に向上し、将来のバグを修正したり、将来の機能をはるかに簡単に追加したりできます。
自分が同じことを何度も繰り返していることに気付いたら、周りを見回して、自分でやったのと同じ冗長なことを行うフレームワークがあるかどうかを確認してください。誇大宣伝のためにフレームワークを使用しないでください。個人的にはCodeIgniterとRasmus Lerdorfの「フレームワークなしのPHP MVCフレームワーク」が好きですhttp://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html
フレームワークx、y、またはzを使用する理由を慎重に検討することをお勧めします。すべてのフレームワークは機能を提供するだけでなく、自分で実装する必要はなく、考え方も提供します。Spring、JEE、Rails、またはDjangoをご覧ください。わずかな時間でWebアプリケーションを踏み出すのに十分な4つのフレームワーク。
ただし、4つすべてが、Webアプリの構築方法に関する独自の考え方を推進しています。それがあなたのニーズに合わないか、あなたの味に合わないなら、あなたは物事をさらに進めるのに苦労するでしょう。
これは非常に急進的な比較でしたが、おそらく小さなライブラリを構築することでニーズに合うでしょう。しかし、フレームワークを知ることは、大規模なチームで仕事をしたり、新しい仕事を見つけるのに役立ちます。それは、ソフトウェア開発全体に興味があることを示しているからです。
フレームワークはいつでも使用できます。コードの再利用性、読みやすさを向上させ、開発時間を少し節約します。
PHPの経験はあまりありませんが、フレームワークの使用をお勧めします。