Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Eloquent Slug Laravel Package

mgboateng/eloquent-slug

A Laravel package for automatic slug generation on Eloquent models. It helps create unique, URL-friendly slugs from chosen attributes, simplifying clean routes, SEO-friendly links, and manual slug handling in your application.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Basis of this assessment: There is no prior assessment on record — this establishes a baseline. The only change signal is a one-line v0.2.0 note ("fix database compatibility issue to work across board"). Treat everything below as provisional until the package's composer constraints, CI matrix, and migration files are inspected directly.

Architecture fit. This is a Laravel package that appears to own or alter database schema (a "database compatibility" fix implies shipped migrations or driver-specific SQL). For a TPM, that is the single most important architectural fact: the package sits in the persistence layer, the highest-blast-radius place a dependency can live. A bug here is not a broken UI, it is a failed deploy or corrupted rows. Weight it accordingly — it belongs in the "evaluate like an ORM or auth package" bucket, not the "utility helper" bucket.

Integration feasibility. Mechanically straightforward for a Laravel team: Composer require, publish config and migrations, php artisan migrate. The real cost is not installation, it is verification — confirming the "across board" claim actually holds for our engine and version before it touches production. The v0.x version number means no stability guarantee, so plan to pin an exact version rather than a caret range.

Technical risk.

  • Pre-1.0 API surface. Anything can break in 0.3.0. Budget recurring upgrade work.
  • Unverified breadth. "Across board" is a marketing phrase, not a test matrix. We do not know which engines (MySQL, PostgreSQL, SQLite, SQL Server) and which versions are actually exercised in CI, versus merely "should work."
  • Driver-specific type drift. Cross-database fixes commonly introduce subtle divergence — JSON column handling, timestamp precision, boolean representation, index length limits on older MySQL, identifier case-folding in Postgres. These fail at runtime on one engine, not at install time.
  • Schema ownership. If the package publishes migrations, its schema is now coupled to ours. A later package upgrade that changes column types becomes a data migration we own, not the maintainer.

Key questions for the maintainer (or for our own repo inspection):

  1. Which database engines and versions are covered by an automated CI matrix, and can we see it?
  2. Does the fix use the query builder/Eloquent, or raw driver-conditional SQL?
  3. Is the v0.2.0 fix a code change or a schema change — i.e. does upgrading existing installs require a new migration, and is it reversible?
  4. Is the "compatibility issue" a regression in v0.1.x that already broke someone in production? If so, what was the failure mode?
  5. Laravel and PHP version support range, and stated semver policy approaching 1.0.
  6. Is this a single-maintainer project? What is the issue/PR responsiveness?

Integration Approach

Stack fit. Presumed Laravel-native (service provider, publishable config, migrations), which matches our stack without an adapter layer. Confirm the supported Laravel/PHP range against our current LTS before doing anything. The open question is not "does it fit" but "does the persistence layer it ships match our conventions" — naming, index strategy, cascading behavior.

Migration path. Because v0.2.0 is a compatibility fix, treat it as a corrective baseline rather than an incremental upgrade: there is no earlier version worth adopting if we haven't already. Start clean on 0.2.0, pinned exactly, and skip any temptation to evaluate 0.1.x.

For our own environments, the path is: local → CI → staging with a production-shaped data snapshot → production. The staging step is non-negotiable here, because cross-database changes are precisely the class of change that passes on a developer's SQLite and fails on Postgres or MySQL 5.7.

Compatibility. Two axes to check: (a) our Laravel/PHP versions, and (b) our database engine — and for (b), the patch version, not just the major. If we run multiple engines across environments (common: SQLite in test, PostgreSQL in production), that divergence is the exact scenario the v0.2.0 fix is meant to address, and also the exact scenario where a partial fix hides. Verify on the production engine specifically.

Sequencing.

  1. Read the diff and published migrations; confirm no destructive operations.
  2. Install on a scratch Laravel project, run migrations against our real engine version.
  3. Add engine-specific assertions to our own test suite — do not rely solely on the package's tests.
  4. Staging deploy with a production data snapshot; capture before/after schema via schema:dump (Laravel native) for review.
  5. Production, behind the standard migration gate, with an explicit rollback plan that includes data, not just code.
  6. Only after a clean cycle, consider relaxing the exact version pin.

Operational Impact

Maintenance. Pre-1.0 with a terse changelog. The v0.2.0 note is one line describing a change to database-wide behavior — that is a changelog quality signal in itself, and a mild one. Expect to spend time reading source diffs rather than release notes, and to schedule upgrade reviews rather than treating patch bumps as automatic.

Support. Unknown maintainer count and responsiveness; ask before it becomes load-bearing. Have a fallback: because the package touches schema, an abandoned dependency here means we inherit the migrations. Confirm now that the schema is simple enough for us to own if the project stalls.

Scaling. If the fix concerns indexes, column types, or query construction, it affects performance at volume, not just correctness. Look specifically at whether the package creates indexes on columns we will filter or sort by, and whether the cross-database abstraction chose the lowest-common-denominator type (e.g. TEXT where a native JSON or UUID would perform better). Lowest-common-denominator typing is the typical cost of "works across board."

Failure modes.

  • Migration fails mid-deploy on one engine; partial schema, rollback does not undo applied statements cleanly.
  • Passes in CI on SQLite, fails at runtime on Postgres due to a type or collation mismatch — worst case, because it surfaces under load in production, not at build time.
  • A future release changes a column type, silently requiring a data backfill we did not plan for.
  • Driver-detection logic misidentifies our engine or version and takes the wrong branch.
  • Silent data truncation or precision loss (decimal, timestamp) that does not throw and is only noticed downstream in reporting.

Ramp-up. Low for the mechanical install; moderate for the parts that matter. Any Laravel developer can run the migrations in an hour. Understanding whether the cross-database behavior is correct for our engine requires someone comfortable with schema design and driver differences — budget a day of a senior developer's time for evaluation, and treat that as the real adoption cost rather than the install.

TPM recommendation. Proceed to a time-boxed spike (one engineer, one to two days) in a scratch project against the production database engine. Do not adopt into a production service until the CI matrix question in the Technical Evaluation is answered and we have run the migrations ourselves against our engine version. The single-line changelog and pre-1.0 version number together argue for an exact pin and a scheduled re-review at each release, not a caret range and forget.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource