Laravel Nova - das leistungsstarke Administrations-Panel

16. Mai 2019

Veröffentlicht in:

Webentwicklung

Was genau ist Laravel Nova?

Nova ist eine Laravel Administrationsoberfläche aus dem Hause Laravel selber, die durch klar strukturierte Oberflächen, individuelle Konfigurationsmöglichkeiten und reichlich vordefinierte Funktionspakete die Arbeit beschleunigt, aber natürlich auch vereinfacht

Laravel Nova lässt sich ebenfalls bequem via Composer als Laravel Paket installieren und fügt sich dabei problemlos in bereits bestehende Anwendungen ein. Als weiteres Modul des Laravel Ökosystems kann es so auch in bereits umgesetzte Laravel 5.6 Applikationen installiert werden.

Dank des Einsatzes von Vue.js, Vue Router und Tailwind.css im Nova-Frontend lassen sich benutzerdefinierte Elemente wie Tools, Karten und Felder mühelos konfigurieren. Auch in Bezug auf die Eloquent Models ist Nova bestens vorbereitet. Zu jedem Model verfügt Nova über eine entsprechende Ressourcen-Klasse, um so Felder, Aktionen, Filter, Lenses und Karten zu definieren. Nova selbst nutzt ausschließlich PHP Klassen und Konfigurationen werden aber nicht in der Datenbank gespeichert.

Ressourcen Management mit Laravel Nova

Innerhalb der Administration werden rein technisch „Ressourcen“ in der Datenbank erstellt, gelesen, aktualisiert oder gelöscht. Mit Nova sind diese Prozesse auch für komplexe „many-to-many“ Beziehungen innerhalb der Daten möglich und es werden die verschiedensten Eloquent-Relationen unterstützt.

Insgesamt wurde bei Nova nicht an Funktionalität gespart. Jede Ressource hat eine Detailansicht, in der die zugehörigen Informationen und auch verknüpfte Ressourcen aufgeführt werden. Eine performante Suche sowie praktische Sortierungen, Filter und Paginierung vereinfachen die Arbeit darüber hinaus.

Nova verfügt über die üblichen Felder wie Text, Boolean, Ziffern, Daten-Uploads und Datum aber auch weitere hilfreiche Felder wie Markdown, Trix, Code und Orte werden bereitgestellt.

Laravel Nova Suche

Auch bei der Suche zeigt sich die Flexibilität von Nova. In der Standard-Funktionalität verwendet Nova die ganz normale Suche via SQL Queries. Ganz anders jedoch, wenn Laravel Scout bereits in die Anwendung integriert ist. Dann verwendet Nova direkt und vorzugsweise die Scout Suche und damit auch die Möglichkeit auf die mächtige Suche mittels Agolia zurückzugreifen.

Die Suche ist für das Verzeichnis von Ressourcen und Relationen verfügbar, aber ebenso für verknüpfte Ressourcen. So können auch Benutzer zu einem Beitrag gefunden werden und die leistungsstarke globale Suche berücksichtigt alle Ressourcen-Typen und durchsucht diese mit einer beeindruckenden Geschwindigkeit.

Aktionen innerhalb Laravel Nova

Aktionen führen einen Task in einer oder mehreren Ressourcen über einfache PHP Klassen aus. Mit einer „Handling-Methode“ kann jede Aktion beliebige eingehende Aktionsfelder oder Gruppierungen von Models empfangen. Für umfangreichere Aktionen mit längerer Laufzeit bedient sich Nova dem Laravel eigenen Queuing-Dienst.

Ein weiteres Feature: Ein Eloquent-Model kann mit Nova als „ausführbar“ gekennzeichnet werden. Damit kann Nova anschließend einen „Audit Pfad“ der Aktionen anlegen, die gegen eine bestimmte Ressource innerhalb von Nova ausgeführt wurden. Als schöner Bonus werden die Daten innerhalb von Nova automatisch an die Zeitzone des Benutzers angepasst.

Filtermöglichkeiten

Die Filter in Laravel Nova können in der Benutzeroberfläche aktiviert oder deaktiviert werden. Die Filter ermöglichen es PHP Klassen zu definieren, die die Abfragen der Ressourcen-Verzeichnisse eingrenzen. Ein Filter kann die Abfrage so anpassen, dass nur die Einträge angezeigt werden die eine Spalte aufweisen, die mit dem gewählten Wert übereinstimmen. Ein einmal eingerichteter und einer Ressource zugewiesener Filter kann dann im Verzeichnis der Ressource aktiviert oder deaktiviert werden.

Laravel Nova Lenses

Die Lenses, vom englischen für Linsen, ermöglichen eine ganz neue Möglichkeit der Ansicht von Ressourcen. Die „Benutzer“ Ressource kann dann eine Ansicht haben, der die „Wertvollste Benutzer“ und ihre Käufe anzeigt und diese aber nach der Höhe des generierten Umsatzes sortiert. Die Lens Klassen in Nova bieten dabei den vollen Zugriff auf den Aufbau der zugrundeliegenden Eloquent Abfrage. Außerdem kann für jede Lens ein eigenes Set an Feldern festgelegt werden, das völlig losgelöst von der Ressource selbst ist. Eine einmal einer Ressource zugeordnete Lens kann dann ebenfalls über das Ressourcen-Verzeichnis verwaltet werden.

Nova Metriken und Reporting

Ohne weitere Arbeit bietet Nova direkt drei verschiedene Arten von Reports: Wert, Trend und Partition. Diese können mühelos generiert werden. Einfache numerische Vergleiche im zeitlichen Verlauf lassen sich mit einer einzigen Zeile Code erstellen. Auch Summe, Durchschnitt, Minimum oder Maximum eines gewählten Attributs können so ausgewertet werden. Trends können genauso einfach definiert werden und dann die Daten für Minuten, Stunden, Tage, Wochen oder Monate ermitteln.

Und auch hier: ist eine Metrik einmal einer Ressource zugewiesen worden, wird diese im Verzeichnis der Ressource angezeigt.

Autorisierung in Laravel Nova

Wie auch in anderen Bereichen integriert sich Nova auch im Falle der Autorisierung einfach in ein bestehendes Laravel Autorisierungssystem. An dieser Stelle kommen zudem die bereits bekannten Laravel Funktionalitäten zum Einsatz. Es besteht sehr kleinteilige Kontrolle, wer Ressourcen lesen, erstellen, bearbeiten oder löschen kann. Verfügt auch das zugehörige Eloquent Model über eine entsprechende Regel, nutzt Nova diese automatisch um Aktionen der Ressource zu autorisieren. Auch die Freigabe für Zugriff auf das Verknüpfen von Ressourcen mittels Relationen kann so verwaltet werden.

Individualisierung von Nova

Da fast das gesamte UI von Nova mit Vue Components umgesetzt wurde, kann die Oberfläche dementsprechend flexibel mit eigenen Tools, Karten und Feldern angepasst werden. Mit dem bereitgestellten CLI Helfer kann ein nützliches Gerüst all dieser Add-ons erstellt werden. Jedes Tool enthält eine „Tool.vue“ Komponente und somit steht der Anpassung nichts mehr im Wege. Tailwind.css wird zur Anpassung des Designs der Tools herangezogen und gleichzeitig können Axios Calls zum Laravel Backend gesendet werden. In einfachen Worten. Alles was mit Vue Components und dem Laravel Backend umgesetzt werden kann, ist in Nova implementierbar. Individuelle Karten beinhalten eine Card.vue Component und Felder beinhalten drei verschiedene Vue Components, die alle bearbeitet werden können.

Funktionale Admin Panels

Mit Nova wird die Entwicklung und das Bereitstellen von funktionalen Administrationsoberflächen für Anwendungen vereinfacht. Dank der Nova eigenen Features und der mühelosen Integration in ein bestehendes Laravel-Applikationsumfeld können so Verwaltungsaufgaben in einer Anwendung sauber und komfortabel programmiert werden. Das Zusammenspiel mit Laravel Komponenten und die Performance von Vue.JS bieten zudem eine größtmögliche Flexibilität und Individualisierung. Laravel Nova ist ohne Zweifel eine wertvolle Ergänzung des Laravel-Ökosystems.

Sie möchten die Administration Ihrer Laravel Applikation mit Nova umsetzen lassen? Sie suchen nach einer Agentur für die Laravel Nova Entwicklung? Sprechen Sie uns an! Wir beraten Sie gerne.

Können wir weiterhelfen?

Sie haben ein spannendes Projekt und möchten mit uns zusammenarbeiten? Kontaktieren Sie uns jetzt!

Kostenloses Erstgespräch