web-dev-qa-db-ja.com

PHPフレームワークを使用するかどうか?

私はPHPでいくつかのアプリケーションを書き始め、その言語に慣れてきました。誰かがCakePHPとCodeIgniterについて教えてくれました。これらがどのように役立つか、そしてフレームワークを学ぶために時間を費やす価値があるかどうかをよりよく理解したかったのですか?

34
Jonathan Lyon

MVC PHPフレームワークを使用する利点は何ですか?

PHPフレームワークを使用することには多くの利点があります。それらを使用することの主な利点のいくつかを見てみましょう。

  1. これらのPHPフレームワークはいくつかのデザインパターンに従うため、フレームワークを使用する場合は、コーディング規則に従う必要があります。これにより、コードはクリーンで拡張可能になります。
  2. 人気のあるPHP CakePHP、CodeIgniter、Zend Framework、Symfonyなどのフレームワークは、ビジネスロジックをユーザーインターフェイスから分離するModel View Controller(MVC)デザインパターンに従い、コードをよりクリーンで拡張可能にします。
  3. 誰もが推測できるように、これらのフレームワークには、作業を簡単にするための多くのライブラリが含まれています。例:フォームを検証するには、通常のコーディングシナリオ(フレームワークを使用しない)で行う必要があるほど多くのコードを記述する必要はありません。通常、ライブラリを呼び出す数行のコードで十分です。
  4. チームで大規模なプロジェクトに取り組んでいる間、MVC PHPフレームワークは、開発者にモジュールの一部を開発するように割り当てることができるため、開発に最適なツールになります。これらの開発されたモジュールは、最終レベルでは非常に簡単です。
  5. これらのMVCフレームワークは、プロジェクトを迅速に開発するのに本当に役立ちます。フレームワークをよく知っていれば、プロジェクトの期限について心配する必要はありません。
  6. これらのMVCフレームワークのほとんどは、明確なURLアプローチを使用して、WebプロジェクトをSEOフレンドリーにします。

チェック 記事

56
Sadegh

私の哲学は、それがあなたが現在持っているニーズを解決するときだけ何かを使うべきであるということです。

特にこの領域では、フレームワークを使用するために、または何かを使用する必要があると感じたために、フレームワークを単に使用する傾向があります。私はそのような慣行を思いとどまらせます。また、フレームワークは、あなたが苦労して物事を行ったときに最も価値があると思うので、あなたはあなたが抱えている問題とフレームワークがあなたをどのように助けることができるかをよく理解していますその状況で。フレームワークの選択は状況によって異なります。

とはいえ、Webアプリケーションを使用したMVCパターンは便利なので、少なくとも1つを習得しても問題はありません。しかし、私はかなりミニマリストのフレームワークに固執します。ここでCodeIgniterが思い浮かびます。

最後に、フレームワークのもう1つの危険性は、フレームワークが非常に侵襲的であるため、PHPを実行しなくなったり、CakePHPやSymfonyなどを実行したりする可能性があることです。これは必ずしも問題ではありませんが、非常に侵襲的であるという危険性は、PHPで十分な根拠が得られないことです。変更したい場合は、単純に難しすぎて、決してそれをすることはできません。

37
cletus

PHPフレームワークの優れた利点の1つは、多くの一般的なWebアプリケーションのニーズにおける車輪の再発明を最小限に抑えることです。セキュリティの問題、適切な例外処理、RESTful URL、およびコードの再利用性サイトはかなり普遍的な考慮事項です。

フレームワークのツールに慣れて、それがサポートする完全なMVCシステムを採用するかどうかを確認する方が簡単な場合があります。そのために、ZendFrameworkに精通することをお勧めします。 ZFは、セキュリティからLucene検索まで、特定の用途のために個別に実装できるクラスのライブラリとして機能しますが、一緒に使用すると、完全に具体化されたMVCパラダイムを実装するクラスが含まれます。

7
Robert Elwell

プログラミングの自分の経験についてお話ししたいのですが、まだ初心者です。

  1. 最初にフレームワークを使用することで、コーディングスタイル/ルールに慣れることができます。これは、ほとんどのフレームワークがコードの記述方法について深く考えられているためです。要するに、私はより良いスタイルとよりクリーンなコードを手に入れます
  2. 通常、フレームワークには多くの武器(プラグインやライブラリ)が付属しており、インターネットで見つけることができます。これにより、コーディング時間が短縮され、無駄な時間が削減されます。要するに、あなたはビジネスプロセスについて考えるあなた自身の貴重な時間を作ることができます
  3. オープンソースフレームワークを使用すると、フレームワークをすでに知っていて、おそらく習得している他のプログラマーがいます。そうすれば、他の人と簡単にコラボレーションできます。
  4. 実のところ、私はよく組織されたプログラマーではありませんが、オープンソースフレームワークを使用する前でした。おそらく私のようにあなたはもっと整理されるでしょう

今のところ共有できるのはそれだけです。英語で書くのは苦手です。ごめんなさい。しかし、ポイントは、フレームワークを使用することをお勧めします

幸せなコーディングの友達。

6
ibnu triyono

免責事項:私はPHPプログラマーではなく、PHPアプリケーションを作成したことはありません。一方、私は自分のサイトとショッピングカートに多くのphp cmssをインストール、カスタマイズ、使用しました。

私の意見では、phpは深刻な問題に苦しんでいます。最大の問題は、「フレームワーク」は、ほとんどすべての大規模で成功したプロジェクトにとって、外国語のように見えるということです。 PHPコードはすぐにスパゲッティサラダになる傾向があります:スパゲッティコードとスパゲッティSQLを組み合わせたスパゲッティhtml。

これまでで最も成功したショッピングカートの1つであるosCommerceは、ほとんど保守できません。これは、大多数のphpプロジェクトにも当てはまります。

プロジェクトにフレームワークを使用する必要があるかどうかにかかわらず、私はそう言います!間違いなく!プロジェクトの規模に関係なく、Webフレームワークを使用すると、コードを整理して保守可能なコードを作成するのに役立ちます。

また、フレームワークを使用していない場合でも、プログラミングスタイルに影響を与えます。

5
Mouk

PHPフレームワークを学ぶために時間を費やすことは間違いなく良い投資だと思います。1つは、誰かがフレームワークの設計の問題にどのように取り組んだか、あなたの=を整理する方法を教えてくれるでしょう。 PHPコード、およびセッションやデータベースアクセスなどの処理方法...など...

ほとんどの場合、Webアプリの開発に真剣に取り組んでいる場合は、独自のフレームワークを最初から作成するのではなく、何らかのフレームワークを使用する必要があります。

独自のフレームワークを作成すべきではないいくつかの理由:

  1. すでに何度も行われているのに、あなたは車輪の再発明をしているのです。
  2. 多くの開発者によってテストされ、繰り返されてきたオープンソースフレームワークよりも優れた仕事をする可能性はほとんどありません。
  3. 実際にアプリケーションを作成するよりも、独自のフレームワークを作成してデバッグすることにすべての時間を費やします。

そうです、いくつかのフレームワークを学び、あなたに最適なフレームワークを見つけてください!

5
LeeMobile

MVCフレームワークを使用すると、開発がより簡単になります。特にデータベース関連のアプリケーション。それはあなたに非常に明確なフォルダ構造とたくさんのコードライブラリを提供します。 CodeIgniterから始めることをお勧めします。

2
stanleyxu2005

次の投稿は、RenderInの投稿への回答を書いているときにすぐに閉じられたスレッドへの応答です: https://stackoverflow.com/questions/3265509/what-are-the-benefits-of- using-a-programming-framework 。スレッドが閉じられ、コメントに彼をここに誘導するリンクが配置されたので、ここで彼の質問に答えようとします。以下の引用では、私が提出しようとしていたものです:

「Joomla!をあなたとあなたの組織に推薦させてください。私の最後の雇用主で、私はPHP(これまでの経験はありません)を拾わなければなりませんでした。そして約1か月とPHPの手動コーディングの半分は、ユーザーにビデオを提供するJoomla!コンポーネントのコーディングを任されました。また、技術者以外の管理者が分類、編集、削除、など、ビデオだけでなく、それらのサムネイルなどを提供します。

そのための実用的なプロトタイプを入手するには、約2か月かかりました(私は当時インターンで、週に20〜24時間しか働いていなかったので、PHP MVC開発方法論の経験だけでなく、経験もあれば、私よりもはるかに早く実用的なプロトタイプを作成できたはずです。」

このスレッドのOPに応えて:フレームワークを学ぶために時間を費やすことは間違いなく価値があります(私の投稿までここで言及されているのを見たことがないので、もう一度言います:PHPフレームワークの場合はお勧めしますJoomla!)。

フレームワーク(Joomla!のようなオープンソースのもの)を学ぶことの利点のいくつか:

  • あなたの質問に答えるのを助けることができる人々の巨大なコミュニティ(stackoverflow以外;笑)
  • すべてのソースコードにアクセスできるので、好きなようにカスタマイズできます。
  • 機能を強化するための無料(および有料)のサードパーティプラグインがたくさん。
  • たくさんのチュートリアル。
  • フレームワークは、多くのありふれたタスクを自動的に実行します。

箇条書き4を参照して:Joomla!データベース接続管理などの処理を行うので、MySQLデータベースに接続したり、さまざまなタイプのデータベース結果(たとえば、1つのレコード、最初の最初の結果)を返すために、独自のカスタム関数をすべて作成する必要はありません。レコード、レコードのリストなど)、あなたは単に彼らに電話をかけるだけです。 Joomla!のAPIは、Webサイトの次のサイトで公開されています: http://api.joomla.org/

とにかく、これがRenderInやフレームワーク(特にPHP関連のフレームワーク)について疑問に思っている人に役立つことを願っています。

1
KSwift87

同じプロジェクトに取り組んでいる開発者のチームがいる場合、フレームワークは素晴らしいものです。 MVCコントローラーは、デザイナーとプログラマーを美しく統合します。ただし、「フレームワークのような」要素を作成してホイールを「再発明」することは、それほど悪い考えではありません。大規模なプロジェクトに取り組んでいる場合は、コードを使いこなして、ニーズに合わせてすべてをカスタマイズすることをお勧めします。プロジェクトのために完全に開発されるため、より強力な製品になります。

1
Greg Solak

私にとってのフレームワークは、スピードを上げて時間を節約するための優れたツールです。それをやり直すために時間を費やしたくないからです。知らない時間を節約したいからではありません。いくらですか。そうすればあなたはそれを支払うでしょう。

私にとって、フレームワークは、あなたがすでに経験豊富なプログラマーであり、フレームワークが以下で大まかにどのように機能するかを知っている(大まかに正確ではない)と感じ、自信を持って再作成できる場合に適しています。このフレームワークを単純化するようなものです。その場合、フレームワークはあなたにとって急行車であり、フレームワークの準備ができていないことや、異常なことやその他の奇妙なことをしたい場合でも、苦痛を感じることはありません。

そうでない場合は、昔ながらのPHP)を使用して問題を解決し、指で言語を演奏するという苦痛を乗り越えて、最初に優れたプログラミング手法とパラダイムおよびパターンについて学習することをお勧めします。そうでなければ、あなたは大規模なチームに参加する新卒者の1人になり、彼らの最初のプロジェクトは、コーディングが非常に少なく、構成とパッチ適用に多くを必要とする非常に強力なフレームワークを備えたプロジェクトに取り組んでいます。あなたは決して優れたプログラマーになることはできません。 t良いPHPアプリケーションを最初から構築します。

複雑なフレームワークを使用している組織にいる場合はどうですか?

この場合、昔ながらの問題を解決するために自分の時間を費やしてくださいPHP上記の内容に触れるまで。そうしないと、プログラミングに自信が持てなくなり、 「これらのステップがそれを行う方法であることを私は知っている」と自分に言い聞かせます。それはプログラミングではありません(少し極端です:))。

複雑なフレームワークと単純なフレームワーク

多くの人が使用しているフレームワークの中には、圧倒的なものもあります。追跡できなくなるレイヤーが多すぎます。これらのフレームワークは通常、ステレオタイプであるもの、多くの構成ファイル用であり、何か変わったことをしたい場合は、フレームワークライターになる方がよいでしょう(ここでは少し誇張されています:))。ここでは名前を挙げたくありませんが、名前に出会うとわかります。

1
ttchong

単純なスクリプト以外の目的でフレームワークを使用することを強くお勧めします。時にはやり過ぎに見えるかもしれませんが、そうではないと私は主張します。必要ないと思ったことが何度かありました(シンプルなアプリ、3 dBテーブルの基本的なCRUD)。

その直後、私は手動のmysql_escape_string、XSSフィルタリングなどを行っていることに気付きました。それ以降は、セットアップに作業コードよりも多くの時間がかかると思われる場合にのみ、フレームワーク以外のコードを記述します。そして、それはめったに起こりません。

PHPフレームワークを推奨する必要がある場合は、プロジェクトの複雑さに応じて、CodeIgniterまたはYiiフレームワークを使用する必要があります。

0
mihaibaboi

CodeIgniterはEllisLabチームの製品であり、その主な製品はCodeIgniterで開発されたExpressionEngineです。

CIをしばらく使用した後、Yii Frameworkを使用する方が便利であることがわかりました。多くの拡張機能があり、優れたドキュメントで理解するのはそれほど難しくありません。

CakePHPは、CodeIgniterに近いと思います。

0
almix