ruwork/ruwork-bundle
RuworkBundle is a Symfony bundle that consolidates Ruwork's reusable PHP components and integrations into a single package, offering ready-to-use services, configuration, and utilities that help streamline common application development tasks.
Before writing any code, note that the picture has shifted slightly since the last assessment. 0.2.0 is the first release since July 2018, and the changelog is two lines: "Refactoring" and "Redesigned @Redirect". That is not enough to declare the package maintained — one tag after a multi-year gap is not a maintenance cadence — but it does mean the "frozen artifact" assumption no longer holds exactly, and it means the thing you install today is not byte-identical to the thing everyone blogged about in 2018.
composer.json constraints moved. The release notes say nothing about Symfony or PHP support, so read require yourself — do not assume 0.2.0 means "modernised." If the constraints are still Symfony 3.4/4.0-era, the compatibility friction described previously still applies.git diff <last-0.1-tag>..0.2.0 -- DependencyInjection Resources and look specifically for renamed service IDs, changed tag names, and altered config keys. If you have a composer.lock pinning a 0.1 release, treat the upgrade as a breaking change until you have proven otherwise.DependencyInjection/RuworkExtension.php plus Resources/config/*.xml|yaml, and after a refactor those files may have been reorganised or the configuration tree renamed. This remains the real documentation.AppKernel::registerBundles(). In Symfony 4+: add Ruwork\RuworkBundle\RuworkBundle::class => ['all' => true] to config/bundles.php.0.2.0 changed behaviour, use composer require ruwork/ruwork-bundle:0.2.0 (or ^0.2 with a committed lockfile) rather than an open range. ^0.1 will not pull 0.2.0 under Composer's 0.x semantics, which is good — an accidental upgrade should be impossible.@Redirect annotation. Find its class in the repo (grep -r "class Redirect" src/), read the annotation's constructor and properties, then use it on a controller action and confirm the redirect actually fires. Annotation-driven behaviour fails quietly — a renamed property or a missing use statement produces a controller that returns 200 instead of redirecting, with nothing in the logs.Day-to-day usage remains configuration plus consuming tagged services, but the annotation layer is now the part most likely to be in your code.
@Redirect may differ from the 0.1 shape. Inspect the class properties rather than copying an old snippet from a blog post — most public examples predate this release and will be wrong. Add a functional test that asserts the response status and Location header, not just that the annotation parses.ruwork: root key in config/packages/ruwork.yaml (or app/config/config.yml on Symfony 3). Mirror the defaults from the Extension class — after a refactor, do not assume your existing keys survived. Configuration.php's TreeBuilder is authoritative.services.yaml with decorates: ruwork.some_service rather than editing vendor code. This is even more important now: if a 0.3.0 refactor lands in another six years, your decorations are the only thing you have to re-verify.grep -r "findTaggedServiceIds" src/.@Redirect is doing real work in your controllers, consider a small RedirectResolver service of your own that wraps the bundle's logic. The annotation syntax just changed once with no migration guide; assume it can change again.debug:container diff. Commit the lockfile.composer.json for the real list. You often only need the redirect piece, and the umbrella adds coupling for no benefit.0.1 → 0.2 is a minor-version bump only by convention; in the 0.x range the author is explicitly allowed to break you. There is no migration guide in the release notes. Budget a half-day for a diff review, not an afternoon composer update.@Redirect, a dropped namespace, or a no-longer-imported annotation class usually degrades to "nothing happens" rather than an exception. If the redirect stops working after the upgrade, check the annotation use statement and the target class's property names first — before you suspect routing or middleware.debug:container, debug:router, Xdebug, and reading source remain your primary tools.ContainerAwareInterface, getParameter() from the container, autoconfigure defaults that changed in 4.4/5.0. Symptoms: services not autowired, ServiceNotFoundException, "cannot autowire argument" at cache warmup. Fix by defining arguments explicitly rather than relying on autowiring.ruwork.some_service may have been renamed or split. Anything you reference in decorates:, in a compiler pass, or in $container->get() is now a guess — re-derive the IDs from bin/console debug:container --tag=<tag>.SYMFONY_DEPRECATIONS_HELPER so your signal stays clean.false and silently no-op if a required key is absent. If nothing happens after enabling, dump the resolved config (config:dump-reference ruwork if supported, otherwise read Configuration.php) and confirm your keys are actually being read — and that they still exist post-refactor.framework.test: true and assert both wiring and behaviour: self::getContainer()->get('ruwork.some_service') plus a request-level test that hits an annotated controller and asserts the redirect. That way a future release or a Symfony bump fails in CI rather than in production.services.yaml and drop the dependency. A redesign shipped years after the fact does not fix the underlying risk: no maintainers, no dependents, no security process.How can I help you explore Laravel packages today?