Všetky balíky
Sluggable for Laravel
DI a akcie
Fasáda je len skratka — k dispozícii sú tri rovnocenné vstupné body a výber je na vás:
- Fasáda Slugs — najkratší zápis a odporúčaná voľba.
- Manažér injektovaný cez konštruktor — rovnaké API ako explicitná závislosť, bez statických volaní. RoundlyConsulting\Sluggable\SlugManager je koreňom fasády.
- Akcie — jednoúčelové triedy s metódou execute(), ktoré zapojíte do vlastných akcií, jobov a príkazov.
Injektovanie manažéra
use RoundlyConsulting\Sluggable\Enums\RegenerationMode;
use RoundlyConsulting\Sluggable\SlugManager;
final class BackfillSlugs
{
public function __construct(private SlugManager $slugs) {}
public function __invoke(): void
{
$this->slugs->model(Product::class)->regenerate(mode: RegenerationMode::Missing);
}
}Spustenie akcie
Každá metóda fasády spúšťa jednu akciu, ktorá sa získa z kontajnera. Akcie prijímajú DTO — pri regenerovaní RegenerateSlugsData, ako tu:
use RoundlyConsulting\Sluggable\Actions\RegenerateSlugsAction;
use RoundlyConsulting\Sluggable\DataTransferObjects\RegenerateSlugsData;
use RoundlyConsulting\Sluggable\Enums\RegenerationMode;
$report = app(RegenerateSlugsAction::class)->execute(
new RegenerateSlugsData(Product::class, mode: RegenerationMode::Stale),
); // RegenerationReport| Metóda | Akcia |
|---|---|
apply(), recompute(), regenerate() | GenerateSlugsAction |
model()->regenerate() | RegenerateSlugsAction |
model()->queueRegeneration() | QueueSlugRegenerationAction (dispatches RegenerateSlugsJob) |
model()->duplicates() | FindDuplicateSlugsAction |
model()->findInHistory() | ResolveSlugFromHistoryAction |
model()->indexes() | SlugIndexes::forModel() (schema helper, also usable in migrations) |
RecordSlugHistoryAction je interná — je krokom pipeline pri ukladaní; história sa zaznamená uložením modelu, nie jej volaním.
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 kryptomienOdoslaní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.