YiiとCodeIgniterの比較

どういうわけか私 YiiCodeIgniter 比較することを約束しました



現時点では、十分に比較するのに十分なYiiを試したと思います

2つのすばらしいフレームワーク。







開発者



現在、Yiiコアのアクティブな開発者は唯一の開発者ですが、

コミュニティ開発。 希望があれば、考慮されます。



CodeIgniterは、お客様のニーズに合うように会社によって開発されています。 主なオファー

カーネルの変更はほとんどの場合無視されます。



ドキュメント



CodeIgniterのドキュメントは、おそらく私にとってのベンチマークであり続けるでしょう。 全体の90%

機能は、簡潔な言語で非常に簡潔に記述され、完全に装飾されています。



ドキュメントは、開発者のみが作成します。 適切な願いが受け入れられ、

考慮されます。 ロシア語への翻訳はかなり以前から行われています。 すべてをハイライト

関連性はありますが、一部の部分は更新する時間です。



Yiiはもっと複雑でかなり若いです。 したがって、ドキュメントは一部をカバーしていません

興味深い場所(ただし、APIで詳しく説明されています)。 しかし、これから

開発者が苦しむことはありません:最も典型的な瞬間が記述されています。

ケースと使用する必要があります。 ドキュメンテーション言語はより科学的な言語に似ています

私が従事していたロシア語の翻訳の一部、私は文章を構築しようとしました

シンプル)。 デザインはすっきりしていますが、感情を引き起こしません

CodeIgniterのドキュメント。



ドキュメントは開発者によって作成されています。 願いは受け入れられます。 転送が実行されます

いくつかの開発チーム。 これは一元的に行われます

SVN 誰でも翻訳チームに参加できます。



適合性



YiiはPHP5.2で記述され(PHP5.3でも動作します)、PHP4をサポートしていません。 使用されている

PHP5.2の非常に多くの新機能。 仕事にはPDOが必要です。



CodeIgniterはPHP4と互換性があり、第4バージョンのレベルでPHPを使用します。 PHP5.3では、まだ起動していません。



スピード



CodeIgniterは、その軽さとスピードで知られています。 Yiiも非常に高速です。

特に、かなり柔軟なフレームワークを検討している場合。 Yiiの公式サイト

作業速度の比較があります。



ディレクトリ構造



ディレクトリ構造は、CIよりも詳細に構成できます。 おそらくCIで

デフォルトの構造はより理解しやすく、基本的な変更に対する要求はあまりありません。

私は個人的にYiiをCIに似た構造に再構成しました。



オートロード



CIでは、クラスの読み込みは非常によく行われます。 何かが自動的にロードされます

残りは$ this-> loadによるものです。 Yiiはで指定されたすべてを自動的にロードします

構成ファイル。



ルーター



YiiでURLを構築するメカニズムは一見CIに似ていますが、そのようなものをサポートしています

デフォルトルートの無効化や通常のGETサポートなどの便利な機能。



コントローラー



Yiiで命名する場合、CIのMyに対して後置MyControllerが使用されます。

CIのactionMyCool()とmycool これは重複の問題を解決します

クラス名、およびCIで頻繁に発生するパブリックメソッド。



一般的に、Yiiでは、コントローラーはより柔軟です。



不便な点:URLを介して渡されるパラメーターは、$ _GETから取得する必要がありますが、

CIの場合と同様に、メソッドのパラメーターから。



ディスプレイ



CodeIgniterでの表示は、サードパーティのソリューションを使用している場合でも、率直に言って脆弱です。

http://code-igniter.ru/wiki/View、http://code-igniter.ru/wiki/View_helper )すべて

それほど悪くない。



Yiiはそれが得意です。 サポートされているレイアウト、ネストされたビュー、ウィジェット、

独自のテンプレートエンジンを実装するためのAPIがあります(既に「コンパイル」が実装されています)

PHPコードに。



モデル



CIでは、モデルはデータベースに直接接続されます。 他のモデルはありません。

Yiiでは、モデルはActiveRecordを使用するか、データベースで機能しない場合があります。



アクティブな記録



CodeIgniterのActive Recordは常に私に複雑な感情を引き起こしました:一方では

他のいくつかの操作を行うのは良かったです...一般的に、構文はSQLを複製しました

明らかな利点なし。 結果は配列またはstdClassとして返されました。



Yiiでは、状況はより良くなりました。ここでのARは、遅延ロードとリレーションシップをサポートします。

データは、バリデータ、そのメソッド、および

振る舞い(Doctrineに似ています)。



フォーム検証



YiiバリデーターはCodeIgniterよりも優れています。 バリデーターを使用できます

モデルには、かなりの数の組み込みの検証ルールがあり、簡単に実装できます

自分の。



拡張性



Yiiでは、CodeIgniterのMY_を忘れることができます。 すべては通常のOOPの方法で行われます。

現時点では、Yiiでは、うまくいかない行き止まりのコードに出くわしていません。



CIでは、このようなスタブの場所に何度か出くわしました。 解決策は

しかし、毎回かなり汚れています。



フック



CodeIgniterでは、Drupalに似たカーネルフックメカニズムを有効にできます。 Yiiで達成する

同様のものを含める必要はありません:カーネル自体は

特定のポイントでコードを実行する方法は多数あります。



Yiiにないもの



メール、画像、FTP、ZIP、トラックバックを操作するための組み込みクラス、

足場。



また、YiiにはCIにあった形式のヘルパーはありませんが、それらを禁止するものはありません

実現するか、たとえば、小花から借りる。



CIにないもの



優れた柔軟なAPI、コンソール、クラス生成、柔軟な権利システム、

通常のキャッシュ、モデル自体、セッションの通常の実装、OOP。



まとめ



しかし、結果はそうではありません。 誰もが自分でツールを選択します;)



CodeIgniterやYiiのその他の機能で何かを逃したり、他の機能に興味がある場合は、コメントで質問してください。



All Articles