Javascript

Seit nostromo/framework 6.5.113 kann Framework-zugehöriger Javscript-Code direkt in den PHP-Repositories untergebracht werden. Die Ordnerstruktur dazu muss wie folgt aussehen, am Beispiel das controls-Projektes:

Alle .js-Dateien werden automatisch minified und in der gleichen Struktur nach www/js/components/nostromo/controls kopiert. Die Unterordner nostromo/controls sind für jedes Projekt anders und entsprechen dem Namen in der composer.json.

Ein Script requiren

Die Skripte werden automatisch registriert und können wie folgt in PHP required werden:

Javascript::requireLibrary('nostromo/controls/DataControls/GridControl');

Der Namespace beginnt hierbei immer mit dem Projektnamen, z.B. nostromo/controls. Danach folgt ein Schrägstrich und die Ordner-Struktur im resources/js/-Ordner des Projektes, z.B. DataControls/GridControl. Die Endung ‘.js’ wird weg gelassen!

Internationalisierung

Wie in beschrieben in https://newfrontiers.atlassian.net/l/c/KDpb11Gj können Übersetzungen in Javascript-Dateien benutzt werden. Allerdings muss für Framework-Javascript-Code der JavascriptTranslationProvider nicht manuell aufgerufen werden. Das funktioniert wie folgt:
Wie oben im Bild zu sehen, existiert eine i18n.php-Datei. Mit dieser kann angegeben werden, welche Strings im Javascript-Code übersetzt werden müssen. Ein Beispiel:

<?php use NewFrontiers\Framework\Output\Strings; return [ 'are.you.sure.key', 'please wait', 'Error', 'The request could not be executed.', Strings::GESPEICHERT, Strings::GELOESCHT, ];

Hier wird nur angegeben, welche Strings für Javascript verfügbar sein müssen. Die eigentliche Übersetzung wird wie gewohnt in PHP erledigt und muss deshalb im i18n-Ordner des Projektes hinterlegt werden.

Todo

Aktuell können nur einzelne Scripts required werden. In Zukunft sollen auch Ordner required werden können, wie z.B.

  • nostromo/controls/DataControls

  • nostromo/controls

Minify übergehen

Aus Debugging-Gründen kann das minify der .js-Dateien übergangen werden. Dazu muss composer install mit der Environment-Variable NOSTROMO_MINIMIZE_JS=off ausgeführt werden. In einer Shell z.B. durch

NOSTROMO_MINIMIZE_JS=off composer install

Oder unter Windows mit dem set-Befehl.

Related pages