Javascript- und Css-Paketmanager

Aus APF Wiki [de]

Wechseln zu: Navigation, Suche
Wichtig: Seit Version 1.15 ist diese Erweiterung sowie JsCssInclusion in die htmlheader-Erweiterung integriert worden. Sofern du bereits 1.15 oder aktueller nutzt gehe bitte zur Dokumentation von htmlheader.


Inhaltsverzeichnis

JsCssPackager

Funktion

Der JsCssPackager wurde von Ralf Schubert entworfen um eine Steigerung der Performance bei Verwendung von vielen Javascript und Css Dateien zu erreichen. Bei den meisten Projekten müssen mehrere JS und CSS Dateien ausgeliefert werden. Jedes Ausliefern benötigt Performance und Bandbreite. Hier hilft der JsCssPackager folgendermaßen:


Konfiguration

Der JsCssPackager benötigt 2 Konfigurationsdateien:

[jcp]
FC.ActionNamespace = "extensions::jscsspackager::biz::actions"
FC.ActionClass = "JsCssPackagerAction"
FC.InputParams = ""
; create one section for each package, like the one below
[form_clientvalidators_all]
ClientCacheDays = "7"           ; How long should it be cached on client?
ServerCacheMinutes = "10080"    ; How long should it be cached on server?
EnableShrinking = "true"        ; Shrink the code in the package?
PackageType = "js"              ; Possible types: 'js' and 'css'
; The files the package contains. Filename without extension!
Files.1.Namespace = "extensions::form::client::validator"
Files.1.Filename = "FormValidator"
Files.2.Namespace = "extensions::form::client::validator"
Files.2.Filename = "EMailValidator"
Files.3.Namespace = "extensions::form::client::validator"
Files.3.Filename = "FieldCompareValidator"
[...]

In dieser Konfigurationsdatei werden die Pakete definiert. Jedes Paket bekommt eine eigene Sektion: [Paketname]

Darunter wird das Paket wie oben zu sehen konfiguriert.

Danach werden die Dateien, welche im Paket enthalten sein sollen definiert. Jede Datei wird als eine Zahl (numerischer Subsection-Index) definiert. Hier werden folgende Angaben benötigt:

*Servercaching: Bei Aktiviertem cachen des packages auf dem Server (ServerCacheMinutes !== 0) muss in der Konfiguration des CacheManagers eine Sektion mit Name "jscsspackager_cache" angelegt werden. Wie das geht wird hier erklärt: http://adventure-php-framework.org/Seite/084-CacheManager

Verwendung

Das Paket wird einfach durch die Html Tags eingebunden:

<script src="{URL}" type="text/javascript"></script>
 
<link rel="stylesheet" type="text/css" href="{URL}" />

Die {URL} setzt sich wie folgt zusammen, wobei {PAKETNAME} ersetzt werden muss:

Aktives URL-Rewriting:

server.de/~/extensions_jscsspackager_biz-action/jcp/package/{PAKETNAME}.js

server.de/~/extensions_jscsspackager_biz-action/jcp/package/{PAKETNAME}.css


Ohne URL-Rewriting:

index.php?extensions_jscsspackager_biz-action:jcp=package:{PAKETNAME}.js

index.php?extensions_jscsspackager_biz-action:jcp=package:{PAKETNAME}.css


Tipp: Die Extension HtmlHeader unterstützt das dynamische Einbinden eines Pakets des JsCssPackagers an einer beliebigen Position im Code und übernimmt die Generierung der URL.

Meine Werkzeuge
Namensräume
Varianten
Aktionen
menü
misc
Werkzeuge