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

Symbok Bundle Laravel Package

mtarld/symbok-bundle

Symfony bundle inspired by Lombok that generates getters, setters, constructors, adders and removers for your PHP classes from simple annotations, cutting boilerplate in entities and DTOs while keeping your code plain, native PHP.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. mtarld/symbok-bundle is a Symfony bundle, and the framing here is "Laravel/PHP" — that mismatch is the first thing a TPM must resolve before any other judgment. The package targets Symfony's kernel and bundle registration, its DI container, and Doctrine's annotation reader. Laravel exposes none of those extension points: no service provider, no bundle, no annotation-metadata pipeline over Eloquent models. So for the stated platform, architectural fit is effectively zero. Its design intent — move container wiring out of services.yaml and into class-level metadata, resolved by a compiler pass at container compile time — is conceptually interesting but is a Spring-style pattern Laravel never adopted because its container already resolves bindings and attributes natively. Where it does fit is a PHP 7.x Symfony 4/5 application with annotation-heavy services; even there it now competes with Symfony's own native PHP attributes and SensioFrameworkExtraBundle's deprecation path.

Integration feasibility. Composer-installable and MIT-licensed, so "reachable" from any PHP project — but reachable is not integrable. A Laravel adoption would require a bespoke bridge translating Symfony bundle conventions into Laravel container and route registration: engineering spend with no upstream support, no ecosystem to lean on, and no reusable prior art. Inside Symfony the install is trivial (register the bundle, enable the annotation reader), but only for the framework and PHP versions it was built against, and those are precisely the versions Symfony is steering teams away from.

Technical risk. The repository is archived, which is a hard stop for new adoption rather than a soft signal. Consequences are concrete: no security patches, no compatibility work for current PHP or Symfony releases, no issue triage, and total dependence on doctrine/annotations, which the ecosystem is actively retiring. 48 stars and 0 dependents mean no production validation and a near-empty troubleshooting corpus — a single-maintainer artifact whose maintainer has already stopped. The underlying capability is also being absorbed upstream: Symfony 6.2+ ships native attributes (#[Route], #[Template], #[Cache], #[IsGranted], #[MapEntity]), and SensioFrameworkExtraBundle — the thing this bundle was a lighter alternative to — is itself deprecated. Net: an abandoned shim for a superseded configuration idiom.

Key questions for the requester.

  1. Is the actual estate Symfony or Laravel? The package taxonomy and your framing disagree, and the answer flips the recommendation entirely.
  2. What is the underlying need — attribute-based container/controller config, or reducing annotation boilerplate in entities and DTOs? Native Symfony attributes and PHP 8 constructor promotion likely satisfy both with zero new dependencies.
  3. If Symfony 5.4 or earlier, what pins you there — PHP version, framework version, or an un-migrated bundle graph? That constraint is the real roadmap item; this package is a symptom of it.
  4. Who owns removal if it is already in the tree, and what is the blast radius across controllers and services?
  5. What is the team's written dependency policy on archived packages with zero dependents? This package is a clean calibration test: a policy that permits it is too loose; one that forbids it is roughly right.

TPM position: no-go for new adoption. If already present, classify as tech debt with a scheduled removal, not a component to build on. It is worth ~30 minutes as a reference implementation for compiler-pass-based codegen; it is not worth a composer require.

Integration Approach

Stack fit. Symfony 4/5 on PHP 7.4–8.0 is the plausible support envelope. Laravel 10/11 is out of scope — do not attempt an adapter layer; it converts a vendor problem into a permanent internal maintenance obligation for a capability the framework already provides natively. If the requirement is genuinely Laravel-adjacent, the answer is Laravel's own attribute-based auto-resolution (#[Route], #[Middleware], #[Scope]), not this bundle.

Migration path (for Symfony estates). Treat the bundle as transitional and map each annotation to its native successor before removal. The mapping is largely 1:1, which is what makes this an estimable, mechanical workstream rather than a research project: service registration annotations → services.yaml attributes or #[Autowire]/#[AsAlias]; controller annotations → #[Route], #[Template], #[Cache], #[IsGranted], #[MapEntity]; entity/DTO accessor annotations → constructor property promotion plus readonly (PHP 8.1+), which removes most of the motivation outright. On the boilerplate-reduction angle specifically, the disciplined substitute is a Rector-driven refactor to PHP 8.1+ syntax — same outcome, active stewardship, no vendor risk.

Compatibility. Expect friction on Symfony 6.2+ (native attributes overlap and may double-register routes or shadow configuration), on doctrine/annotations 2.x, and on any PHP minor newer than the bundle's test matrix. Because the repo is archived, none of this gets fixed upstream. Pinning is the only mitigation, and pinning is a deadline, not a strategy.

Sequencing.

  1. Inventory actual usage — grep for annotation imports and confirm against bin/console debug:container and debug:router output. Do not trust the README; in an archived package the test fixtures are the documentation.
  2. Confirm the target framework version supports native attribute equivalents end-to-end for every annotation actually in use.
  3. Pilot one class behind existing test coverage: convert, cache:clear, debug:container, verify the definition appeared, then stop and report before scaling.
  4. Migrate controller-by-controller / service-by-service, validating route cache warmup and container compilation in a prod-like build — not just in local tests.
  5. Remove the dependency, then delete bundle registration and annotation-reader wiring.
  6. Add a CI guard (composer audit, static check, or a deny-list) preventing reintroduction.

Operational Impact

Maintenance. Archived status transfers all maintenance to the adopting team: fork-and-own, security triage, and PHP/Symfony compatibility patches. That is a standing, recurring cost against a capability that is now commodity framework behavior — the worst possible ratio of ongoing cost to differentiation.

Support. Community-only with no vendor and, in practice, no community: documentation is thin, the install base is effectively nil, and public issue trackers will not help because nobody is triaging them. Expect degraded assistance from tooling and coding assistants here too — models tend to assume SensioFrameworkExtraBundle parity or invent Laravel semantics that do not exist. Verify every behavior against the source, never against generated advice.

Scaling. Runtime impact is negligible — annotation parsing is compile-time and cached, not per-request, so there is no throughput story to worry about. The real scaling constraint is organizational: every engineer onboarded must learn a bespoke, undocumented, unmaintained dialect precisely as the wider ecosystem standardizes on native attributes, and every future framework upgrade inherits an unmaintained blocker that must be forked or removed under time pressure.

Failure modes to plan for.

  • Deploy-time parse failures. Annotation errors surface at cache warmup — a production deploy failure, not a local test failure. Mitigate by exercising cache warmup in a prod-like CI stage.
  • Silent behavioral drift from the patterns engineers expect (argument resolution, security evaluation order, service decoration precedence), producing bugs that look like application logic and consume disproportionate debugging time.
  • PHP or Symfony minor upgrades breaking the reader with no upstream fix path — every upgrade becomes a manual risk assessment.
  • Bus-factor event. The single maintainer is already inactive; there is no successor and no downstream pressure to revive it.
  • IDE and static-analysis erosion. Generated/magic accessors confuse PHPStan, Psalm, and autocomplete unless carefully configured; the debugging tax often exceeds the boilerplate saved.

Ramp-up. Low to learn the annotations — roughly a day for a competent Symfony developer — low-but-misleading for a Laravel developer who will spend that day discovering it cannot be integrated at all, and high to unwind later. Transferable value to a Laravel team is near zero. If the real requirement is declarative, attribute-driven configuration, ramp-up on native Symfony attributes or native PHP 8.1+ syntax is comparable — and those artifacts are supported, documented, and permanent. That comparison is the whole business case, and it does not favor this package.

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.
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console