私の drupal 7 サイトで drush update を実行した後、フォームのユーザー情報を取り込むために使用する php コードが 2 回実行されます。PHP でいくつかの関数を作成したため、関数を再宣言しようとして 2 回目に PHP を実行すると、次のようなエラーが発生します。
PHP Fatal error: Cannot redeclare fooBar() (previously declared in [path_to_drupal7]/modules/php/php.module(80) : eval()'d code:3) in [path_to_drupal7]/modules/php/php.module(80) : eval()'d code on line 4
関数が何と呼ばれるか、何をするかは問題ではありません。この例の場合、これはコードです:
<?php
function fooBar() {
print "foo bar";
}
fooBar();
?>
また、ページのコンテンツ タイプが何であるかは問題ではないようです (私の場合、ユーザー情報をフォームに取り込むために必要です)。
Drupal が PHP を 2 回実行するのはなぜですか? さらに重要なことに、どうすればそうならないようにできますか?
編集: Drupal は、トリミングされたバージョンで 1 回、フル バージョンで 1 回、フル バージョンで 1 回、php を実行しているようです。これは、投稿をプレビューするときに期待するものです。プレビュー版はあまり気にしないので、喜んで削除します。ページを表示すると Drupal がコードを 2 回実行するのはなぜですか? (実際にページを表示しているときに、トリミングされたバージョンで実行されるのはなぜですか?)