私はPHPでいくつかのアプリケーションを書き始め、その言語に慣れてきました。誰かがCakePHPとCodeIgniterについて教えてくれました。これらがどのように役立つか、そしてフレームワークを学ぶために時間を費やす価値があるかどうかをよりよく理解したかったのですか?
MVC PHPフレームワークを使用する利点は何ですか?
PHPフレームワークを使用することには多くの利点があります。それらを使用することの主な利点のいくつかを見てみましょう。
チェック 記事
私の哲学は、それがあなたが現在持っているニーズを解決するときだけ何かを使うべきであるということです。
特にこの領域では、フレームワークを使用するために、または何かを使用する必要があると感じたために、フレームワークを単に使用する傾向があります。私はそのような慣行を思いとどまらせます。また、フレームワークは、あなたが苦労して物事を行ったときに最も価値があると思うので、あなたはあなたが抱えている問題とフレームワークがあなたをどのように助けることができるかをよく理解していますその状況で。フレームワークの選択は状況によって異なります。
とはいえ、Webアプリケーションを使用したMVCパターンは便利なので、少なくとも1つを習得しても問題はありません。しかし、私はかなりミニマリストのフレームワークに固執します。ここでCodeIgniterが思い浮かびます。
最後に、フレームワークのもう1つの危険性は、フレームワークが非常に侵襲的であるため、PHPを実行しなくなったり、CakePHPやSymfonyなどを実行したりする可能性があることです。これは必ずしも問題ではありませんが、非常に侵襲的であるという危険性は、PHPで十分な根拠が得られないことです。変更したい場合は、単純に難しすぎて、決してそれをすることはできません。
PHPフレームワークの優れた利点の1つは、多くの一般的なWebアプリケーションのニーズにおける車輪の再発明を最小限に抑えることです。セキュリティの問題、適切な例外処理、RESTful URL、およびコードの再利用性サイトはかなり普遍的な考慮事項です。
フレームワークのツールに慣れて、それがサポートする完全なMVCシステムを採用するかどうかを確認する方が簡単な場合があります。そのために、ZendFrameworkに精通することをお勧めします。 ZFは、セキュリティからLucene検索まで、特定の用途のために個別に実装できるクラスのライブラリとして機能しますが、一緒に使用すると、完全に具体化されたMVCパラダイムを実装するクラスが含まれます。
プログラミングの自分の経験についてお話ししたいのですが、まだ初心者です。
今のところ共有できるのはそれだけです。英語で書くのは苦手です。ごめんなさい。しかし、ポイントは、フレームワークを使用することをお勧めします
幸せなコーディングの友達。
免責事項:私はPHPプログラマーではなく、PHPアプリケーションを作成したことはありません。一方、私は自分のサイトとショッピングカートに多くのphp cmssをインストール、カスタマイズ、使用しました。
私の意見では、phpは深刻な問題に苦しんでいます。最大の問題は、「フレームワーク」は、ほとんどすべての大規模で成功したプロジェクトにとって、外国語のように見えるということです。 PHPコードはすぐにスパゲッティサラダになる傾向があります:スパゲッティコードとスパゲッティSQLを組み合わせたスパゲッティhtml。
これまでで最も成功したショッピングカートの1つであるosCommerceは、ほとんど保守できません。これは、大多数のphpプロジェクトにも当てはまります。
プロジェクトにフレームワークを使用する必要があるかどうかにかかわらず、私はそう言います!間違いなく!プロジェクトの規模に関係なく、Webフレームワークを使用すると、コードを整理して保守可能なコードを作成するのに役立ちます。
また、フレームワークを使用していない場合でも、プログラミングスタイルに影響を与えます。
PHPフレームワークを学ぶために時間を費やすことは間違いなく良い投資だと思います。1つは、誰かがフレームワークの設計の問題にどのように取り組んだか、あなたの=を整理する方法を教えてくれるでしょう。 PHPコード、およびセッションやデータベースアクセスなどの処理方法...など...
ほとんどの場合、Webアプリの開発に真剣に取り組んでいる場合は、独自のフレームワークを最初から作成するのではなく、何らかのフレームワークを使用する必要があります。
独自のフレームワークを作成すべきではないいくつかの理由:
そうです、いくつかのフレームワークを学び、あなたに最適なフレームワークを見つけてください!
MVCフレームワークを使用すると、開発がより簡単になります。特にデータベース関連のアプリケーション。それはあなたに非常に明確なフォルダ構造とたくさんのコードライブラリを提供します。 CodeIgniterから始めることをお勧めします。
次の投稿は、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!のようなオープンソースのもの)を学ぶことの利点のいくつか:
箇条書き4を参照して:Joomla!データベース接続管理などの処理を行うので、MySQLデータベースに接続したり、さまざまなタイプのデータベース結果(たとえば、1つのレコード、最初の最初の結果)を返すために、独自のカスタム関数をすべて作成する必要はありません。レコード、レコードのリストなど)、あなたは単に彼らに電話をかけるだけです。 Joomla!のAPIは、Webサイトの次のサイトで公開されています: http://api.joomla.org/
とにかく、これがRenderInやフレームワーク(特にPHP関連のフレームワーク)について疑問に思っている人に役立つことを願っています。
同じプロジェクトに取り組んでいる開発者のチームがいる場合、フレームワークは素晴らしいものです。 MVCコントローラーは、デザイナーとプログラマーを美しく統合します。ただし、「フレームワークのような」要素を作成してホイールを「再発明」することは、それほど悪い考えではありません。大規模なプロジェクトに取り組んでいる場合は、コードを使いこなして、ニーズに合わせてすべてをカスタマイズすることをお勧めします。プロジェクトのために完全に開発されるため、より強力な製品になります。
私にとってのフレームワークは、スピードを上げて時間を節約するための優れたツールです。それをやり直すために時間を費やしたくないからです。知らない時間を節約したいからではありません。いくらですか。そうすればあなたはそれを支払うでしょう。
私にとって、フレームワークは、あなたがすでに経験豊富なプログラマーであり、フレームワークが以下で大まかにどのように機能するかを知っている(大まかに正確ではない)と感じ、自信を持って再作成できる場合に適しています。このフレームワークを単純化するようなものです。その場合、フレームワークはあなたにとって急行車であり、フレームワークの準備ができていないことや、異常なことやその他の奇妙なことをしたい場合でも、苦痛を感じることはありません。
そうでない場合は、昔ながらのPHP)を使用して問題を解決し、指で言語を演奏するという苦痛を乗り越えて、最初に優れたプログラミング手法とパラダイムおよびパターンについて学習することをお勧めします。そうでなければ、あなたは大規模なチームに参加する新卒者の1人になり、彼らの最初のプロジェクトは、コーディングが非常に少なく、構成とパッチ適用に多くを必要とする非常に強力なフレームワークを備えたプロジェクトに取り組んでいます。あなたは決して優れたプログラマーになることはできません。 t良いPHPアプリケーションを最初から構築します。
複雑なフレームワークを使用している組織にいる場合はどうですか?
この場合、昔ながらの問題を解決するために自分の時間を費やしてくださいPHP上記の内容に触れるまで。そうしないと、プログラミングに自信が持てなくなり、 「これらのステップがそれを行う方法であることを私は知っている」と自分に言い聞かせます。それはプログラミングではありません(少し極端です:))。
複雑なフレームワークと単純なフレームワーク
多くの人が使用しているフレームワークの中には、圧倒的なものもあります。追跡できなくなるレイヤーが多すぎます。これらのフレームワークは通常、ステレオタイプであるもの、多くの構成ファイル用であり、何か変わったことをしたい場合は、フレームワークライターになる方がよいでしょう(ここでは少し誇張されています:))。ここでは名前を挙げたくありませんが、名前に出会うとわかります。
単純なスクリプト以外の目的でフレームワークを使用することを強くお勧めします。時にはやり過ぎに見えるかもしれませんが、そうではないと私は主張します。必要ないと思ったことが何度かありました(シンプルなアプリ、3 dBテーブルの基本的なCRUD)。
その直後、私は手動のmysql_escape_string、XSSフィルタリングなどを行っていることに気付きました。それ以降は、セットアップに作業コードよりも多くの時間がかかると思われる場合にのみ、フレームワーク以外のコードを記述します。そして、それはめったに起こりません。
PHPフレームワークを推奨する必要がある場合は、プロジェクトの複雑さに応じて、CodeIgniterまたはYiiフレームワークを使用する必要があります。
CodeIgniterはEllisLabチームの製品であり、その主な製品はCodeIgniterで開発されたExpressionEngineです。
CIをしばらく使用した後、Yii Frameworkを使用する方が便利であることがわかりました。多くの拡張機能があり、優れたドキュメントで理解するのはそれほど難しくありません。
CakePHPは、CodeIgniterに近いと思います。