Drupal 8 - Was sich im Bereich Javascript ändert
am 04.01.2013 - 09:09 Uhr in
Hallo zusammen,
aktuell befindet sich die Entwicklung von Drupal 8 in einer interessanten und heißen Phase. Am 1. Februar steht der offizielle Feature Complete an, was bedeutet, dass neue Features, z.B. die der Core Initiativen, bis dorthin grundsätzlich fertig sein müssen (nicht zwingend ohne Bugs). Mit Drupal 8, dessen Release für Ende 2013 geplant ist, werden auch einige marginale Änderungen einher gehen, und sich wie immer auch viele kleine Dinge ändern.
Rob Ballou hat nun in einer kurzen Übersicht die Änderungen im Bereich JavaScript erklärt. In Zukunft folgt D8 den Coding Standards von JSHint, wobei diese Standards, wie auch im Bereich PHP, eine Empfehlung, aber keine Notwendigkeit sind.
Weiterhin werden sich zwei neue maßgebliche Dateien im Drupal-Core finden - underscore.js und backbone.js. Die Entscheidung wurde mitunter deswegen getroffen, weil einige der schon zuvor erwähnten Core Initiativen darauf basieren werden, bzw. darauf zurück greifen. Während underscore.js eine Tool-Palette darstellt, die das Schreiben von JS-Code vereinfachen soll, unterstützt backbone.js die Nutzung von JavaScript auf einer Programmebene.
Eine der größten Änderungen geht indes daraus hervor, dass anders als in der Vergangenheit, Drupal nicht mehr davon ausgeht, dass jemand oder etwas jQuery, Drupals JavaScript, oder ein anderes JS benötigt, sondern entsprechender Code, z.B. Module, müssen dieses JavaScript anfordern. Dies geschieht über mitunter über den Hook "hook_library_info", was dann im Ergebnis so aussehen kann (Beispiel aus dem Node Modul):
<?php
/**
* Implements hook_library_info().
*/
function node_library_info() {
$libraries['drupal.node'] = array(
'title' => 'Node',
'version' => VERSION,
'js' => array(
drupal_get_path('module', 'node') . '/node.js' => array(),
),
'dependencies' => array(
array('system', 'jquery'),
array('system', 'drupal'),
array('system', 'drupalSettings'),
array('system', 'drupal.form'),
),
);
?>
Ferner werden Entwickler zukünftig dazu angehalten JS-Code in einen "top-level closure" zu packen, was im Resultat dann so aussehen kann:
(function ($, Drupal, window) {
...
})(jQuery, Drupal, window);
Eine weitere Änderung findet sich darin, dass Drupal.settings mit Drupal 8 in drupalSettings umbenannt wird, was es Entwicklern erlaubt diese Settings zu verwenden, ohne vorher etwas in Drupals Namespace einzubinden.
- Anmelden oder Registrieren um Kommentare zu schreiben
Neue Kommentare
vor 3 Stunden 3 Minuten
vor 1 Tag 9 Stunden
vor 1 Tag 9 Stunden
vor 6 Tagen 2 Stunden
vor 6 Tagen 5 Stunden
vor 6 Tagen 5 Stunden
vor 6 Tagen 5 Stunden
vor 1 Woche 2 Stunden
vor 1 Woche 4 Stunden
vor 1 Woche 1 Tag