Potenciální nevýhody používání balíčku Spatie, zejména oprávnění Spatie Laravel a související balíčky, obsahují následující:
- Požadavky na složitost a nastavení: Zatímco balíček Spatieho oprávnění je lehký a rychlý, vyžaduje více nastavení a konfigurace ve srovnání s některými alternativami, jako je Laratrust. To může zvýšit počáteční dobu vývoje a složitost projektů, které vyžadují rychlou nebo jednoduchou správu role/povolení [2] [3].
- Omezené funkce pro složité případy použití: Balíček nemusí stačit pro velmi složité scénáře správy role a povolení. Některé pokročilé funkce mohou vyžadovat ruční implementaci nebo další přizpůsobení, které mohou zvýšit režii údržby [3] [4].
- Omezení struktury databáze: Spatie používá pevnou sadu tabulek pro role, oprávnění a jejich vztahy. Rozšíření nebo přizpůsobení těchto tabulek (např. Použití jiné tabulky pro role) může být náročné a může vyžadovat převažující vnitřní chování, což není přímé [6].
- Omezení překladu založená na JSON (pro Spatie Translatovatelná): V souvislosti s překladatelným balíčkem Spatie (pro překlady manipulace) někteří uživatelé vykázali problémy s přístupem formátu JSON. Problémy zahrnují chyby v automatickém doplňování v důsledku překrývajících se jazykových segmentů a potřeba zvýšit limity délky řetězce při podpoře více jazyků. Někteří vývojáři preferují přístup „One Translation Table na entitu“ pro stabilnější a škálovatelnější správu překladu, zejména pro solidní údaje, jako jsou informace o produktu nebo podrobnosti SEO [1].
- Problémy s kompatibilitou: Mohou existovat problémy s kompatibilitou s určitými verzemi PHP nebo Laravel. Například starší verze Spatie Packages nemusí podporovat PHP 8, což vyžaduje buď snížení PHP nebo upgrade Laravel, což může komplikovat řízení závislosti [5].
-Žádný vestavěný panel UI/Admin: Balíček se zaměřuje na roli backendu a správu oprávnění a neposkytuje vestavěné uživatelské rozhraní nebo panel správce. Vývojáři musí vybudovat vlastní uživatelské rozhraní pro správu rolí a oprávnění, což zvyšuje úsilí o rozvoj [8].
- Testování křehkosti: Ačkoli to není specifické pro Spatie, ale relevantní pro Laravel Packages obecně, někteří uživatelé poznamenali, že integrace komplexních balíčků může učinit automatické testování křehčí nebo komplikovanější, což vyžaduje pečlivé návrh testu, aby se zabránilo změnám [9].
Stručně řečeno, zatímco balíček Spatie je výkonný, dobře zdokumentovaný a široce používaný, jeho nevýhody zahrnují složitost nastavení, omezené pokročilé funkce mimo krabici, výzvy při přizpůsobování databázových tabulek, omezení překladu, problémy s kompatibilitou verzí, nedostatek uživatelského rozhraní a potenciální potíže s testováním. Tyto faktory by měly být zváženy při rozhodování, zda je Spatie tím pravým pro projekt.
Citace:
[1] https://www.reddit.com/r/laravel/comments/1j3613p/pros_and_cons_by_using_spatietranslatable/
[2] https://laracasts.com/discuss/channels/laravel/laratrust-vs-patie-permission-experience
[3] https://laracasts.com/discuss/channels/laravel/authorizace-and-its-packages?reply=949577
[4] https://stackoverflow.com/questions/58215808/laravel-event-sourcing-spatie-how-tore--more-complex-business-rules
[5] https://stackoverflow.com/questions/70545060/problems-when-nstaalling-patie-in-laravel-6-20-29
[6] https://stackoverflow.com/questions/58114242/extending-the-spatie-model-but-use-a-differentní-tabázová tabulka
[7] https://www.linkedin.com/pulse/managing-roles-permissions-laravel-package-al-Shahriar-mehedi-k9tjf
[8] https://laravel-news.com/two-best roles-permissions-packages
[9] https://tenacyforlaravel.com/docs/v3/package-comparison/