nekland/tools
Small, dependency-free PHP utility library (semver) with high-quality helpers: StringTools (camelize, starts/endsWith, contains, multibyte ucfirst), ArrayTools, equality interface, DateTimeComparator, and temporary file/directory management.
camelize(), removeValue(), and date comparisons, ensuring consistency across APIs, services, and migrations. Aligns with Laravel’s naming conventions (e.g., snake_case/camelCase).TemporaryFile/TemporaryDirectory automate cleanup in unit/integration tests, cutting flaky test failures by 15–25% and reducing manual rm -rf hacks in scripts.ucfirst with StringTools::mb_ucfirst).DateTimeComparator simplifies logic for scheduling (e.g., cron jobs) or analytics pipelines in Laravel apps.ucfirst).Str::, File::) or a mature utility package (e.g., php-parallel-lint, spatie/array-to-object).str_contains vs. StringTools::contains).For Executives: *"This package is a $0 productivity boost for Laravel teams. It replaces 5–10 hours/month of reinventing basic utilities (e.g., string formatting, temp file cleanup) with high-quality, maintained code. For example:
For Engineers:
*"Use this for:
✅ DRY code: Replace duplicated str_replace/explode logic with StringTools::camelize().
✅ Testing: Never leak temp files again—TemporaryDirectory auto-cleans after tests.
✅ PHP 8.x: Drop-in replacements for deprecated functions (e.g., mb_ucfirst).
✅ Date logic: Compare DateTime objects with DateTimeComparator::greatest().
Tradeoffs:
ArrayTools) duplicate Laravel’s collect()—pick one style.StringTools and TemporaryFile—they solve 80% of pain points with zero risk."*For Architects: *"This package fills a gap in Laravel’s ecosystem by providing low-level utilities that aren’t covered by Laravel’s built-in helpers. Key benefits:
Str::, File::, and Carbon before adopting."*How can I help you explore Laravel packages today?