web-dev-qa-db-ja.com

Yiiのコンポーネント、拡張機能、モジュールの違いは何ですか?

私はYiiフレームワークに不慣れで、保護されたフォルダー内でmoduleextensioncomponentに出くわしました。

誰でもこれらすべてを理論的にも実際的にも区別してください。

28
Workonphp

Componentsは、モデルに基づいてビジネスロジックを作成するのに役立つクラスです。すべてのモデルファイルが同じロジックを使用していると仮定します。これにより、各コントローラーに書き込む代わりに、コンポーネント内にロジックを書き込むことができます。

Extensionsはライブラリのようなもので、基本的にモデルに依存しないため、現在または将来のプロジェクトのどこでも再利用できます。たとえば、メールの拡張子を書く。

Moduleは、モデル、ビュー、コントローラー、およびその他のサポートコンポーネントで構成される自己完結型のソフトウェアユニットです。多くの点で、モジュールはアプリケーションに似ています。主な違いは、モジュールを単独でデプロイすることはできず、アプリケーション内に存在する必要があることです。ユーザーは、通常のアプリケーションコントローラーと同じように、モジュール内のコントローラーにアクセスできます。

お役に立てば幸いです。

44
user1481970

ここに私の2セントを追加しています...

コンポーネント

このサイトのみに固有の、何かを実行したい独自のクラスファイル。例としては、アップローダーアプリのZip圧縮クラス、一部のセキュリティアプリのカスタム暗号化アルゴリズムがあります。

拡張機能

多くの場合サードパーティによって提供される、再利用可能な外部クラスファイルまたはファイルのグループ。例としては、あなたや他の誰かが作成したfacebook connectライブラリ、リストを取得するためのebay.comのapiライブラリ、googleから読み取るためのrssリーダーライブラリなどがあります。

モジュール

ミニyiiベースのサイトは、サイトのサブセットとして機能し、他のアプリケーションで再利用できるか、独立して構築されてyiiさらにモジュール化されます)例としては、サイトに依存しないがログインしたユーザー情報のみを使用するフォーラムモジュール、openid、facebook、googleなどのいくつかのサイトとの統合を含むユーザー認証モジュールがあります。

16
arkoak