- Is Integrated Slug Bundle a Laravel package?
- No. It is a Symfony bundle that relies on container-tagged event listeners and Doctrine lifecycle hooks. There is no Illuminate service provider, no package auto-discovery, and no config/slug.php, so nothing wires itself into Eloquent or Laravel's container. Only the pure string-to-slug transform is realistically reusable in a Laravel application.
- Can I install integrated/slug-bundle in a Laravel app with Composer?
- A Composer require will likely succeed, but the bundle class simply sits inert because Laravel never boots it. The real question is version-constraint conflict against the Symfony components Laravel already pins, such as console, http-foundation, process, and string. Read the package composer.json and run a dry-run require before committing to anything.
- How does Integrated Slug Bundle handle duplicate slugs?
- The overview advertises unique slug handling with collision resolution, but the enforcement point is unverified. It is unclear whether uniqueness is backed by a database constraint, an application-level check, or nothing at all. If it is app-level or absent, you either get 500 errors on a unique index or silent duplicate URLs, so test this explicitly.
- Does it transliterate non-ASCII characters, CJK text, and emoji?
- Transliteration behavior is configurable, but the quality of its tables for diacritics, CJK, and emoji is the single largest unknown. Do not trust synthetic test strings. Build a golden-file corpus from your own product titles or article headlines and compare its output against Str::slug() and cocur/slugify before deciding.
- Will it overwrite my curated slugs when a model is updated?
- That is the listener side-effect risk. If generation runs on every update, it silently rewrites published URLs and breaks inbound links and SEO. Confirm whether generation is idempotent on update or only fires when the slug is empty, and guard it with an isDirty or empty check if you port the behavior.
- How do I configure the separator and lowercase behavior?
- The bundle supports a customizable separator, a lowercase toggle, and transliteration options. In Symfony those come from bundle configuration, which has no equivalent in Laravel. You would instantiate the slugger class directly and pass options yourself, preferably behind your own config file and a small wrapper service.
- Does it truncate long slugs to fit my database column?
- Unverified, and it matters. Slug columns are typically varchar(191) or varchar(255) with a unique index, so a long title that is not deterministically truncated will either throw on insert or silently collide after truncation. Exercise very long titles during your spike and confirm the truncation is byte-safe for multibyte text.
- How do I test and maintain a package with one star and zero dependents?
- There is no community to absorb regressions, so the maintainer's own discipline is the entire safety net. Check commit cadence, the PHP support matrix, and whether any CI exists before you depend on it. If the transform wins on your corpus, vendor the single class with MIT attribution in a NOTICE file rather than pulling the whole bundle.
- What are the Laravel-friendly alternatives to Integrated Slug Bundle?
- Str::slug() plus an Eloquent observer covers most needs in roughly 50 to 150 lines of code. cocur/slugify is a solid drop-in if you need broader transliteration coverage. Either way your integration code is identical, which is exactly why the build-versus-buy decision is cheap and reversible.
- Should we adopt integrated/slug-bundle in production?
- Recommendation: do not adopt it as a dependency, use it as a reference implementation instead. The capability is commodity, and a zero-dependency, one-star bundle expands your audit and patching surface for negligible return. Run a half-day spike, benchmark the transform on your own corpus, and build the persistence hook in-house regardless of which slugger wins.