user-first-name ↔ userFirstName), enabling broader alignment with frontend frameworks (React/Vue) and modern API design trends (e.g., GraphQL, RESTful endpoints). This reduces friction in polyglot persistence scenarios where kebab-case is preferred for URLs or frontend state./users/first-name vs /users/firstName).snake_case ↔ Shopify’s camelCase ↔ your kebab-case internal IDs).str_replace chains) or rely on ad-hoc solutions like Inflector (which lacks Laravel/Symfony integration). The package now covers 90%+ of case-conversion needs in a PHP monorepo.userFirstName → user-first-name for SEO-friendly slugs (e.g., Route::get('/users/{name}', ...)).post-title in Strapi → postTitle in PHP)./api/v1/user-first-name) with modern camelCase services.preg_replace('/-([a-z])/e', 'strtoupper("$1")', str_replace('-', ' ', $str)).league/uri for URL-specific kebab-case needs.spatie/array-to-string could suffice.lodash.kebabCase, inflection.kebabize).StringUtils Already Covers Needs: If you’re using Symfony 6.3+ and only need kebab-case for URLs, symfony/web-link or symfony/string may integrate better with your existing stack.user-first-name or userFirstName is "correct").For Executives: *"This update adds kebab-case support, which is critical for modern web apps. For example:
userFirstName to user-first-name for clean, readable URLs (e.g., /users/user-first-name).Impact:
Cost: Zero—just a Composer update. ROI comes from consistency and reduced technical debt."*
For Engineers: *"v1.3.0 adds kebab-case, which is a game-changer for:
toKebabCase() (e.g., UserFirstName → user-first-name).str_replace hacks.Key Features:
['user_first_name', 'user_last_name'] → ['user-first-name', 'user-last-name']).{{ "UserFirstName"|toKebabCase }}.toCamelCase(), etc.Example:
$converter->toKebabCase(['userFirstName', 'userLastName']);
// => ['user-first-name', 'user-last-name']
Trade-offs:
For Architects: *"This update completes the case-conversion matrix for our stack, enabling:
Recommendation:
StringUtils if you’re already using it for other string ops (e.g., slugify).symfony/web-link instead) or have a minimalist stack.Long-Term Value:
space-case for human-readable outputs)."*How can I help you explore Laravel packages today?