Drupal

Drupal 8 Service und IDE Autocompletion

Wenn man sich in Drupal einen Service auf die übliche Art und Weise holt, z. B. so:

// Returns a Drupal\Core\Datetime\DateFormatter object.
$date = \Drupal::service('date.formatter');

Dann hat man keine Autocompletion-Funktionalität in der IDE (hier phpstorm), wie man das sonst bei anders instanzierten Klassen nutzen kann.

Um auch hier Autocompletion nutzen zu können, kann man den Variablen-Typ per Kommentar (für die IDE) definieren, z. B. so:

Endlos-Schleife bei Text-Element mit Ajax-Callback auf Event blur oder focusout

Wenn ein Drupal-Textfeld (input-Feld) einen Ajax-Callback verwendet und dieser auf die Events blur oder focusout reagiert, kann es zu einer Endlos-Schleife des Fokus-Verhaltens des Text-Felds kommen.

Der Ajax-Callback setzt den Fokus automatisch zurück auf das Feld welches das Ajax-Event (blur bzw. focusout) ausgelöst hat. Damit kommt es quasi zu einer Endlos-Schleife, in der der Fokus immer wieder auf dem Text-Feld landet und man nicht weiter im Formular navigieren kann.

Es gibt einen undokumentierten Parameter für den Ajax-Callback der dieses Verhalten aufheben kann:

Composer Probleme hinter Proxy

Wenn composer von hinter einem Proxy genutzt wird kann es trotz korrekter Proxy-Einstellungen im System zu Problemen kommen. Das liegt meiner Einschätzung nach daran dass composer standardmäßig offenbar die URL http://repo.packagist.org für den Abruf wählt. Diese URL wird dann auf https://packagist.org weitergeleitet. Mit solch einem Szenario kommt offenbar nicht jeder Proxy zurecht.

Folgende Fehlermeldung lieferte Composer:

Drupal 8 Composer - Drupal Core Files neu laden

Wenn man Drupal 8 via composer installiert (https://github.com/drupal-composer/drupal-project) ist die Empfehlung und die Default-Einstellung hinsichtlich git, dass die Drupal Corefiles (und auch die Contrib-Modules) nicht mit git versioniert werden sondern rein über composer gemanagt werden. Während der Entwicklung an einem Projekt schleust man gerne mal Code in bestimmten Core-Files ein um z. B. eine Debug-Ausgabe in einer core-Funktion zu erzeugen.

Seiten