API-Dokumentation aufwerten - Enricher in phpDox

in  Builds & Tests , ,

API-Dokumentation aufwerten - Enricher in phpDox
Wer seine Projekte regelmäßig mit einem Build-Server prüfen und testen lässt, erstellt oftmals auch eine API-Dokumentation. Dafür gibt es auch im PHP-Bereich eine Vielzahl unterschiedlicher Werkzeuge, beispielsweise PHPXref oder ApiGen. Dieser Beitrag stellt das Tool phpDox vor und gibt Einblick in das interessante Feature der Enricher. Eine API-Dokumentation stellt in der Regel eine navigierbare Übersicht der in einem Projekt vorhandenen Klassen, Schnittstellen, Methoden usw. bereit. Damit können Entwickler, die diese Artefakte in ihrem eigenen Code nutzen wollen, Informationen über die benötigten Methoden einsehen und so beispielsweise herausfinden, welche Argumente eine bestimmte Funktion erfordert.

Validierung im ModuleStudio-Generator auf Symfony umgestellt

in  Generator , , ,

Validierung im ModuleStudio-Generator auf Symfony umgestellt
Bislang wurden in generierten Modulen selbstgeschriebene Validierungen verwendet. In den letzten Tagen wurden diese für die Zielversion Zikula 1.4.x abgelöst zu Gunsten der Symfony Validator Komponente. In Symfony können Validierungen in mehreren Notationen definiert werden. Neben PHP und YAML sind auch XML und Annotationen möglich. Im ModuleStudio-Generator haben wir, wie auch im Ticket auf GitHub diskutiert wurde, Annotationen verwendet. Dabei werden Validierungsregeln (“Constraints”) durch @Assert-Annotationen direkt an der entsprechenden Entitätsklasse beziehungsweise den entsprechenden Feldern oder Methoden hinterlegt.

Generator Einstellungen in ModuleStudio 0.6.1 - Überblick und Anwendung

in  Zikula Apps , ,

Generator Einstellungen in ModuleStudio 0.6.1 - Überblick und Anwendung
Wie im letzten Artikel bereits erwähnt, verfügt ModuleStudio seit Version 0.6.1 über eine Reihe von Generator-Einstellungen, mit denen sich unterschiedliche Features und Verhaltensaspekte beeinflussen lassen. Dieser Beitrag gibt einige Anregungen zu möglichen Anwendungsfällen dieser Optionen. Zikula Core Version Bereits von früheren Versionen bekannt ist eine Einstellung für die Version des Zikula Core, für die eine Anwendung generiert werden sollte. Dies ist also nicht neu. Features steuern Ob Templates für unterschiedliche Ausgabeformate, Plugins für andere Module oder Blöcke: optionale Zusatzfunktionen können nun einfach ausgeschaltet werden.

Unterschiedliche Templates und Formate in Zikula und Symfony

in  Zikula Apps , , , , ,

Unterschiedliche Templates und Formate in Zikula und Symfony
In ModuleStudio-basierten Modulen werden je nach Einstellung und Eigenschaften des zu Grunde liegenden Modells unterschiedliche Ausgabeformate unterstützt. Dieser Artikel gibt Hinweise zur Verwendung und einen Ausblick auf kommende Veränderungen im Rahmen der Umstellung auf Symfony und Twig. Ablauf im Hintergrund Um verschiedene Formate in einer Anwendung zu behandeln, sind mehrere Schritte nötig. Zunächst einmal ist festzuhalten, dass beim Einsatz von ShortURLs das sogenannte Routing dafür zuständig ist, die Parameter aus einer gegebenen URL auszulesen.

Controller-Funktionen in Templates einbinden

in  Zikula Apps , , ,

Controller-Funktionen in Templates einbinden
Im Gegensatz zu älteren Versionen empfangen Controller-Aktionen ab Zikula 1.3.x keine Argumente mehr. Bei der Umstellung bestehender Module kann man darüber stolpern, zum Beispiel wenn Controller-Funktionen mit dem modfunc-Plugin in Smarty-Templates eingebettet wurden. Worum geht es? Früher wurde in Zikula nicht unterschieden zwischen Controller-Aktionen und API-Methoden. Beides konnte beliebig aufgerufen und integriert werden, sowohl in PHP als auch in Smarty-Templates. Seitdem Symfony unter der Haube die Behandlung von Requests steuert, erfolgt hier eine striktere Trennung: während API-Methoden immer noch mit Argumenten aufgerufen werden, werden bei Controller-Aufrufen ausschließlich die Request-Parameter injiziert.

Einfache Anpassung von Umleitungen mit returnTo-Codes

in  Zikula Apps , ,

Einfache Anpassung von Umleitungen mit returnTo-Codes
Bei vielen kleineren Modulen muss nichts oder nicht viel an der Logik verändert werden, welche die Bearbeitung von Datensätzen steuert. Häufig ist es aber wünschenswert, dass der Anwender nach dem Speichern seiner Änderungen zu einer bestimmten Stelle umgeleitet wird. In generierten ModuleStudio-Modulen gibt es dafür bereits eine nützliche Funktion. Im Folgenden wird ein einfaches Modell als Beispiel verwendet: es gibt zwei Entitäten für Kunden und Adressen. Eine bidirektionale 1:n-Beziehung legt fest, dass jeder Kunde mehrere Adressen haben kann, wobei jede Adresse auch auf die Daten des zugeordneten Kunden zugreifen kann.

jQuery neben Prototype in Zikula einsetzen

in  Basics , ,

jQuery neben Prototype in Zikula einsetzen
In Zikula 1.3.x sind jQuery und jQuery UI bereits enthalten. Allerdings verwenden viele Module noch Prototype, was dazu führt, dass beide Skripte parallel nebeneinander verwendet werden. Dieser Artikel zeigt auf, welche Konsequenzen dies für die Nutzung mit sich bringt und wie man jetzt schon ohne Probleme mit jQuery arbeiten kann. Skripte via PageVar laden Statt mit Pfaden und Dateinamen hantieren zu müssen, können oft benötigte Skripte in Zikula einfach mittels PageVars geladen werden.

Modulvariablen in Code und Templates nutzen

in  Basics , ,

Modulvariablen in Code und Templates nutzen
Dieser Beitrag gibt eine kurze Einführung in die Verwendung von Modulvariablen. Diese können dazu verwendet werden, bestimmte Parameter in einem Modul einstellbar zu machen. Typische Beispiel hierfür sind etwa Grenzwerte oder API-Keys für Drittdienste. Nutzung im Code Die wichtigsten Grundfunktionen werden von Zikula durch die ModUtil-Klasse bereitgestellt. 1 2 3 4 5 ModUtil::hasVar($modname, $name) ModUtil::getVar($modname, $name = '', $default = false) ModUtil::setVar($modname, $name, $value = '') ModUtil::setVars($modname, array $vars) ModUtil::delVar($modname, $name = '') Innerhalb von Klassen, die von Zikula_AbstractBase erben, zum Beispiel in Controller- und API-Klassen, gibt es außerdem Convenience-Methoden, die auf die oben genannten ModUtil-Methoden verweisen.

Generierte Anwendungen in Scribite integrieren

in  Zikula Apps , , ,

Generierte Anwendungen in Scribite integrieren
Bei mit ModuleStudio generierten Modulen werden unter anderem auch Plugins für unterschiedliche WYSIWYG-Editoren erzeugt, die im Modul Scribite integriert sind. Wie diese Plugins eingerichtet werden und was sie können, zeigt dieser Beitrag. Das Zikula-Modul Scribite bringt eine Reihe von Editoren mit, die flexibel konfiguriert und in anderen Modulen verwendet werden können. So könnte man etwa Summernote als Standardeditor nutzen, in einem bestimmten Modul jedoch TinyMCE, während in einem anderen Modul oder einer bestimmten Modulfunktion QuillJS zum Einsatz kommt.

Capabilities in Zikula - Module austauschen für spezielle Szenarien

in  Zikula Apps , ,

Capabilities in Zikula - Module austauschen für spezielle Szenarien
Wenn mehrere Zikula-Module zusammen arbeiten, wird dies in der Regel durch Modulabhängigkeiten ausgedrückt. Damit lässt sich festlegen, dass ein Modul A ein anderes Modul B entweder zwingenderweise voraussetzt oder optional empfiehlt. In größeren Systemen, die aus mehreren Modulen bestehen, reicht dies ab einem gewissen Punkt nicht mehr aus. Austauschbarkeit von Modulen gewährleisten Früher gab es in der Modultabelle von Zikula Flags für bestimmte Funktionen, zum Beispiel isProfile für Profilmodule und isMessaging für Module, die private Nachrichten verwalten können.