web-dev-qa-db-ja.com

Drupal 7のカスタムモジュールのファイル構造

non-core(コアにバンドルされていないモジュール)モジュールをDrupal 7。私の提案する構造:

  1. 提供されたモジュール-変更されていないダウンロード済みモジュール
  2. カスタムモジュール-要件に合わせて変更されたダウンロードモジュール
  3. ローカルモジュール-自己開発モジュール

私は推測します、これのための最良のアプローチは以下のようにsites/all/modules内に3つのフォルダを作ることです:

  1. sites/all/modules/contrib
  2. sites/all/modules/custom
  3. sites/all/modules/local

現在、モジュールをインストールするには2つの方法があります。

  1. 手動で
  2. 管理パネルから

新しいモジュールを手動でインストールしている間、すべて問題ありません。ディレクトリに移動して、そこにモジュールを配置するだけです。

しかし新しくダウンロードしたモジュールを管理パネルからsites/all/modules/contribにインストールする方法は?
さらに、非コアモジュールを整理するためのより良いアプローチはありますか?

5
Bhavik Shah

モジュールフォルダを明確に保つことは、開発の重要な部分です。これは私の一般的な構造です:

  • contrib — Drupal.orgのモジュール
  • custom —このプロジェクト用に開発されたモジュール
  • features —機能主導の開発用にエクスポートされた機能
  • unstable —サンドボックス、フォーク、不安定、パッチ適用済みモジュール

パッチ/フォークを整理する方法の例をいくつか示します。

しかし、新しくダウンロードしたモジュールをadmin-panelの `sites/all/modules/contribにインストールする方法。

Drush を使用してください。

drush dl views rules # will download Views and Rules into sites/all/modules/contrib automatically if contrib folder exists.

プロジェクトのダウンロード先を--destinationに指定することもできます。

6
kalabro

あなたが提案する構造は機能します。

ただし、原則として、ダウンロードしたコントリビュートされたモジュールは変更しないでください。モジュールをフォークすることにより、ローカルコピーはアイランドになり、提供されたモジュールに追加された将来のバグ修正やその他の改善の恩恵を受けることが難しくなります。

通常の方法は、ダウンロードしたモジュールの場合はsites/all/modules/-contribの下に2つのサブディレクトリを、自己開発したモジュールの場合はcustomを使用することです。ダウンロードしたモジュールをcontribに配置するには、管理パネルの代わりにdrushを使用してダウンロードおよびインストールします。

ただし、提供されたモジュールを微調整する必要がある場合があります。

カスタムバージョンをフォークするだけでなく、Drupal.orgのモジュールの課題キューにユースケースと要件を提示し、 patch をアップロードして、モジュールの機能を拡張してユースケースをカバーする必要があります。これを行うことで、Drupalコミュニティに貢献し、モジュールの他のユーザーによって作成された提案されたパッチに関するレビューと提案から利益を得ます。

ただし、パッチがモジュールの公式コードベースに組み込まれるまでに時間がかかる場合があります。当面は、パッチファイルのコピーを保持し、gitを使用して、モジュールのリリースされるモジュールの新しいバージョンに適用します。メンテナ。運が悪い場合は、モジュールが大幅に変更された場合にパッチを再ロールする必要があるかもしれませんが、これは自分でローカルフォークを維持するよりも良い選択肢です。

3
Free Radical

管理モジュールインストーラーを使用するときに、モジュールをインストールする/ sites/all/modules内のサブディレクトリを選択できるmodule_installモジュールがあります。

https://www.drupal.org/project/module_install

必要なサブディレクトリを作成し、モジュールをインストールして(ベストプラクティスに従いたい場合は、手動で/ sites/all/modules/contribに配置してください)、それを有効にします。

0
Dave Nattriss