Ich bin nicht 100% sicher, ob meine Antwort korrekt ist, aber in PROJECT/lib/symfony/cache/sfCacheFile.class.php
gibt es eine Methode: sfCacheFile::getFilePath()
, die einen Pfad zu einer Datei zurückgibt. Es scheint, dass es keinen Schutz gegen Einschränkungen von ext2
Dateisystem gibt.
Aber es ist eine sehr einfache Lösung - außer Kraft setzt diese Klasse:
In PROJECT/apps/APP/config/factories.yml
stellen Sie Ihre eigene Cache-Klasse:
default:
# Others factories (if any)
view_cache:
class: myOwnFileCache
param:
automatic_cleaning_factor: 0
cache_dir: %SF_TEMPLATE_CACHE_DIR%
lifetime: 86400
prefix: %SF_APP_DIR%/template
nun diese Klasse erstellen und sicherstellen, dass es sich sfFileCache
und überschreibt getFilePath()
# PROJECT/lib/PROJECT/cache/myOwnFileCache.class.php
class myOwnFileCache extends sfFileCache {
protected getFilePath($key) {
/*
Convert from: abcdef
to: a/b/abcdef
*/
$key = substr($key, 0, 1) . DIRECTORY_SEPARATOR . substr($key, 1, 1) . DIRECTORY_SEPARATOR . $key;
return parent::getFilePath($key);
}
}
Cache löschen: ./symfony cc
Jetzt müssen Sie 32000 Cache-Schlüssel, die mit den exakt gleichen zwei Buchstaben/Ziffern beginnen Ihr Dateisystem zu vernichten.
Das ist die Idee, D danke – belaz