Dateien im Cache verschwinden
Dateien im Cache verschwinden
Liebe Gemeinde!
Ich habe da ein Problem nit dem Mandanten-Cache. Für ein eigenes Modul habe ich ein eigenes Unterverzeichnis eingerichtet, aus dem mir ständig Dateien verschwinden. Auch das Hauptverzeichnis ist oft unterschiedlich voll. Kann mir das jemand erklären? Räumt da irgendein Skript auf? Kann man das abstellen?
Ratlos grüßt aus dem hohen Norden
bodil
Ich habe da ein Problem nit dem Mandanten-Cache. Für ein eigenes Modul habe ich ein eigenes Unterverzeichnis eingerichtet, aus dem mir ständig Dateien verschwinden. Auch das Hauptverzeichnis ist oft unterschiedlich voll. Kann mir das jemand erklären? Räumt da irgendein Skript auf? Kann man das abstellen?
Ratlos grüßt aus dem hohen Norden
bodil
Re: Dateien im Cache verschwinden
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.
Re: Dateien im Cache verschwinden
Hallo bodil,
Im Backend kann man unter "Administration > System > Bereinigung" den Cache der Mandanten leeren, dabei wird der gesamte Cache-Ordner geleert.
Beim Editieren von Modulen im Backend wird die selbe Funktion zum Leeren des Cache-Ordners des aktuellen Mandanten ausgeführt. Das ist wohl nötig, um den Cache zu aktualisieren.
Vermutlich ist beim Speichern von Modulen der Aufruf der clearClientCache() Funktion in der cSystemPurge Klasse der Grund für das Verschwinden von Dateien aus dem Cache.
Gruß
xmurrix
Im Backend kann man unter "Administration > System > Bereinigung" den Cache der Mandanten leeren, dabei wird der gesamte Cache-Ordner geleert.
Beim Editieren von Modulen im Backend wird die selbe Funktion zum Leeren des Cache-Ordners des aktuellen Mandanten ausgeführt. Das ist wohl nötig, um den Cache zu aktualisieren.
Vermutlich ist beim Speichern von Modulen der Aufruf der clearClientCache() Funktion in der cSystemPurge Klasse der Grund für das Verschwinden von Dateien aus dem Cache.
Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
Re: Dateien im Cache verschwinden
Hallo xmurrix!
Das schau ich mir mal an! Vielen Dank!
Herzliche Grüße!
Bodil
Das schau ich mir mal an! Vielen Dank!
Herzliche Grüße!
Bodil
-
- Beiträge: 4255
- Registriert: Do 30. Jun 2005, 22:56
- Wohnort: Eltmann, Unterfranken, Bayern
- Kontaktdaten:
Re: Dateien im Cache verschwinden
Servus Bodil,
Du könntest einfach eine leere Datei mit dem Namen .keep in das Verzeichnis legen, dann sollte es nicht gelöscht werden. Um die Bereinigung der Dateien darin musst Du Dich dann aber selbst kümmern. CONTENIDO lässt solche Verzeichnisse nämlich grundsätzlich in Ruhe.
Oder Du setzt eine Systemproperty dafür.
system | purge-dirstoexclude-withfiles | [Kommaseparierte Liste von Dateien]
wobei diese Liste von Dateien die Standardliste in der Klasse cSystemPurge dann ersetzt.
Gruß aus Franken
Ortwin
Du könntest einfach eine leere Datei mit dem Namen .keep in das Verzeichnis legen, dann sollte es nicht gelöscht werden. Um die Bereinigung der Dateien darin musst Du Dich dann aber selbst kümmern. CONTENIDO lässt solche Verzeichnisse nämlich grundsätzlich in Ruhe.
Oder Du setzt eine Systemproperty dafür.
system | purge-dirstoexclude-withfiles | [Kommaseparierte Liste von Dateien]
wobei diese Liste von Dateien die Standardliste in der Klasse cSystemPurge dann ersetzt.
Code: Alles auswählen
/**
* These directories and the included files should not be cleared.
*
* @var array
*/
private $_dirsExcludedWithFiles = array(
'.',
'..',
'.svn',
'.cvs',
'.htaccess',
'.git',
'.gitignore',
'.keep',
);
Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
Re: Dateien im Cache verschwinden
Hi Ortwin!
Ich bin immer wieder überrascht, was Contenido alles kann.
In meinem Fall brauche ich ein Unterverzeichnis im Cache, das nicht geleert wird. Da nehme ich wohl am besten die Variante mit der .keep-Datei. Vorrübergehend habe ich mein Verzeichnis direkt in den Mandantenordner gelegt, aber im Cache ist es definitiv besser aufgehoben.
Vielen Dank und Gruß aus dem hohen Norden!
Bodil
Ich bin immer wieder überrascht, was Contenido alles kann.
In meinem Fall brauche ich ein Unterverzeichnis im Cache, das nicht geleert wird. Da nehme ich wohl am besten die Variante mit der .keep-Datei. Vorrübergehend habe ich mein Verzeichnis direkt in den Mandantenordner gelegt, aber im Cache ist es definitiv besser aufgehoben.
Vielen Dank und Gruß aus dem hohen Norden!
Bodil
Re: Dateien im Cache verschwinden
Und ich bin immer wieder überrascht, was Ortwin alles weiß.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.
Re: Dateien im Cache verschwinden
Das sollte meine Aussagen selbstverständlich implizieren.
Re: Dateien im Cache verschwinden
Ich stelle fest, dass der oben von Ortwin beschriebene Mechanismus bei mir so nicht funktioniert, wie er sollte. Ich habe im cache die Datei .keep, laut class.purge.php UND laut Systemeinstellungen sollte die das Leeren des Caches verhindern, aber mit jeder Modul-Änderung wird der Cache komplett leergeräumt - nur die keep-Datei belibt übrig. (Contenido 4.10.1)
Ich habe das hier alles in einem produktiven System und will das darin nicht weiter debuggen, installier aber bei Gelegenheit ein eigenes Contenido, um das zu überprüfen. Kann es sein, dass das ein Bug ist, der bisher niemandem aufgefallen ist? Es fühlt sich ein bisschen so an.
Grüße aus dem hohen Norden!
Bodil
Ich habe das hier alles in einem produktiven System und will das darin nicht weiter debuggen, installier aber bei Gelegenheit ein eigenes Contenido, um das zu überprüfen. Kann es sein, dass das ein Bug ist, der bisher niemandem aufgefallen ist? Es fühlt sich ein bisschen so an.
Grüße aus dem hohen Norden!
Bodil
-
- Beiträge: 87
- Registriert: Do 26. Apr 2012, 23:02
- Kontaktdaten:
Re: Dateien im Cache verschwinden
Moin! Vielleicht noch als kleine Randnotiz: die Datei .keep dient der Versionierung mittels Git.
Git kann nur Dateien versionieren, aber keine Verzeichnisse. Damit ein "leeres" Verzeichnis versioniert wird, kann man in dieses eine leere Datei legen, die von Git versioniert wird und damit auch implizit das Verzeichnis. Wie die Datei heißt ist eigentlich egal. Wir hatten uns intern auf .keep geeinigt. Beim Bereinigen von Dateien wird die Datei .keep standardmäßig ausgenommen, damit sie bei einem "git pull" nicht immer wieder erzeugt bzw. bei einem "git commit" nicht im Git-Repository gelöscht wird.
Git kann nur Dateien versionieren, aber keine Verzeichnisse. Damit ein "leeres" Verzeichnis versioniert wird, kann man in dieses eine leere Datei legen, die von Git versioniert wird und damit auch implizit das Verzeichnis. Wie die Datei heißt ist eigentlich egal. Wir hatten uns intern auf .keep geeinigt. Beim Bereinigen von Dateien wird die Datei .keep standardmäßig ausgenommen, damit sie bei einem "git pull" nicht immer wieder erzeugt bzw. bei einem "git commit" nicht im Git-Repository gelöscht wird.
Das konnte ich auf Anhieb nicht aus dem Code herauslesen (vielleicht hab ich es aber auch überlesen). Im Prinzip hat dieses "keep" aber nichts mit dem Bereinigen von Caches zu tun.Du könntest einfach eine leere Datei mit dem Namen .keep in das Verzeichnis legen, dann sollte es nicht gelöscht werden.
-
- Beiträge: 4255
- Registriert: Do 30. Jun 2005, 22:56
- Wohnort: Eltmann, Unterfranken, Bayern
- Kontaktdaten:
Re: Dateien im Cache verschwinden
Hallo Marcus,
Zeile 39 ff https://github.com/CONTENIDO/CONTENIDO/ ... .purge.php
Ergänzung: Hat man die Bereinigung einmal aufgerufen, so wird dieses Array serialisiert in den Systemeinstellungen (siehe Screenshot) abgelegt, und zukünftig, solange der Eintrag existiert, von dort genommen. Daher auch immer dort schauen, ob die Datei dort angegeben ist.
Gruß aus Franken
Ortwin
Zeile 39 ff https://github.com/CONTENIDO/CONTENIDO/ ... .purge.php
Ergänzung: Hat man die Bereinigung einmal aufgerufen, so wird dieses Array serialisiert in den Systemeinstellungen (siehe Screenshot) abgelegt, und zukünftig, solange der Eintrag existiert, von dort genommen. Daher auch immer dort schauen, ob die Datei dort angegeben ist.
Gruß aus Franken
Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
-
- Beiträge: 4255
- Registriert: Do 30. Jun 2005, 22:56
- Wohnort: Eltmann, Unterfranken, Bayern
- Kontaktdaten:
Re: Dateien im Cache verschwinden
Hallo Bodil,
Hier muss man nochmal etwas Zeit investieren, und alle Funktionen in CONTENIDO, die Dateien im Cache bearbeiten bzw. bereinigen, dementsprechend betrachten und einheitlich zentral über die Klasse cSystemPurge behandeln.
Gruß aus Franken
Ortwin
Nun, ich denke es ist ein Bug. Beim Ändern von Modulen werden die Funktionen in den Dateien functions.mod.php und functions.con.php genutzt. Dabei werde Dateien im Cache offensichtlich direkt gelöscht, ohne den Einsatz der Bereinigungsklasse. Dann greifen natürlich auch die dort gemachten Vorgaben nicht.
Hier muss man nochmal etwas Zeit investieren, und alle Funktionen in CONTENIDO, die Dateien im Cache bearbeiten bzw. bereinigen, dementsprechend betrachten und einheitlich zentral über die Klasse cSystemPurge behandeln.
Gruß aus Franken
Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
Re: Dateien im Cache verschwinden
Hi Ortwin, hi Marcus,
wenn ich es richtig verstehe, gibt es da zweierlei: meinen Wunsch, dass der Cache nicht geleert wird und die .keep-Datei deren Sinn eigentlich war, dass das (Cache-)Verzeichnis nicht gelöscht wird.
Ich für meinen Teil muss deswegen mit der Programmierung etwas umdisponieren, weil ich mich bisher darauf verlassen hatte, die Leerung des Caches verhindern zu können, aber das ist kein Ding.
Aber krass ist es schon: wenn ich ein Modul änder, ist der Cache leer. (Gefühlt) Tausende gecachte Bilder: weg! Müssen alle (grundlos) neu generiert werden. Wenn ich da an die Kunden mit den Riesenbildern und dem Mini-Arbeitsspeicher denke, wird mir ganz anders. Da wäre eine Lösung mit etwas mehr nennen wir es mal Feingefühl aus meiner Sicht besser. Ich schau mal, dass ich mich da reinfuchse, vielleicht finde ich ja was. So weit ich bisher gesehen habe, ist da die cSystemPurge schon im Einsatz, es wirkt nur, als werde sie etwas ziellos bedient.
Vielen Dank euch beiden!
Bodil
wenn ich es richtig verstehe, gibt es da zweierlei: meinen Wunsch, dass der Cache nicht geleert wird und die .keep-Datei deren Sinn eigentlich war, dass das (Cache-)Verzeichnis nicht gelöscht wird.
Ich für meinen Teil muss deswegen mit der Programmierung etwas umdisponieren, weil ich mich bisher darauf verlassen hatte, die Leerung des Caches verhindern zu können, aber das ist kein Ding.
Aber krass ist es schon: wenn ich ein Modul änder, ist der Cache leer. (Gefühlt) Tausende gecachte Bilder: weg! Müssen alle (grundlos) neu generiert werden. Wenn ich da an die Kunden mit den Riesenbildern und dem Mini-Arbeitsspeicher denke, wird mir ganz anders. Da wäre eine Lösung mit etwas mehr nennen wir es mal Feingefühl aus meiner Sicht besser. Ich schau mal, dass ich mich da reinfuchse, vielleicht finde ich ja was. So weit ich bisher gesehen habe, ist da die cSystemPurge schon im Einsatz, es wirkt nur, als werde sie etwas ziellos bedient.
Vielen Dank euch beiden!
Bodil
-
- Beiträge: 4255
- Registriert: Do 30. Jun 2005, 22:56
- Wohnort: Eltmann, Unterfranken, Bayern
- Kontaktdaten:
Re: Dateien im Cache verschwinden
Servus,
nun, das ist ein generelles Problem bei CONTENIDO. Vielfach ist nicht mal bekannt, wo und wann welche Funktion auf Bereiche zugreift. Oft wurden auch funktionelle Änderungen/Verbesserungen in einem Bereich eingebracht, dabei aber nicht alle Auswirkungen auf andere Bereiche bedacht oder geprüft.
Auch hier sollten wir zukünftig unser Augenmerk darauf legen dies besser zu planen und umzusetzen. Ich denke auch, dass wir dabei den Core von CONTENIDO noch mehr entschlacken können.
Dazu wären aber in allen Bereichen Ablaufpläne mit den entsprechenden Querverweisen gut, wobei das eine recht umfangreiche Aufgabe ist.
Gruß aus Franken
Ortwin
nun, das ist ein generelles Problem bei CONTENIDO. Vielfach ist nicht mal bekannt, wo und wann welche Funktion auf Bereiche zugreift. Oft wurden auch funktionelle Änderungen/Verbesserungen in einem Bereich eingebracht, dabei aber nicht alle Auswirkungen auf andere Bereiche bedacht oder geprüft.
Auch hier sollten wir zukünftig unser Augenmerk darauf legen dies besser zu planen und umzusetzen. Ich denke auch, dass wir dabei den Core von CONTENIDO noch mehr entschlacken können.
Dazu wären aber in allen Bereichen Ablaufpläne mit den entsprechenden Querverweisen gut, wobei das eine recht umfangreiche Aufgabe ist.
Da gebe ich Dir recht. Toll wenn Du Dich da "reinfuchsen" willst. Eventuell kannst Du in dem Zusammenhang auch ein wenig die entsprechende Doku auf https://docs.contenido.org/ ergänzen bzw auf einen aktuellen Stand bringen.bodil hat geschrieben: ↑Mi 3. Nov 2021, 16:29Da wäre eine Lösung mit etwas mehr nennen wir es mal Feingefühl aus meiner Sicht besser. Ich schau mal, dass ich mich da reinfuchse, vielleicht finde ich ja was. So weit ich bisher gesehen habe, ist da die cSystemPurge schon im Einsatz, es wirkt nur, als werde sie etwas ziellos bedient.
Gruß aus Franken
Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
-
- Beiträge: 87
- Registriert: Do 26. Apr 2012, 23:02
- Kontaktdaten:
Re: Dateien im Cache verschwinden
Antwort an mich selber :
Und später dann:
Dass dort die .keep aufgeführt wird hab ich gesehen. Wenn man aber nach $this->_dirsExcludedWithFiles sucht findet man deren Verwendung zum einen im Konstruktor, vor allem aber in der Methode cSystemPurge::clearDir().
Nachdem ich mir die o.g. Methode mal genauer angesehen habe hab ichs dann auch gefunden:Du könntest einfach eine leere Datei mit dem Namen .keep in das Verzeichnis legen, dann sollte es nicht gelöscht werden.
Code: Alles auswählen
foreach ($dirContent as $sContent) {
if (in_array($sContent, $this->_dirsExcludedWithFiles)
|| in_array($dirContent, $this->_dirsExcluded)) {
$bCanDelete = false;
break;
}
}
Code: Alles auswählen
if (true === $bCanDelete) {
cDirHandler::remove($dirPath);
}