「ソフトウェアアーキテクチャ」-これらの言葉は通常、ほとんどのフリーランスのWeb開発者を怖がらせます。 3層、MVC、シングルトン、工場...「待って! やめて! 「なぜ複雑なのですか?」-彼らは応答であなたに言うでしょう、「まあ、例えば、Drupal-彼らはTemkoを行い、モジュールはねじれ、構成され、基本的にサイトは準備ができています。」実際、CMS Drupalは、最小限の労力。
「Drupalイデオロギー」などの概念を聞いたことがある人は多いでしょう。これがまさにこのCMSをとても便利で効率的なプラットフォームにした理由です。 しかし、イデオロギーがよく知られているMVCパターンまたはModel-View-Controllerに基づいていることを理解している人はほとんどいないでしょう。
MVCパターン(つまり、デザインパターン)は、3つの相互接続された要素で構成されています:モデル、表現、コントローラー。 このコンポーネントの分離により、ユーザーインターフェイス、制御ロジック、およびコンテンツを区別できます。
モデルは実際にはコンテンツであり、サブジェクト領域を反映するデータであり、リレーショナルデータベーステーブル(MySQL、PostgreSQL、MS SQL Server、Oracle)などの何らかのスキームに従って構造化されています。 いわゆるDB API(データベースを操作するための一連の関数)もモデルの一部です。 さらに、モデルには、データ型とそのプロパティおよび関係を定義するプログラムコードが含まれています。
Drupalの観点からは、モデルはDBに加えて、node.module、taxonomy.module、CCKなどのモジュールです。 他のサードパーティモジュールは、その基本機能とともに、データ型またはデータベースとの通信機能でモデルを補完できます。
コントローラーは、ユーザーが入力したデータを解釈し、ユーザーのアクションに応じて状態の変更を実行し、モデルのエンティティを操作してビューに変換し、通常はシステムギアが回転するようにすべてを実行します。 Drupalでは、コントローラーは、path.module、メニューシステム、フック、システムを収集およびロードするindex.phpファイルなどの基本モジュールです。 また、追加モジュールによって実装されるすべてのロジックは、コントローラーの一部です。
ビューは、モデルをユーザーに表示する役割を果たします。 Drupalの場合、これらはサイトの最終ページであり、訪問者と現在のモデルからのリクエストに基づいてコントローラーによってコンパイルされます。 このビューには、PHPTemplateエンジンで記述されたページテンプレート、CSSスタイルファイル、Javascriptが含まれています。これは、インターフェイスの調整を担当します。 ビューを介して、ユーザーはサイトと通信します-コントローラーはブラウザーから送信されたHTTP GETおよびPOSTリクエストのみを処理し、URLを解釈してから、再度ビューを形成してユーザーコンピューターに転送します。
Drupalでの迅速で効果的なWebサイト開発は、説明したモデルを使用すると、解決する問題を個別のコンポーネントに分割でき、これらの各コンポーネントの実装に既製のソリューションが提供されるためです。 モデルやコントローラーを作り直す必要はありません。推奨回路を使用してください。 多くの場合、完全なDrupal Webアプリケーションを作成するために、ビューにいくつかの小さな変更を加えるだけで対応できます。 ただし、コンテンツの特定のロジックまたは構造を実装する必要がある場合は、既存のバージョンを追加または変更してコントローラーとモデルの一部を実装するだけで十分です。
このアプローチは、ASP.NET、J2EE、Springなどのテクノロジーですでに確立されています。 コンテンツ管理システムとしてのDrupalは 、この経験を大いに活用し、実際、最も人気のあるLAMP(Linux-Apache-MySQL-PHP)バンドルのMVCアーキテクチャに基づいて、あらゆるタイプのWebサイトを作成するための完全なプラットフォームを提供しました。 間違いなく、このCMSは、この方向を含め、多くの改善が必要ですが、今日では強力なWeb開発ツールとして使用できます。
PS。 トピックの著者はアリラシリンhabrayuzerで 、すべてのプラスは彼女のプラスです。