PHP5 abominationからDrupalへの移行計画


8

バックグラウンド

今から1年後、本社は比較的複雑なイントラネットポータルサービス(スケジューリング、実際の追跡とレポートなど)をDrupalに移植する予定です。これが正しい技術的な選択であるかどうかを判断するための努力はほとんど行われていません。また、それがクライアントや上司の制御の及ばない範囲にあります。

現在のポータルは再ファクタリングの最中の嫌悪感であり、最も費用対効果の高い計画は、Doctrine 2を介してドメインモデルレイヤーを取り込み、すべてのビジネスおよび入力検証ロジックの99.9%をモデルに組み込むことです、それがスケルトンビューと認証ロジックレイヤーになるまで、嫌悪感を払いのけます。

質問

Drupalのスペシャリストにとって、これは実行可能なアプローチのように思えますか?Doctrine2はDrupalとうまく連携できますか、それともDrupalの高レベルのロジックはデータとのより緊密な統合を必要としますか?

回答:


9

外部システムをデータ外部システムに保持する必要がある Drupalに接続したいくつかのサイトを実行しました。これは私が私の仕事のほとんどの時間を費やすものです。

これを行う場合、通常は他のシステムのコンテンツを「スタブアウト」するコンテンツタイプを作成します。コンテンツタイプには、他のシステムの一意の識別子のノードタイトルとCCKフィールドのみが含まれます。これに加えて、多数のhook_nodeapi関数があります。たとえば、loadフックはリモートシステムを呼び出し、データをノードに追加します。また、外部データを検索結果に取り込む方法を考案する必要もあります。これにはいくつかの方法がありますが、ここでは説明が長すぎます。

いくつかの欠点がありますが、これはうまく機能し、コメントやタグなどの通常のDrupalのものを許可します。


外部にする必要がある場合、これは良いアプローチです。
ジェレミーフランスの

4

タイムラインを考えると、Drupal 7でこれを構築するのが唯一の賢明なことです。Drupal7の最も顕著な機能の1つは、エンティティ、DBNTG、およびフィールドです。

簡単な概要

  • エンティティは、データ構造を定義する方法です。Drupalに組み込まれているエンティティの例は、ノード(メインコンテンツ)、ユーザー、分類用語です。
  • フィールドは、エンティティにアタッチできるもので、データも保持します。フィールドを使用すると、データを処理する場所が1つしかないという利点があり、さまざまな方法で拡張できます。フィールドの例としては、添付ファイル、または別のエンティティへの参照があります。
  • DBTNG(次世代データベース)は、Drupalコミュニティが新しいデータベース抽象化レイヤーのコードネームを作成したものです。以前は、プレースホルダー(まだサポートされています)を使用してクエリを実行していましたが、現在、ほとんどのクエリはクラスで構築されています。これは、フィールドが設定に基づいて作成されたデータベーステーブルを取得するためでもあります。これは、フィールドが異なる設定で作成されている場合でも機能するコードの作成に役立ちます。

これはほんの一部の機能ですが、これは、Drupalの嫌悪感を作成したくない場合を除いて、Drupalが意図されていない方法で機能させるのではなく、Drupalがどのように機能するかを考え始めて使用する必要があることを意味します。

DrupalはPHPなので、カスタムモジュールを作成し、Doctrine2を使用して必要なことを実行できます。しかし、私の推測では、ほとんどのDrupalサイトとの共通点がほとんどないサイトになるでしょう。


残念ながら、私は約1か月後にクライアントを離れます。Abominationはかなり大きな負荷/使用状況にあり、新しい「機能」が追加されています。全体の状況は、私が部分的により良い方向に舵を取ることに失敗した混乱です。私の弁護では、水の保釈を手伝うために私が雇われる前の週にそれは生きていました。
デビッド

4

これは非常に幅広い質問なので、詳細な回答をさせていただきます。具体的な質問がある場合は、個別の質問としてお尋ねください。

私はあなたが現在のサイトの構造をできるだけ詳細に計画することを提案します。どのような種類の処理を行い、どのようなワークフローがありますか。コンテンツとは、ユーザーとは何か。

コンテンツタイプは、コンテンツを分割する便利な方法です。忌まわしいことでさえ、URLにマップするタイプ(私が望んでいた)を持っているでしょう。

コンテンツタイプを決定したら、新しいサイトへのコンテンツの移行を確認できます。次に、ワークフロー、スケジュール、ユーザーなどを確認できます。

私は卸売りを移動することを望みます。コンテンツを複数のシステムで管理することは、技術的に大きな頭痛の種です。また、メンテナンスの労力が2倍になります。

私が言う1つのことは、それを行うために誰かを雇う価値があるかもしれないということです。巨大なデータセットを使用したDrupalの移行が非常に成功しています。しかし、Drupalの経験がない場合は、いくつかの誤った手順を実行し、多くの時間を費やす可能性があります。(私は個人的にcyrveを推薦できます、私は現在それらとは提携していません)


Cyrveをクライアントに渡します。Drupalを推進している私のクライアントの部門または隣接する部門の内部に誰も立っていないので、Drupalでの開発に関する専門知識を持っているわけではないので、これが1年後にどのように機能するかを見るのは楽しいでしょう。
デビッド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.