Installation Add the bundle via Composer:
composer require c33s/utils-bundle
Enable it in config/bundles.php (Symfony):
return [
// ...
C33s\UtilsBundle\C33sUtilsBundle::class => ['all' => true],
];
First Use Case: String Manipulation
Use the StringHelper for common string operations:
use C33s\UtilsBundle\Helper\StringHelper;
$cleaned = StringHelper::slugify('Hello World!'); // 'hello-world'
$truncated = StringHelper::truncate('Long text...', 10); // 'Long text...'
Where to Look First
src/Helper/ for available helpers.tests/ for usage examples.Resources/config/services.yaml for service bindings.Dependency Injection Autowire helpers in controllers/services:
use C33s\UtilsBundle\Helper\ArrayHelper;
public function __construct(private ArrayHelper $arrayHelper) {}
public function process(Request $request) {
$flattened = $this->arrayHelper->flatten($request->request->all());
}
Common Use Cases
ArrayHelper::merge(), ArrayHelper::diff().DateHelper::formatDiff(), DateHelper::isWeekend().FileHelper::getMimeType(), FileHelper::normalizePath().Integration with Symfony
StringHelper in templates:
{{ 'Hello'|slugify }}
AbstractType with helper methods.Custom Helpers
Extend existing helpers or create new ones in src/Helper/:
namespace App\Helper;
use C33s\UtilsBundle\Helper\BaseHelper;
class AppHelper extends BaseHelper {
public static function customMethod() { ... }
}
Namespace Conflicts
App\Helper\CustomHelper).config/packages/c33s_utils.yaml if needed.Performance
ArrayHelper::pluck() on large datasets) in loops.FileHelper::getMimeType()).Deprecations
UPGRADE.md for breaking changes in minor updates.StringHelper::camelize() may be renamed in v2.0.Enable Debug Mode
Set debug: true in config/packages/c33s_utils.yaml to log helper usage:
c33s_utils:
debug: true
Logging
Use LoggerHelper for structured logs:
$this->loggerHelper->info('Event triggered', ['user_id' => 123]);
Testing Mock helpers in PHPUnit:
$this->mockBuilder->getContainer()
->set('c33s_utils.array_helper', $this->createMock(ArrayHelper::class));
Custom Services
Override default services in config/services.yaml:
services:
C33s\UtilsBundle\Helper\ArrayHelper:
arguments:
$default: ['custom_value']
Event Listeners
Subscribe to bundle events (e.g., c33s_utils.init):
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class MySubscriber implements EventSubscriberInterface {
public static function getSubscribedEvents() {
return [
'c33s_utils.init' => 'onInit',
];
}
}
Configuration
Extend bundle config via config/packages/c33s_utils.yaml:
c33s_utils:
string:
default_locale: 'fr_FR'
How can I help you explore Laravel packages today?