web-dev-qa-db-ja.com

drupal-scaffoldを正しく使用する

Drupal composerプロジェクトテンプレートに対して drupal/recommended-project を使用して新しいプロジェクトを開始しています。私が指摘した違いの1つは、新しいモジュールまたはテーマをインストールするだけでも、Drupalスキャフォールドツールが毎回起動することです。

この場合、settings.phpに関する書き込み許可の警告が表示されます。また、.htaccessやrobots.txtの置き換えなど、他の懸念があります。

私はいくつかのドキュメントを読んで、これをcomposer.jsonファイルに追加しました:

"drupal-scaffold": {
    "locations": {
        "web-root": "docroot/"
    },
    "file-mapping": {
        "[web-root]/sites/default/settings.php": false,
        "[web-root]/.htaccess": {
            "mode": "replace",
            "path": "assets/drupal/.htaccess"
        }
    }
},

これにより、settings.phpが変更されるのを防ぎ、.htaccessファイルをDrupalから変更したファイルに置き換えます。ここに表示される欠点は、.htaccessにセキュリティの変更があった場合、手動で差分を作成し、カスタムの書き換えルールを元に戻す必要があることです。

これはdrupal-scaffoldを使用する適切な方法ですか?

2
Kevin

https://www.drupal.org/docs/develop/using-composer/using-drupals-composer-scaffold#toc_4 に記載されているパッチ方法を使用しています

例えば:

"name": "my/project",
...
"scripts": {
  "post-drupal-scaffold-cmd": [
    "cd docroot && patch -p1 <../patches/htaccess-ssl.patch"
  ]
}

次に、コアファイルが変更されると、正しくマージされるか、パッチが失敗し、composerコマンドに表示され、パッチに関連する変更を加えることができます

2
Leigh