Ho creato un modulo tramite Drupal Console, sfortunatamente non è stato inserito in una cartella a sé stante, piuttosto direttamente /modules/custom
. Prima di notare dove fosse andato, ho abilitato il modulo.
In Drupal 6/7, questo era facile da risolvere: potevo letteralmente mettere i file nel percorso corretto, svuotare la cache (forse ricostruire il registro, non era una scienza esatta) e tutto andava bene.
Lo stesso non è vero per Drupal 8; Ho spostato i file in una sottocartella, ho ricostruito la cache e tutte le richieste mi dicono che Drupal non riesce a includere un file richiesto. Il file particolare, è una classe di blocco, e il percorso Drupal sta cercando di trovare è dove è usato per essere, non dove mi sono trasferito a.
La parte dell'obiezione del codice è in Symfony ApcClassLoader
, quindi credo di dover cancellare qualcosa che è leggermente sopra la testa di Drupal per ottenere questo riferimento al percorso aggiornato.
Come lo posso fare?
La disinstallazione e la reinstallazione del modulo funzionano, ma una volta archiviati i dati importanti non sarà più un'opzione.
Ho sbagliato, disinstallare e reinstallare non è un'opzione praticabile. Dopo aver disinstallato e reinstallato, Drupal non può più raccogliere i blocchi personalizzati definiti dal modulo. Immagino che il riferimento sia memorizzato nella cache da qualche parte che non viene cancellato quando il modulo viene disinstallato. Devo solo scoprire dov'è e come cancellarlo ...
ApcClassLoader::findFile()
ottenendo il percorso sbagliato apc_fetch()
o il caricatore di classe decorato sta restituendo il percorso sbagliato?