Facebook: Quellen des Codegenerators für PHP-Alternative Hack offengelegt

Die Bibliothek Hack Codegen soll beim Erzeugen von Code in Hack, der PHP-Alternative des Unternehmens, helfen und eine Option bieten, ihn gegen unerwünschte Änderungen zu schützen.

In Pocket speichern vorlesen Druckansicht 41 Kommentare lesen
Facebook legt Quellen seines Codegenerators für Hack offen
Lesezeit: 2 Min.
Von
  • Julia Schmidt

Alejandro Marcu hat auf Facebooks Entwickler-Blog Hack Codegen vorgestellt und die Verfügbarkeit der Bibliothek auf GitHub verkündet. Sie soll eine Möglichkeit liefern, Hack-Code automatisch zu erzeugen, sodass sich beispielsweise Frameworks mit einem höheren Abstraktionsgrad entwickeln lassen. Zudem lässt sich mit Hack Codegen erstellter Code in signierten Dateien speichern, sodass Entwickler ihn nicht beziehungsweise nur in einem vorher festgelegten Rahmen nachbearbeiten können. Kern des Projekts ist die Komponente hack_builder, die für das Konkatenieren, Zeilenumbrüche, Einrückungen, das Setzen von Klammern und ähnliches zuständig ist.

Vorrangig entstand Hack Codegen wohl, da man zuvor Code durch das Verknüpfen von Strings und den Einsatz einiger Hilfsfunktionen erzeugte, was allerdings nicht gut skalierte und einige weitere Nachteile aufwies. Bei der Umsetzung interner Projekte war es außerdem wichtig, dass generierter Code nicht editierbar war, weshalb man eine weitere Bibliothek zum Signieren der automatisch erstellten Dateien einband. Allerdings wurden für Codegen einige Anpassungen vorgenommen, sodass sich entsprechend ausgezeichnete Sektionen manuell ändern lassen, sollte hierfür Notwendigkeit bestehen.

Ein Beispiel, wie sie sich nutzen lässt, ist auf GitHub zu finden. Die Bibliothek ist unter einer BSD-Lizenz geschützt. Um Codegen einsetzen zu können, müssen Facebooks HipHop Virtual Machine und Composer installiert sein.

Hack ist Facebooks Alternative zu PHP und soll die Sprache um Besonderheiten wie statische Typisierung und Lambda-Ausdrücke erweitern und für bessere Leistungsfähigkeit sowie höhere Codequalität sorgen. Im Februar hatte das Unternehmen eine Spezifikation für Hack veröffentlicht. (jul)