2011-12-20 13 views
0

私はいくつかのPHPフレームワークを読んで、候補をCodeIgniterとSymfonyに還元しました。 CodeIgniterに強く傾いていますが、まだ100%決まっていません。PHPフレームワーク:一般的なステートメントを理解するのに役立ちます

私は一般的な "CodeIgniter対Symfony"の議論を探していません。

Symfonyは「高度な」コーダーと「より大きな」サイトのためのものです。 CodeIgniterは「初心者」のコーダーと「より小さい」サイト用です。しかし、私はまだこれの技術的な証拠を見ていない。 CodeIgniterについて私が見ているすべてが正しいと感じています。

誰もがこれらの声明をベースにしている構造的かつ技術的に説明することはできますか?

私ができることをすべて理解したい。いったん私が決定を下すと、私は一つのフレームワークに注目したいと思います。

おかげで、

マシュー

答えて

4

CodeIgniterのとsymfonyの最大の技術的な差(1版及び2)symfonyは拡張することがはるかに容易であることです。 Symfony2では特にそうです。カスタムコードや他のライブラリのコードに合わせて、フレームワーク全体を置き換えることができます。 Symfony2からいくつでもコアコンポーネントを取得し、独自のフレームワークを構築することもできます。しかし、Symfonyはとても進歩しているので、より高い学習曲線があることに注意することが重要です。

私はそれを見ています:CodeIgniterは、CodeIgniterが解決しようとしている問題のカテゴリに属する​​小さなプロジェクトです。しかし、何かをしたいときはの方法ではなく、CodeIgniterのやり方ではなく、あなたは決して楽しいフレームワークと戦わなければならないでしょう。

一方、Symfony2プロジェクトで作業していて、あなたのやり方をしたいのであれば、そうすることができます。それは必ずしも速くはありませんが、可能です。私にとっては、それが最も重要なことです。あなたが望むことをフレームワークにさせる必要があります。

時間がある場合は、Symfony docscookbookを読んでください。Symfonyが可能なものと、それをカスタマイズして拡張する方法を理解しておく必要があります。

私がCodeIgniterについて知りたいことはすべて正しいと感じています。

次にCodeIgniterに行ってください。最も重要なことは、フレームワーク/ツールセットに慣れていることです。プロジェクトを完了して機能に欠けていることが判明した場合は、いつでも他のフレームワークをチェックアウトすることができます。

+0

「CodeIgniterのやり方ではなく、あなたのやり方をしたいときは、フレームワークと戦わなければならないだろう」 - それを詳しく説明できますか? Afaik CIは、最も制限の少ないフレームワークの1つです。 – stef

+0

@stefフレームワークが何か違った扱いをしたいと思う時が来たら、あなたはそれを変えようとするロードブロッキングに走ります。これは、より小さい、「より速い」フレームワークの間で一般的です。 SymfonyとZFよりも線形である傾向があります。 SymfonyとZFでは、フレームワークの内部動作をより少ない摩擦で置き換えることができます。 –

+0

素晴らしい返答をいただきありがとうございます。私はSymfonyとCodeIgniterの両方で強く読んだり再読したりしました。ドキュメンテーションから判断すると、私は両方のプロジェクトが恒星であると言わなければなりません。私はまだ、「より大きな」対「より小さな」プロジェクトの全体的な問題をよりよく理解しようと努力しています。私は、なぜ、あるフレームワークか他のフレームワークが「より大きな」プロジェクトに適しているかについての明確な(私には)説明を見つけることができないことを認めなければならない。これをうまく理解するために、私が次にやるべきことは、サイト要素を指定してから、CodeIgniterとSymfonyでどのようにしたらよいかを見ていくことです。 – MatthewSchenker

-1

フレームワークなしで開始することをお勧めします。あなたがしばらくプログラミングしていて、MVCのようなコンセプトに慣れていて、なぜこのパターンでコードを実装するのであれば、フレームワークはより意味をなさないようになります。

フレームワークは、プログラマーが多く、MVCのようなアプリケーション層を構築する一貫した方法が必要な大規模プロジェクトに適しています。このフレームワークは、オブジェクト管理のためのいくつかのメカニズムと、アプリケーションイベント(コントローラ)を構築し、ビューロジックをモデルロジックから分離するための一貫した方法を提供するでしょう。

私のPHPアプリケーションは小さくなっているので、私はどのフレームワークも使用していません。ColdFusionでコードを作成するとき、より大きなアプリケーションではMachII、Model-glue、Fusebox、ColdBoxを使用しました。それぞれは何かをうまく使いこなしていましたが、それぞれが一貫性を促進しましたが、それぞれにオーバーヘッドが多く、時にはそのように感じられました。私はフレームワークののため、一部の開発者が詰まっているのを見た。 CFフレームワークを使用しないで小さなアプリケーションを構築するまで、私はCFフレームワークの使用を開始しませんでした。

CodeIgniterが好きな人は、何らかの理由でそれに付いてください。

+0

私はPHPの学習に多くの時間を費やしてきました。しかし、私はフレームワークがデータベース接続のいくつかにどのように役立つのか、特に彼らがすでに組み込まれているいくつかの重要なセキュリティ要素をどのように持っているか好きです。 – MatthewSchenker

-1

穏やかな学習曲線と素晴らしい文書のために、CodeIgniter。あなたが決してあなたがCIを超えていると感じたら、他のフレームワークを行ってください。決してできないかもしれません。