NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky

Open source

Sluggable for Laravel

Inštalácia
composer require roundly-consulting/sluggable-for-laravel
Vyžaduje: PHP ^8.4 · Laravel ^12.0|^13.0

Prehľad

Jedno- aj viacjazyčné slugy pre Eloquent. Ukladajte obyčajný reťazcový slug alebo json/jsonb jazykovú mapu s jedným slugom na jazyk, deklarujte ľubovoľný počet slugových stĺpcov na model a udržte ich jedinečné globálne alebo v rámci rozsahu — vynútené natívnymi unikátnymi indexmi databázy. K tomu route model binding podľa jazyka, validačné pravidlá, Artisan nástroje a voliteľná história slugov, ktorá staré URL presmeruje cez 301. Len natívny Laravel pod licenciou MIT, bez runtime závislostí tretích strán — a s predvolenými nastaveniami sa každý slug pri bežnom vstupe do 255 znakov zhoduje so Str::slug().

Čo získate

Jazykové mapy slugov

Obyčajné reťazcové slugy alebo json/jsonb jazykové mapy — jeden slug na jazyk, každý transliterovaný podľa pravidiel daného jazyka.

Zhoda so Str::slug()

S predvolenými nastaveniami sa každý slug pri bežnom vstupe do 255 znakov zhoduje so Str::slug(), takže po prechode na balík zostanú vaše URL nezmenené.

Jedinečnosť odolná voči súbehu

Jedinečné globálne, pre tenanta či nadradený záznam — s natívnymi unikátnymi indexmi databázy a automatickým opakovaním pri súbehu zápisov.

Routing podľa jazyka

Implicitný, vnorený aj soft-delete route binding hľadá podľa slugu v aktuálnom jazyku, voliteľne so záložným hľadaním podľa primárneho kľúča.

SEO história slugov

Vyradené slugy presmerujú cez 301 na aktuálnu URL bez odhalenia konceptov, zmazaných záznamov či údajov iných tenantov.

Pravidlá a zámky

Určte, ako sa správajú úpravy, ručne zadané slugy a prázdne zdroje, a zmrazte slug po publikovaní stránky.

Fasáda, DI alebo Artisan

Slugs::model(Product::class) doplní slugy, nájde duplicity a vytvorí indexy — alebo injektujte SlugManager, spustite akciu či Artisan.

Dokumentácia

Inštalácia

Inštalácia cez Composer; konfiguráciu, preklady a migráciu histórie slugov publikujete, len keď ich potrebujete.

Konfigurácia

Každý konfiguračný kľúč s predvolenou hodnotou a env premennou — formátovanie, jedinečnosť, úpravy, jazyky, limity, opakovania a história.

Rýchly štart

Pridajte trait HasSlug a kontrakt Sluggable — bez konfigurácie sa pri vytvorení vygeneruje jedinečný slug z atribútu name.

Definície slugov

Deklarujte ľubovoľný počet slugových stĺpcov cez slugOptions() alebo atribúty #[Slug] — zdroje, formát, jedinečnosť, životný cyklus a routing.

Fasáda Slugs

Jeden vstupný bod pre všetko okrem hookov modelu — ploché volania pre jeden model a Slugs::model(Product::class) pre prácu s celou triedou.

DI a akcie

Injektujte SlugManager a získate API fasády bez statických volaní, alebo spustite akciu za metódou priamo s jej DTO.

Formátovanie a sufixy

Ako pipeline transliteruje, čistí a skracuje — plus oddeľovače, predpony a prípony, rezervované slová, vlastný slugger a kolízne sufixy.

Viacjazyčné slugy

Viacjazyčné slugy v jednom json/jsonb stĺpci — transliterácia podľa jazyka, cieľové jazyky, záložné reťazce a vlastný zdroj jazykov.

Úpravy, ručné hodnoty a zámky

Určte, kedy sa slugy regenerujú, ako sa zaobchádza s ručne zadanými hodnotami, čo sa stane pri prázdnom zdroji a ako slug zmraziť.

Jedinečnosť a súbeh

Globálna jedinečnosť, jedinečnosť v rozsahu či cez closure, soft-deleted záznamy, ohraničené overovanie a automatické opakovanie pri súbehu.

Schéma a unikátne indexy

Blueprint makrá pre slugové stĺpce a natívne unikátne indexy pre reťazcové aj viacjazyčné slugy v PostgreSQL, MySQL a SQLite.

Dopytovanie

Hľadajte modely podľa slugu — v presnom jazyku alebo cez záložný reťazec, v ľubovoľnom jazyku, podľa zoznamu — so scopes bezpečnými pre count().

Route model binding

Implicitný, vlastný stĺpec, vnorený aj soft-delete route binding podľa slugu, URL podľa jazyka a voliteľné hľadanie podľa primárneho kľúča.

História slugov a presmerovania

Uchovajte vyradené slugy a presmerujte staré URL cez 301 na aktuálne — bez odhalenia konceptov, zmazaných záznamov či údajov iných tenantov.

Validácia

Pravidlá UniqueSlug a ValidSlug s rovnakou logikou ako generovanie — s rozsahom, podľa jazyka a bezpečné voči zisťovaniu naprieč tenantmi.

Eventy a výnimky

Eventy SlugChanged, SlugCollisionRetried a SlugsRegenerated a typovaná hierarchia výnimiek za každou chybou.

Artisan príkazy

Doplnenie a regenerovanie slugov, vytvorenie natívnych indexov a audit duplicít pred pridaním unikátneho indexu.

Prechod a obmedzenia

Prevod volieb existujúceho riešenia slugov na sluggable, kombinácia s inými traitmi a presné hranice balíka.

Testovanie

Testujte generovanie slugov, eventy, presmerovania z histórie aj regenerovanie vo fronte vo vlastnej Pest sade cez verejné API.

Požiadavky

PHP 8.4+ s ext-json a ext-mbstring, Laravel 12 alebo 13 a PostgreSQL, MySQL/MariaDB alebo SQLite pre DDL unikátnych indexov.

Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

Ďalšie spôsoby podpory vrátane kryptomien

Odoslaním daru súhlasíte s našimi podmienkami prijímania darov.

Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.