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

Utils Bundle Laravel Package

c33s/utils-bundle

View on GitHub
Deep Wiki
Context7

Getting Started

Minimal Setup

  1. 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],
    ];
    
  2. 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...'
    
  3. Where to Look First

    • Documentation: Check src/Helper/ for available helpers.
    • Tests: Browse tests/ for usage examples.
    • Config: Review Resources/config/services.yaml for service bindings.

Implementation Patterns

Core Workflows

  1. 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());
    }
    
  2. Common Use Cases

    • Arrays: ArrayHelper::merge(), ArrayHelper::diff().
    • Dates: DateHelper::formatDiff(), DateHelper::isWeekend().
    • Files: FileHelper::getMimeType(), FileHelper::normalizePath().
  3. Integration with Symfony

    • Twig Extensions: Use StringHelper in templates:
      {{ 'Hello'|slugify }}
      
    • Form Types: Extend AbstractType with helper methods.
  4. 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() { ... }
    }
    

Gotchas and Tips

Pitfalls

  1. Namespace Conflicts

    • Prefix custom helpers to avoid collisions (e.g., App\Helper\CustomHelper).
    • Override services in config/packages/c33s_utils.yaml if needed.
  2. Performance

    • Avoid heavy operations (e.g., ArrayHelper::pluck() on large datasets) in loops.
    • Cache results of expensive helper calls (e.g., FileHelper::getMimeType()).
  3. Deprecations

    • Check UPGRADE.md for breaking changes in minor updates.
    • Example: StringHelper::camelize() may be renamed in v2.0.

Debugging Tips

  1. Enable Debug Mode Set debug: true in config/packages/c33s_utils.yaml to log helper usage:

    c33s_utils:
        debug: true
    
  2. Logging Use LoggerHelper for structured logs:

    $this->loggerHelper->info('Event triggered', ['user_id' => 123]);
    
  3. Testing Mock helpers in PHPUnit:

    $this->mockBuilder->getContainer()
        ->set('c33s_utils.array_helper', $this->createMock(ArrayHelper::class));
    

Extension Points

  1. Custom Services Override default services in config/services.yaml:

    services:
        C33s\UtilsBundle\Helper\ArrayHelper:
            arguments:
                $default: ['custom_value']
    
  2. 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',
            ];
        }
    }
    
  3. Configuration Extend bundle config via config/packages/c33s_utils.yaml:

    c33s_utils:
        string:
            default_locale: 'fr_FR'
    
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.
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums
rlacerda83/query-parser
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings