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

Product Decisions This Supports

  • Dependency intake policy — the primary decision. This package is the concrete test case for whether the team's adoption bar is real. A Symfony-only bundle with 48 stars, zero dependents, and an archived repository should fail any written policy that claims to gate on maintenance and support. If a proposal to adopt it would pass, the policy is decorative; if it fails, the policy has teeth and this is the precedent. That is the highest-value output here: one decision that calibrates dozens later.

  • Framework-fit gating on the roadmap. The request is framed as a "Laravel/PHP package." It is a Symfony bundle, with no service provider, no facade, no Eloquent or container integration. The first product decision it supports is a routing decision: reject it for any Laravel workstream and confirm the requirement actually originated in Symfony. When the requester's stated stack and the artifact's stated stack disagree, that mismatch is a discovery finding worth surfacing before any technical evaluation.

  • Boilerplate reduction: native language features vs. third-party codegen. Symbok's stated purpose — generating getters, setters, adders, removers, and constructors from annotations — is largely subsumed by PHP 8.0+ constructor property promotion, readonly, and native attributes. The build-vs-buy decision is really adopt-vs-modernize: adopt a codegen dependency, or spend a bounded refactor on language features that carry zero supply-chain risk. Same outcome, permanently.

  • Build vs. buy for attribute-driven configuration (if the real need is container/route wiring). If the underlying ask is "declare services and routes on the class instead of in YAML," that capability has been absorbed upstream by native Symfony attributes and by Laravel's own #[Route], #[Middleware], and attribute-driven container resolution. Buy is unnecessary when the platform now ships it.

  • Tech-debt triage in an inherited Symfony estate. For a legacy Symfony 4/5 codebase already carrying this bundle, the informed decision is classify-and-schedule, not evaluate-and-extend. It becomes a removal workstream with an owner and a date, sized from actual usage.

  • Roadmap sequencing for a PHP modernization effort. Adoption is an explicit decision to defer the PHP 8.1+ migration. Making that trade-off visible — rather than letting a small convenience dependency quietly extend the life of a legacy stack — is often the most useful thing a PM does with a package like this.

When to Consider This Package

Consider it only under narrow, time-boxed, and low-stakes conditions:

  • Legacy Symfony on PHP 7.x, where constructor promotion and readonly do not exist and there is a large, well-understood, non-critical boilerplate backlog to clear inside a single quarter.
  • Internal, non-critical tooling where a fork is genuinely acceptable and the team is prepared to own patching, security triage, and framework compatibility indefinitely — with a named owner and a line in the budget, not a verbal promise.
  • As a design reference, not a runtime dependency. The annotation/compiler-pass architecture is instructive for a team building its own codegen or evaluating how far metadata-driven configuration should go. Reading it costs an afternoon; installing it costs a fork.
  • Short migration windows where the code will be replaced within one to two quarters regardless.

Look elsewhere — decisively — when any of the following hold:

  • The stack is Laravel. Hard stop. Wrong framework, no integration path, and building an adapter converts a vendor problem into a permanent internal maintenance obligation.
  • The codebase targets PHP 8.1+. Constructor promotion and readonly remove most of the motivation at zero third-party risk.
  • The need is attribute-driven routing, container wiring, or controller configuration. Native Symfony attributes (Symfony 6.2+) and Laravel's own attribute support already cover this; SensioFrameworkExtraBundle, the thing this pattern replaced, is itself deprecated.
  • Symfony annotations are the mechanism. Both Symfony and PHP have moved to native attributes; building new work on an annotations-based bundle (and its doctrine/annotations dependency) bets against the platform's direction.
  • You require maintenance, security patching, or support. Archived means zero commits, zero issue triage, zero CVE response, and no successor. Pinning is the only mitigation, and pinning is a deadline, not a strategy.
  • Static analysis and IDE ergonomics matter. Generated magic accessors and annotation-driven wiring can confuse PHPStan/Psalm and autocomplete unless carefully configured; the debugging cost frequently exceeds the boilerplate saved.
  • Maintained alternatives exist. Symfony MakerBundle for scaffolding, Rector for automated refactors to PHP 8 syntax, native attributes for configuration, or plain hand-written code — all actively stewarded.

Two diligence flags before any decision. First, the documentation contradicts the technical assessments: the package summary describes Lombok-style accessor generation, while the evaluation describes annotation-driven controller and container configuration. An archived package whose own description does not match its behavior is a documentation risk on top of a maintenance risk — verify against src/ and Tests/, never against the README. Second, the numbers should be read as confirming, not driving, the call: an overall score of 0.135 with opportunity at 0.33 describes something technically present but operationally inert. Archived plus zero dependents is the deciding fact; the star count is not.

How to Pitch It (Stakeholders)

To executives — one page. This is a small, MIT-licensed Symfony utility that automatically writes repetitive code — either getter/setter/constructor boilerplate or class-level configuration metadata, depending on which document you read, which is itself telling. It costs nothing to license and almost nothing to install. The relevant fact is that the project is archived: no one maintains it, patches it, or responds to security issues, and it has no downstream users. Recommendation: do not adopt it as a dependency. The cost of adoption looks like zero and is not — it is an unmaintained component in the supply chain with no upgrade path and no one to call. If boilerplate or configuration sprawl is a genuine cost center, we address it with native PHP 8 language features and a one-time, estimable refactor, which is cheaper over any horizon longer than a single quarter and does not accumulate risk. If the bundle is already in the tree, it is tech debt with an owner and a removal date, not a component to build on.

To engineering — the short version. Three findings, in order of decisiveness. One, framework mismatch: this is Symfony-only and irrelevant to a Laravel codebase; do not write an adapter. Two, direction of travel: annotation-driven codegen runs opposite to where both Symfony and PHP are heading — native attributes, constructor promotion, readonly — and Symfony 6.2+ already ships equivalents. Three, archived status: we inherit any fork permanently, against a single already-inactive maintainer and an effectively nonexistent install base. It is worth thirty minutes as a design reference for compiler-pass codegen; it is not worth a composer require. If the team wants relief, propose a Rector-driven migration to PHP 8.1+ syntax plus native attributes — same outcome, no vendor risk, and it retires the constraint instead of working around it.

To the requester — four questions back, because the answers change the recommendation. Is the actual estate Symfony or Laravel? What is the underlying need — boilerplate reduction, or attribute-based controller/container configuration? If Symfony 5.4 or earlier, is the version constraint pinned by PHP, by framework, or by an un-migrated bundle graph, and is that the real roadmap item? And if the bundle is already in the tree, who owns the migration off it and what is the blast radius across classes? Our position is no-go for new adoption; if already present, classify as tech debt with a scheduled removal.

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.
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle
adachsoft/api-version-bundle
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
shitoudev/permissionmanager