私はDrupal Consoleを使用してモジュールを作成しましたが、残念ながらそれはそれ自体のフォルダーに置かれていませんでした/modules/custom。どこに行ったか気づく前に、モジュールを有効にしました。
Drupal 6/7では、これは簡単に修正できました。文字通り、ファイルを正しいパスに置き、キャッシュをクリアし(おそらくレジストリを再構築しましたが、正確な科学ではなかった)、すべてが順調でした。
同じことはDrupal 8には当てはまりません。ファイルをサブフォルダーに移動し、キャッシュを再構築しましたが、すべてのリクエストで、Drupalが必要なファイルを含めることができなかったことがわかります。特定のファイルは、ブロッククラスであり、そしてそれはどこDrupalはそれを見つけるためにしようとしているパスは使用され、私はそれを移動してきたではない場所であると。
Symfonyにはコードのオブジェクト化の一部が含まれApcClassLoaderているため、このパス参照を更新するには、Drupalの頭より少し上にあるものをクリアする必要があると思います。
どうやってやるの?
モジュールのアンインストールと再インストールは機能しますが、いったん保存された重要なデータがあると、それは選択肢にはなりません。
私は間違っていました。アンインストールと再インストールは実行可能なオプションではありません。アンインストールして再インストールした後、Drupalはモジュールが定義するカスタムブロックを取得できなくなります。参照がどこかにキャッシュされていると思いますが、モジュールがアンインストールされても消去されません。それがどこにあるのか、それをどのようにクリアするのかを見つける必要があるだけです...
ApcClassLoader::findFile()から間違ったパスを取得apc_fetch()、または装飾されたクラスローダーが間違った道を戻っていますか?