Laravel Nova — szybkie i efektywne CRUD-y w PHP
CRUD (create, read, update and delete) potrafi być prawdziwym koszmarem dla zaawansowanych deweloperów. O ile na samym początku przygody z programowaniem może to być na swój sposób ciekawe, to z biegiem czasu wszystko co monotonne, a wręcz wykonywane mechanicznie, może skutecznie obniżać poziom zapału do pracy.
Na szczęście nie brakuje na rynku narzędzi, które wyciągają do nas pomocną dłoń. Jedno z nich to właśnie Laravel Nova. Co prawda nie jest to oprogramowanie typu open source, jednak stworzone zostało przez twórcę Laravela — Tylora Otwella. To przekłada się na gwarancję kompatybilności.
Czym jest Laravel Nova?
Przede wszystkim Nova nie jest sama w sobie systemem CMS. Instalujemy ją przez Composer, jako jeden z pakietów Laravela. Nie koliduje w żaden sposób z istniejącą aplikacją, przez co można ją zainstalować już w gotowych projektach. Mimo iż nie jest gotowym rozwiązaniem, to w prosty sposób pozwala zbudować dopasowanego do wymagań danej aplikacji CMS-a. Co więcej, stworzenie go z myślą o spełnieniu konkretnych zadań, często będzie szybsze niż dopasowanie do swoich potrzeb gotowego rozwiązania.
Nova od strony frontendu opiera się o Vue.js oraz Tailwind.css, co przekłada się na przejrzystość, ale również duże możliwości rozbudowy CMS-a, zwłaszcza pod kątem tworzenia niestandardowych narzędzi, kart oraz pól.
Co oferuje Nova?
Zarządzanie zasobami
Oczywiście podstawowym zadaniem, jakie ma realizować Nova, będzie tworzenie, odczytywanie, aktualizowanie oraz usuwanie zasobów w bazie danych. Tu twórca systemu położył duży nacisk na objęcie wszystkim możliwych skrajnych zastosowań. Dowodem na to jest wsparcie dla każdego typu relacji Eloquenta, tabele pośrednie/przestawne oraz relacje polimorficzne.
Nova pozwala korzystać z całego wachlarza dostępnych typów pól. Poza podstawami, takimi jak tekst, wartość logiczna, liczba i daty, mamy dostęp do pól:
- Markdown
- Trix
- Code
- Password
- Password Confirmation
Wyszukiwanie
Nova oferuje również szybką i skuteczną wyszukiwarkę. W tym celu domyślnie wykorzystuje zapytań SQL. Jeśli jednak Twoja aplikacja korzysta na przykład z Laravel Scout, Nova w takim wypadku bez problemu dostosuje się i wykorzysta dostępną opcję.
Nova działa zarówno jako wyszukiwarka globalna, ale również pozwala korzystać z pól wyszukiwania nad listami rekordów dla każdego zasobu.
Akcje
Akcje, czyli proste klasy PHP, pozwalają wykonywać dane zadania na jednym lub partiach zasobów. W przypadku zadań zajmujących więcej czasu, Nova wykorzystuje wbudowany mechanizm kolejkowania Laravela. Dobrym przykładem takiej wymagającej czasowo akcji będzie wysyłka newslettera.
Co więcej, model Eloquent oznaczony cechą „Actionable” zapewnia możliwość prześledzenia ścieżki audytu.
Filtry
Nova pozwala definiować klasy PHP za pomocą filtrów. W ten sposób możemy dowolnie modyfikować zapytania, tak aby zwracały rekordy ściśle dopasowane do podanej wartości. Filtry mogą być włączane i wyłączane z poziomu interfejsu użytkownika. Poza klasycznym polem tekstowym, w które należy wpisać wyszukiwaną wartość, możemy skorzystać również z checkboxów, czy menu typu dropdown.
Autoryzacja
Dzięki idealnemu dostosowaniu Novy do frameworku, z łatwością wykorzystamy polityki autoryzacji znane z Laravela. W sytuacji, gdy bazowy model Eloquenta będzie miał przypisaną odpowiednią politykę, Nova będzie w stanie automatycznie wykorzystać ją do autoryzacji akcji danego użytkownika. W ten sposób temu mamy możliwość przypisywania i ograniczania ról każdego z użytkowników.
Metryki
Jakby tego wszystkiego było mało, Nova udostępnia trzy typy wykresów, gotowych do zastosowania „out of the box”: wartości, trendy oraz podział. Całość zajmuje kilka sekund i umożliwia nie tylko wyświetlenie nowych użytkowników w zadanym okresie czasu, ale również wykonywać obliczenia typu: średnia, suma, minimum oraz maksimum.
Lenses
Tę funkcję należy rozumieć dosłownie, jako soczewki, które zmieniają sposób oglądania danego zasobu. Przykładem zastosowania będzie wyświetlania użytkowników strony w kontekście wszystkich dokonanych na stronie zakupów oraz sortowanie ich ze względu na tych generujących największe przychody.
Dostosowywanie do swoich wymagań
Ponieważ cały interfejs użytkownika zbudowany został w całości w Vue, mamy praktycznie nieograniczone możliwości dostosowywania narzędzi, kart oraz pól. Każde z narzędzi zawiera komponent Tool.vue, co w połączeniu z arkuszem Tailwind.css pozwala deweloperom rozwinąć skrzydła.
Jak twierdzi sam Taylor Otwell, wszystko co można zbudować za pomocą komponentów Vue oraz zaplecza zaprojektowanego w Laravel, może zostać zaimplementowane w projekcie korzystającym z Nova.
Czy Nova się opłaca?
To, co opisaliśmy w tym poście to jedynie wierzchołek góry lodowej, jaką są możliwości optymalizacji pracy przy tworzeniu swojego CMS-a. Nova pozwala stworzyć idealnie dopasowane do konkretnych wymagań narzędzie, a przy tym zaoszczędzić sporo czasu. Czy polecamy? Zdecydowanie tak!
Ceny licencji
Należy pamiętać o tym, że Nova nie jest darmowa, a także nie oferuje możliwości przetestowania jej w formie bety lub wersji trial. Aktualnie koszt licencji pozostaje na tym samym poziomie od czasu premiery i wynosi:
- 99 USD za projekt z licencją SOLO dedykowaną indywidualnym deweloperom,
- 199 USD z projekt z licencją PRO kierowaną do zespołów i firm.
Przy większych projektach to z pewnością opłacalny zakup, przekładający się głównie na oszczędność czasu. Zdecydowanie warto z Novy skorzystać, a w razie niezadowolenia, skorzystać z opcji zwrotu pieniędzy do 15 dni od zakupu.
Dodaj komentarz