tourze/symfony-rotate-profile-storage-bundle
A Symfony bundle from the Tourze family that rotates profile storage backends, distributing data across multiple storage profiles and cycling between them. It plugs into Symfony's bundle and dependency injection system, letting you configure rotation behavior declaratively.
composer require tourze/symfony-rotate-profile-storage-bundle:^0.1.1. Treat the version as a pin: this is a 0.1.x package with no BC promise.config/*.php to publish. In a Laravel app you will not get auto-wiring; you'd have to instantiate the underlying services manually or via a small bridge binding in a service provider. In Symfony, confirm auto-registration by checking that the bundle FQCN (Tourze\RotateProfileStorageBundle\RotateProfileStorageBundle, following the vendor's naming convention) is present in config/bundles.php after Flex runs, or register it yourself.composer.json — type (symfony-bundle), extra.symfony.bundle, and the require list. The requires tell you more about the actual feature surface than the README usually does.DependencyInjection/*Extension.php — this is where config keys and service IDs are defined.Attribute/ or Annotation/ directory — the tourze bundles typically auto-tag services via PHP attributes plus a compiler pass, so this is the real "API".Resources/config/services.* — the concrete service IDs and their tags.compare/0.1.0...0.1.1 link with no described changes. Before adopting, run composer diff tourze/symfony-rotate-profile-storage-bundle 0.1.0 0.1.1 (or read the compare view) and treat the changelog as unreviewed until you do.profiles: / storages: map. Start there, get one profile resolving from the container (bin/console debug:container <id>), then add rotation rules.Attribute/ directory exists, the intended pattern is decorating your own storage/profile classes with the attribute and letting the compiler pass tag and collect them. This keeps config out of YAML but makes registration invisible at runtime — see the debugging tip below.0.1.x.CompilerPass that runs after the bundle's and mutates the tagged locator/iterator. This is the supported seam; don't reach into private services.$this->app->singleton(...) and read the config from config/rotate_profile_storage.php, mirroring the Symfony extension's defaults. Keep this adapter tiny — you are now on the hook for the bundle's internals.symfony/flex (or with extra.symfony.bundle missing), the bundle silently doesn't load and your config keys are ignored rather than erroring. Run bin/console debug:container --tags | grep -i rotate to confirm it registered at all.bin/console cache:clear; in dev, also check var/cache/dev isn't serving a stale container. lint:container catches missing arguments early.debug:container --tag=<bundle-tag> for what the pass collected, debug:container <service-id> --show-arguments for what got injected, debug:config <alias> for the resolved config (catches silently-ignored keys from typo'd YAML).flock / Symfony Lock) and make sure rotated directories are writable by the web user, not just the CLI user that ran the console command.How can I help you explore Laravel packages today?