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

Generated Hydrator Laravel Package

ocramius/generated-hydrator

Generates fast, specialized hydrator classes for PHP objects, letting you populate and extract properties quickly without reflection overhead. A good fit for ORMs, serializers, and data mappers.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for the mapping layer. GeneratedHydrator answers a narrow question: should we hand-roll object hydration (reflection or generated code) or adopt a library? It is a small, MIT-licensed, single-purpose component — the "buy" side of that decision is cheap, the "own" side is not.
  • Performance investment on hot paths. It generates a dedicated hydrator class per target type, writes it to disk, and lets OPcache compile it, removing per-request reflection overhead. This turns "is hydration actually our bottleneck?" into a measurable spike rather than a speculative rewrite.
  • Serialization / DTO mapping architecture. Relevant when deciding between a serializer-based mapping layer (Symfony Serializer, laminas-hydrator, Doctrine's ObjectHydrator) and a compiled-hydrator approach for high-volume transformations.
  • Legacy modernization sequencing. In older PHP/Doctrine/Zend-era codebases this is often already transitively present; knowing its status informs whether a PHP-version upgrade is blocked and whether to pin, fork, or replace before other roadmap work.
  • Vendor-risk triage. With an archived repository and effectively no tracked dependents, adoption becomes a deliberate "we will own this" decision — a fork-and-maintain line item, not a routine composer require.
  • Concrete use cases worth evaluating: bulk import/ETL jobs mapping rows into thousands of DTOs, API response assembly over large collections, ORM entity rehydration in read-heavy services, and test fixtures/factories where hydration volume is high.

When to Consider This Package

Adopt only when all of the following hold:

  • You have a measured hydration hot path — profiling shows reflection-based hydration or array-to-object mapping is a material share of request/job time. This library is an optimization, not an architecture.
  • You can own the code: fork it, vendor it, or accept a pinned version with no upstream security response. Archived means no patches, no PHP-version guarantees, no CVE triage.
  • Your runtime supports the model: writable generated-code cache directory, OPcache enabled, and a warm-cache deployment story (generated classes must persist across requests to pay off).
  • Your PHP version is verified against the last release (2024-01-09) — validate on your target runtime, including current 8.x point releases.
  • The alternative (a maintained serializer/hydrator, or a thin hand-written mapper) has been benchmarked and lost.

Look elsewhere when:

  • You are greenfield or need a supported dependency with a security response process — prefer Symfony Serializer, Doctrine ObjectHydrator, or laminas-hydrator.
  • Hydration is not a measured bottleneck; the complexity of generated code, cache directories, and debugging stack traces through generated classes is not worth an unquantified gain.
  • You run on ephemeral/read-only filesystems or serverless cold starts where generated-class caching degrades into regeneration cost.
  • You need attribute-driven, configurable mapping (naming strategies, nested/recursive mapping, type coercion) — this is a low-level primitive, not a mapping framework.
  • Your organization requires a maintained upstream or an SBOM with active release cadence.

How to Pitch It (Stakeholders)

To executives: A small, focused, MIT-licensed PHP performance component that can reduce the cost of converting raw data into objects on high-traffic paths. It is not a platform bet. The material fact is governance: the project is archived, so adopting it means owning it — budget a fork and a maintenance owner, or treat it as a short-term optimization with a planned exit. Recommendation: fund a two-day spike with a benchmark gate; adopt only if it shows a real, measured win and we accept the fork obligation. Otherwise, standardize on a maintained serializer.

To engineering: GeneratedHydrator emits one hydrator class per target type, generated from reflection once and cached to disk so OPcache compiles it — trading reflection cost at runtime for code generation at warm-up. Integration is small and isolated behind a hydration interface, so it is reversible. Two conditions for adoption: (1) prove the win with a benchmark on our actual payloads and PHP version, and (2) agree on the fork/pin policy up front, including who reviews PHP-version compatibility. Keep it behind an interface so a switch to Symfony Serializer or a hand-written mapper is a one-class change, not a refactor.

Risk summary: 724 stars, no tracked dependents, archived, last release January 2024 — low ecosystem momentum (low opportunity score). Cheap to try, permanent to depend on.

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.
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
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
cgv/localized-resource