Philosophie zu Cache-Verzeichnissen in J4

  • Hallo,


    ich habe mich mal wieder ein wenig mit dem Joomla-Cache beschäftigt. Da stellen sich mir nun einige Fragen:


    Vor nicht allzu langer Zeit wurden die Cache-Dateien für Frontend und Backend hier abgelegt:

    cache

    administrator/cache


    Nun gibt es beispielsweise in J4 die Möglichkeit, einen Cache-Pfad anzugeben.

    Nebenbei: Diese beiden traditionellen Verzeichnisse sollen wohl erhalten bleiben, schon allein deswegen, weil alte oder nicht vernünftig programmierte Erweiterungen dort eventuell noch Dateien ablegen.


    1. Trägt man keinen Cache-Pfad in der Konfiguration ein, so werden alle Cache-Dateien scheinbar im administrator/cache abgelegt. Kann das sein?

    Typischerweise sichert man sein administrator-Verzeichnis doch mit einem zusätzlichen Passwortschutz. Dann könnten User im Frontend dieses Cache-Verzeichnis doch gar nicht nutzen. Wo mache ich da den Denkfehler?


    2. Trägt man hingegen einen Cookie-Pfad ein (analog tmp- und logs-Verzeichnis), dann werden alle Cache-Dateien, egal ob vom Frontend oder Backend, in diesem Verzeichnis gespeichert. Könnte das nicht ein Sicherheitsrisiko sein, wenn man beispielsweise das traditionelle Cache-Verzeichnis im Joomla-Root verwendet (oder auch ein eigenes Verzeichnis anlegt und angibt)?

    Sollten die Cache-Dateien für das Backend nicht immer im administrator-Verzeichnis liegen?


    3. Und was hat es mit diesem media/cache-Verzeichnis auf sich? Wann hinterlegt J4 in diesem Verzeichnis irgendwelche Cache-Dateien?

    Soll dieses Verzeichnis das alte cache-Verzeichnis ersetzen?


    Welche Philosophie steckt hinter den Änderungen?
    Hat jemand Infos zu den verschiedenen Punkten oder "gute" Links?

  • - Den Cache-Pfad konnte man schon unter Joomla 3 im Backend ändern.

    - Da auch Bilder etc. im cache-Ordner genutzt werden könnten, würde ich keine .htaccess verwenden.


    - im administrator/cache abgelegt. Kann das sein?

    Wenn man die Voreinstellung in seiner Erweiterung wählt, ja. Wegen oben Gesagtem, verwende ich aber z.B. den anderen /cache/-Ordner für meine Bilder-Cachereien.


    - Joomla 4 definiert in der Konstante JPATH_CACHE den administrator/cache-Pfad.

    - In Joomla 3 je nachdem, ob man im Frontend oder Backend ist, beide unterschiedlich.


    3.) Weiß ich nicht. Vielleicht eine Leiche aus dem Joomla-Build-Prozess.

  • Zu media/cache. Ich finde den zwar unter Systeminfos > Schreibrechte, aber keine Verwendung im Core.

    Aber ich habe auch nur schlampig gesucht.

    Aaaaaber, sinnvoll wäre das eigentlich schon, einen solchen zu haben. Aber für mich z.B. nur, wenn die Joomla-Cache-Funktionalität die Finger davon lässt, ihn also ggf. nicht auch turnusmäßig leert.

  • Das wäre ja fatal, wenn jetzt auch Frontendfiles im administrator-Verzeichnis landen.

    Unter Joomla 4 schon seit Anfang an so.


    Wie gesagt: Das ist Angelegenheit der 3rd-Erweiterung. Die, die fürs Frontend cachen (Bilder, Assets z.B.) verwenden halt den Frontend-/cache/ oder gehen gleich ihre eigenen Wege, z.B. Unterordner im /media/. Nachteil des Letzteren. Man muss sich dann auch selbst darum kümmern, dass diese Caches löschbar sind; irgendwie...

  • Das wäre ja fatal, wenn jetzt auch Frontendfiles im administrator-Verzeichnis landen.

    Zumindest wenn man keinen Cache-Pfad einträgt. Ansonsten landet alles im eingetragenen Pfad.

    Mir war das bisher nicht bewusst. Bin ich durch Zufall draufgestoßen. Vielleicht könnte man das in der Hilfe noch ergänzen.

  • Zumindest wenn man keinen Cache-Pfad einträgt.

    Die Geschichte war noch nie verlässlich, weil man das nat. in seiner Erweiterung enstprechend berücksichtigen muss.


    Und auch in Joomla selbst, findet man unterschiedliche Varaianten.

    Code
    Factory::getApplication()->get('cache_path', JPATH_SITE . '/cache')

    Wenn keiner eingegeben ist, verwende den Site-/cache/.

    Code
    Factory::getApplication()->get('cache_path', JPATH_CACHE);

    Wenn keiner eingegeben ist, verwende den von Joomla in der Konstante JPATH_CACHE hinterlegte.

    Und die zeigt immer auf /administrator/cache.


    Und weitere Stellen, wo der eingetragene gar nicht berücksichtigt wird, sondern gleich JPATH_CACHE verwendet wird. Eingetragener Pfad also ignoriert wird.


    So, und 3rd-Erweiterungen mal so, mal so. Auch abseits von jeglichem Joomla-/cache/-Gedöns.


    Aaaaaber! Früher war das noch um einiges inkonsistenter als das heute ist!