Cancella manualmente la cache di symfony
Vorrei anche sottolineare un’altra cosa: i permessi. Se hai effettuato l’accesso come root, ad esempio, e non hai impostato i diritti di accesso tramite setfacl (o qualsiasi altro metodo), cache: clear probabilmente creerà gli elementi nella cache che sono di proprietà di root. Questo potrebbe essere un problema in seguito.
Il comando “cache: clear” non solo cancella la cache, ma di solito costruisce i dati della cache aggiornati (riscaldamento) in modo che symfony non debba crearne uno dopo l’arrivo della prima richiesta, motivo per cui ci vuole più tempo rispetto alla semplice eliminazione i file nella cartella della cache usando “rm -rf”.
Symfony dottrina cache
Per uno sviluppatore che già lavora con Symfony e improvvisamente deve lavorare con un progetto basato su Silex, sebbene la maggior parte delle cose siano le stesse, ovviamente ci sono cose che non lo sono. Uno dei compiti più noiosi in Silex, ad esempio quando viene implementato Twig, è la necessità di svuotare la cache, tuttavia ciò deve essere fatto manualmente, rimuovendo il contenuto della cartella / cache. Come abbiamo già detto, se vieni da un ambiente symfony puro, saprai che c’è già un comando CLI nel progetto chiamato cache: clear che fa questo per te. Silex non ha questa funzionalità, tuttavia puoi implementarla tu stesso, quindi non dovrai eliminare tu stesso il contenuto della cartella della cache ogni volta che sei fuori dall’ambiente di sviluppo.
In questo tutorial assumiamo che tu abbia già implementato il file console.php per silex dove puoi registrare nuovi comandi della console, in caso contrario, fai riferimento al componente console di Symfony per maggiori informazioni.
Ti forniremo il comando per cancellare la cartella cache del tuo progetto Silex, tuttavia devi sapere come caricare il comando nella tua applicazione. Questo di solito viene fatto (seguendo la struttura dello scheletro Silex per impostazione predefinita) nel file console.php del tuo progetto, dove dovresti già trovare un’applicazione console di symfony. In caso contrario, puoi crearlo. L’esempio seguente aggiunge la cache dei comandi: clear creando un’applicazione console di base nel file console.php:
Disabilita la cache di symfony
Vorrei anche sottolineare un’altra cosa: i permessi. Se hai effettuato l’accesso come root, ad esempio, e non hai impostato i diritti di accesso tramite setfacl (o qualsiasi altro metodo), cache: clear creerà molto probabilmente gli elementi della cache di proprietà di root. Questo potrebbe essere un problema in seguito.
Il comando “cache: clear” non solo cancella la cache, ma di solito costruisce i dati della cache aggiornati (riscaldamento) in modo che symfony non debba crearne uno dopo l’arrivo della prima richiesta, motivo per cui ci vuole più tempo rispetto alla semplice eliminazione i file nella cartella della cache usando “rm -rf”.
Symfony 3.4 svuota la cache
Sto usando RHEL7 sul computer guest e Windows 8 sull’host. La directory /var/www/ è un montaggio di una cartella condivisa sulla macchina Windows (una condivisione di Virtual Box). Ho installato Symfony sul guest, quindi i suoi file vengono creati tramite la condivisione (posso sfogliarli sull’host).
Guardando Windows, posso vedere che ci sono ancora un sacco di file mostrati lì, tuttavia quando provo a elencare (dir, ll e un sacco di altre opzioni provate) non mostra alcun file. Tuttavia, se provo a fare un rm -R sulla directory:
Se vuoi replicare questo, installa con un guest Linux, un host Windows e installa ed esegui symfony su di esso. Vai a una pagina prod (vai a /project-name/web/app.php) e poi svuota la cache con il seguente comando: