braunstetter/helper
braunstetter/helper is a small PHP/Laravel helper package that groups handy utility functions for everyday development—common string, array, and miscellaneous helpers you can reuse across projects to reduce boilerplate and speed up coding.
Installation
composer require braunstetter/helper
Add the service provider to config/app.php:
'providers' => [
// ...
Braunstetter\Helper\HelperServiceProvider::class,
],
First Use Case
Use the Helper facade to access common utilities:
use Braunstetter\Helper\Facades\Helper;
// Generate a UUID
$uuid = Helper::uuid();
// Format a date
$formatted = Helper::formatDate('2023-01-01', 'Y-m-d H:i:s');
// Check if a string is sluggable
$isSluggable = Helper::isSluggable('Hello World');
Key Facade Methods
uuid() → Generate UUIDs.formatDate() → Standardize date formatting.isSluggable() → Validate slug-friendly strings.arrayToObject() → Convert arrays to objects.objectToArray() → Convert objects to arrays.snakeCase()/camelCase() → String case conversion.// Convert API responses (arrays) to objects for Eloquent
$response = Helper::arrayToObject($apiData);
$user = User::create($response);
// Convert Eloquent models to arrays for API responses
$users = User::all()->toArray();
$serialized = Helper::objectToArray($users);
// Generate UUIDs for database records
$record = [
'id' => Helper::uuid(),
'name' => 'Test',
'created_at' => now(),
];
// Validate and generate slugs
$title = "Hello World 2023";
$slug = Helper::slug($title); // "hello-world-2023"
if (Helper::isSluggable($title)) {
// Proceed with slug logic
}
// Normalize dates across the app
$createdAt = Helper::formatDate($user->created_at, 'Y-m-d H:i:s');
$displayDate = Helper::formatDate($createdAt, 'M d, Y');
Helper in service classes to abstract repetitive logic.isSluggable().formatDate().UUID Collisions
ramsey/uuid under the hood. Ensure no duplicate UUIDs are generated in high-concurrency environments (unlikely but possible with custom UUID versions).Helper::uuid()->toString() for explicit string conversion.Date Parsing Edge Cases
formatDate() may fail on invalid dates (e.g., "2023-02-30"). Always validate input dates first.createFromFormat() or tryParse() before passing to formatDate().Case Conversion Quirks
snakeCase()/camelCase() may not handle Unicode or special characters as expected.preg_replace('/[^a-zA-Z0-9]/', ' ', $string).Object/Array Conversion
arrayToObject() creates stdClass objects by default. Nested arrays may not convert as expected.json_decode(json_encode($array), FALSE) for deeper conversion or extend the helper.php artisan tinker and dump Helper::methods() to see all available methods.\Log::debug('Generated UUID:', ['uuid' => Helper::uuid()]);
// app/Helpers/ExtendedHelper.php
namespace App\Helpers;
use Braunstetter\Helper\Facades\Helper as BaseHelper;
class ExtendedHelper extends BaseHelper {
public static function customSlug($string) {
return parent::slug($string) . '-custom';
}
}
Custom UUID Version Modify the service provider to bind a custom UUID generator:
// app/Providers/AppServiceProvider.php
public function register() {
$this->app->bind(\Braunstetter\Helper\Contracts\UuidGenerator::class, function () {
return new \Ramsey\Uuid\UuidFactory();
});
}
Add New Methods
Extend the Helper trait or create a decorator:
// app/Traits/CustomHelper.php
trait CustomHelper {
public function pluralize($string) {
return Helper::endsWith($string, 'y') ? rtrim($string, 'y') . 'ies' : $string . 's';
}
}
Override Config If the package supports config, publish and extend it:
php artisan vendor:publish --provider="Braunstetter\Helper\HelperServiceProvider"
Then modify config/helper.php (if exists).
How can I help you explore Laravel packages today?