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

Doctrine Postgres Types Bundle Laravel Package

garak/doctrine-postgres-types-bundle

Symfony bundle that registers PostgreSQL-specific Doctrine DBAL types, so you can map Postgres arrays, JSONB, and similar column types directly to PHP values in your entities without writing custom type classes.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for Postgres-specific schema features. This bundle is a thin adapter that teaches Doctrine DBAL about native PostgreSQL types (e.g., citext, hstore, ltree, intarray, range types, PostGIS geometry). The decision it informs is whether to spend engineering time hand-writing custom DBAL type classes — typically a 1–3 day task per type plus test coverage — or adopt an existing implementation. For a small number of types the build is trivial; for five or more it becomes a real line item.
  • Feature roadmap for Postgres-first products. If the roadmap includes case-insensitive email uniqueness (citext), hierarchical/tree data such as org charts or category trees (ltree), sparse attribute bags (hstore), or time-window/booking logic (range types), the schema layer must support those column types before the feature can be estimated. This package is a prerequisite gate on those roadmap items, not a feature itself.
  • Schema normalization vs. denormalization trade-offs. Native types let you avoid workarounds — e.g., storing a tree as a parent_id with recursive CTEs, or case-insensitivity as LOWER(email) functional indexes. This affects query complexity, index strategy, and read-path performance, all of which are product-level levers on latency and infra cost.
  • Vendor/stack fit gate (the decisive one). This is a Symfony bundle for Doctrine DBAL, not a Laravel/Eloquent package. If the platform is Laravel with Eloquent, the package is not applicable at all. It only becomes relevant in a Laravel context if Doctrine is already in use via an integration layer — and even then, Symfony bundle registration does not apply, so only the underlying type classes are reusable. Confirm stack before any evaluation effort is spent.
  • Technical-debt and dependency-portfolio accounting. With 3 stars and 0 dependents, adopting this is adopting a maintenance liability. That is a portfolio decision about how many low-traffic third-party dependencies the team is willing to own.

When to Consider This Package

Consider it when all of the following hold:

  • The application is Symfony with Doctrine ORM/DBAL on PostgreSQL, and the schema genuinely needs one or more native PG types that DBAL does not ship out of the box.
  • You are on a Doctrine/DBAL version the bundle supports (verify against your installed versions — this is the most common failure mode for low-activity bundles).
  • The team is comfortable owning a small, forkable dependency: the code surface is narrow, so forking and pinning internally is realistic.
  • LGPL-3.0 has cleared legal review. For PHP this is normally acceptable (dynamic inclusion, no static linking of your application code), but many enterprises have a default-deny policy on copyleft that requires an exception. Get this answered before the spike, not after.

Look elsewhere when:

  • The stack is Laravel/Eloquent. Wrong ecosystem — use Laravel's native casting, ->json() columns, or a Postgres-specific query builder. This is the most likely disqualifier given the framing.
  • You need only one or two types. Write the DBAL type class in-house; it is small, testable, and removes a dependency. Buying here has weak ROI below roughly three types.
  • Maintenance responsiveness matters. Zero dependents and three stars means effectively no community validation and a single-maintainer bus factor. If the roadmap depends on this for years, prefer a maintained alternative or an internal fork with a named owner.
  • You need spatial/geo types specifically. The PostGIS ecosystem has its own dedicated Doctrine integrations with broader adoption; evaluate those first.
  • Doctrine 3 / DBAL 4 migration is imminent. Legacy Doctrine\DBAL\Types\Type subclasses were deprecated in DBAL 3 and removed in DBAL 4. Verify (or budget for) the upgrade path — an unmaintained bundle is a real blocker on a major-version migration.

Recommended next step: a strict timeboxed spike — one engineer, under a day — proving the specific types you need work on your exact Doctrine/DBAL/Symfony versions, plus a parallel legal check on LGPL. Do not schedule it on the roadmap until both clear.

How to Pitch It (Stakeholders)

To executives — one paragraph: This is a small, free, open-source adapter that lets our Symfony application use advanced PostgreSQL column types natively, which unblocks a handful of roadmap features (case-insensitive identity handling, hierarchical data, time-range logic) without custom database plumbing. It is not a strategic dependency: it is narrow, LGPL-licensed, and carries maintenance risk from low adoption (3 stars, 0 dependents), so the recommendation is a timeboxed technical spike and a legal license check before commitment — roughly one engineering day of exposure. If either check fails, the fallback is a small in-house implementation, which is a contained cost rather than a blocker.

To engineering — the honest summary: Symfony bundle, Doctrine DBAL type registrations for PostgreSQL native types. Thin wrapper — the value is avoiding boilerplate, not novel functionality. Three stars and no dependents means treat it as source you are adopting, not a library you are depending on: read the type classes, confirm version compatibility against our Doctrine/DBAL pin, and be prepared to fork and own it internally. If we only need one or two types, just write them ourselves and skip the dependency entirely. First question to answer is whether we're even on Doctrine — on Eloquent this is a non-starter.

Framing note for the PM: this package's low opportunity score (0.38) and near-zero adoption are consistent with "useful glue, negligible strategic value." Do not spend political capital on it; spend one engineer-day and let the spike decide.

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.
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
diephp/sequences
users-au/socialite-provider
twidpay/twid-logger
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib