私は PHP でいくつかのアプリケーションを書き始め、言語に慣れてきました。誰かが CakePHP と CodeIgniter について教えてくれました。これらが私にどのように役立つか、そしてフレームワークを学ぶために時間を費やす価値があるかどうかをよりよく理解したいと思いましたか?
12 に答える
私の哲学は、現在のニーズを解決する場合にのみ何かを使用する必要があるということです.
特にこの分野では、単にフレームワークを使用するため、または何かを使用する必要があると感じるためにフレームワークを使用する傾向があります。私はそのような慣習を思いとどまらせます。また、フレームワークは、困難な方法で物事を行ったときに最も価値があると思います。そのため、どのような問題があり、その状況でフレームワークがどのように役立つかをよく理解できます。フレームワークの選択は状況によって異なります。
とは言っても、Web アプリケーションでの MVC パターンは便利なので、少なくとも 1 つを学んでも損はありません。ただし、かなり最小限のフレームワークに固執します。ここで CodeIgniter が思い浮かびます。
最後に、フレームワークのもう 1 つの危険は、フレームワークが非常に侵略的になり、もはや PHP を使用していないか、CakePHP や Symfony などを使用している可能性があることです。それは必ずしも問題ではありませんが、非常に侵襲的であることの危険性は、PHP の基礎を十分に理解していないことです。
私は自分のプログラミング経験について話したいだけです。私はまだ初心者ですが、
- 最初にフレームワークを使用することで、コーディング スタイル/ルールに慣れることができます。フレームワークのほとんどは、コードの記述方法について深く考えられているため、これは良いことです。要するに、私はより良いスタイルとよりきれいなコードを手に入れます
- 通常、フレームワークには、インターネットで見つけることができる多くの武器 (プラグインやライブラリ) が付属しています。これにより、コーディング時間が短縮され、無駄な時間が削減されます。つまり、ビジネスプロセスを考える貴重な時間を自分で作ることができます
- オープンソースのフレームワークを使えば、既にフレームワークを知っていておそらく習得しているプログラマーが他にもいるので、他のプログラマーと簡単に共同作業を行うことができます。
- 実際、私は組織化されたプログラマーではありませんが、オープン ソース フレームワークを使用する前のことです。おそらく私のように、あなたはもっと組織的になるでしょう
今のところあなたと共有できるのはそれだけです。私は英語で書くのが苦手です。申し訳ありません。しかし、要点は、フレームワークを使用することをお勧めします
幸せなコーディングの友達。
私にとってのフレームワークは、スピードを上げて時間を節約するための優れたツールです。やり直しに時間を費やしたくないからです。時間を節約したいので、それがどれだけかわからないからではありません。 。あなたがそうするならば、あなたはそれの代金を払うでしょう。
私にとって、フレームワークは、すでに経験豊富なプログラマーであり、フレームワークが以下で大まかにどのように機能するかを知っていて(大まかに正確ではない)、自信を持って再作成できる場合に適しています。このフレームワークを単純化するように並べ替えます。その場合、フレームワークはあなたにとって急行車であり、フレームワークの準備ができていないことや、異常なことやその他の奇妙なことをしたい場合でも、苦痛を引き起こすことはありません。
そうでない場合は、昔ながらのPHPを使用して問題を解決し、指で言語を演奏するという苦痛を乗り越えて、最初に優れたプログラミング手法とパラダイムおよびパターンについて学習することをお勧めします。そうでなければ、あなたは大規模なチームに参加する新卒者の1人になり、彼らの最初のプロジェクトは、コーディングが非常に少なく、構成とパッチ適用に多くを必要とする非常に強力なフレームワークを備えたプロジェクトに取り組んでいます。あなたは決して優れたプログラマーになることはなく、優れたPHPアプリケーションを最初から構築することはできません。
複雑なフレームワークを使用している組織にいる場合はどうでしょうか。
私が上で述べたことに触れるまで、この場合はPHPの昔ながらの問題を解決するために、自分の時間を費やしてください。そうしないと、プログラミングに自信が持てなくなり、「これらのステップがそれを実行する方法であることがわかっている」と自分に言い聞かせ続けることはありません。それはプログラミングではありません(少し極端です:))。
複雑なフレームワークと単純なフレームワーク
多くの人が使用しているフレームワークの中には、圧倒的なものもあります。追跡できなくなるレイヤーが多すぎます。これらのフレームワークは通常、ステレオタイプであるもの、多くの構成ファイル用であり、何か変わったことをしたい場合は、フレームワークライターになる方がよいでしょう(ここでは少し誇張されています:))。ここでは名前を挙げたくありませんが、名前に出会うとわかります。
次の投稿は、 https ://stackoverflow.com/questions/3265509/what-are-the-benefits-of-using-a- で RenderIn の投稿への回答を書いていたときにすぐに閉じられたスレッドへの返信です。プログラミング フレームワーク. スレッドは閉じられ、コメントに彼をここに誘導するリンクが配置されたので、ここで彼の質問に答えようとします. 以下の引用は、私が提出しようとしていたものです。
「あなたとあなたの組織に Joomla! を勧めさせてください。私の最後の雇用主では、PHP を手に入れなければなりませんでした (それまでの経験はありませんでした)。 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 関連のもの) について疑問に思っている人に役立つことを願っています。
フレームワークは、開発者のチームが同じプロジェクトに取り組んでいる場合に最適です。MVC コントローラーは、デザイナーとプログラマーを見事に統合します。ただし、「フレームワークのような」要素を作成して車輪を「再発明」することは、それほど悪い考えではありません。大規模なプロジェクトに取り組んでいる場合は、コードに取り掛かり、ニーズに合わせてすべてをカスタマイズすることをお勧めします。完全にプロジェクト専用に開発されるため、より強力な製品になります。
CodeIgniter は EllisLab チームの製品であり、主な製品は CodeIgniter で開発された Expression Engine です。
CI をしばらく使用した後、Yii Framework を使用する方が便利であることがわかりました。拡張機能がたくさんあります。そして、良いドキュメントで理解するのはそれほど難しくありません。
CakePHP は、CodeIgniter に近いと思います。
単純なスクリプト以外にもフレームワークを使用することを強くお勧めします。やり過ぎに思えることもあるかもしれませんが、そうではないと私は主張します。私はそれを必要としないと思ったことが何度かありました (単純なアプリ、3 db テーブルの基本的な CRUD)。
その直後、手動で mysql_escape_string や XSS フィルタリングなどを行っていることに気付きました。それ以来、フレームワーク以外のコードを書くのは、動作するコードよりもセットアップに時間がかかると思われるときだけです。そして、それはめったに起こりません。
PHP フレームワークを推奨する必要がある場合は、プロジェクトの複雑さに応じて、CodeIgniter または Yii Framework を使用する必要があります。