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

Database Laravel Package

graham-campbell/database

A Laravel database package from Graham Campbell that provides a streamlined, configurable database layer with multiple connections and seamless integration with Laravel's query builder and Eloquent for simple, consistent data access.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy on data-access plumbing. This package is prior art for the repository pattern over Eloquent. It gives product a concrete, readable reference for the question: do we standardize a thin repository layer, or keep letting controllers query models directly? The answer changes how fast we can swap persistence, add read caching, and write unit tests — all roadmap-shaping concerns.
  • Read-caching convention for data-heavy features. The advertised cache-aware query helpers are the one genuinely product-visible capability: they set a precedent for where cache invalidation lives and who owns stale-read risk. Use it to force a decision on caching policy before the next performance-sensitive epic, not during it.
  • Testability targets and coverage commitments. A repository seam is what makes data access mockable. If we commit to a repository layer, we can credibly commit to coverage thresholds on data-heavy features; without it, integration tests are the only option and cycle time grows. This is a scheduling input, not just an engineering preference.
  • Onboarding and code-organization standards. Thin controllers, query logic in one place, per-aggregate repositories — useful as an internal style decision that reduces ramp-up time across squads and contractors.
  • Maturity policy as a product guardrail. A deprecated org, a single v0.1.4-alpha tag, an EOL framework target, and zero dependents is a clean worked example for a minimum-supported-version policy and a "no alpha dependencies in customer-facing paths" rule. Worth citing when someone proposes an unmaintained library to hit a date.
  • Roadmap hygiene / modernization backlog. Any live dependency resembling this is a remediation line item. The GrahamDeprecated namespace is effectively a maintenance transfer to whoever adopts it — that is unbudgeted, permanent ownership.

What it does not support: shipping. It cannot be adopted, so it informs architecture decisions and policy, not feature delivery.

When to Consider This Package

Consider it only as a pattern reference or teaching artifact:

  • You are designing a repository layer for a Laravel app and want a minimal, readable example of the abstraction (find / create / update / delete / paginate / cache-aware reads) to react to in a design review.
  • You need an internal design note arguing for or against standardizing repositories, and want a real codebase to point at.
  • You are auditing legacy packages for migration or modernization context — e.g. confirming what a pre-upgrade dependency actually did.

Look elsewhere — or build in-house — when:

  • You are on Laravel 8+/10+/11+. This targets Laravel 4.2 (EOL 2015) and PHP 5.x. Composer will reject it at solve time; it cannot be installed without a fork and rewrite.
  • You need maintenance, security patches, or a support contract. The repo lives under a GrahamDeprecated org, the sole release is v0.1.4-alpha, and there are zero dependents — no ecosystem signal, no peer knowledge base, no Stack Overflow corpus.
  • You need a stable API. Alpha-only tagging with no documented backwards-compatibility policy is disqualifying for anything customer-facing.
  • You need the described feature set verified. The changelog for the single release mentions only CS fixes, a license move to MIT, and removal of CS fixers — no feature work. The richer description (full repository layer, cache-aware queries, DI integration) is unverified relative to the package metadata's vague "extra database stuff." Read the source before quoting the description in any decision doc.
  • Blast radius matters. This sits directly on the persistence path: defects surface as data corruption or silent query divergence, not cosmetic bugs.

Modern equivalents when the requirement is real: Eloquent scopes and query objects natively, or spatie/laravel-query-builder for API filtering. The repository pattern itself is roughly 200 lines of conventional code — usually cheaper to write in-house, tested, against the current framework version.

How to Pitch It (Stakeholders)

To executives. Recommendation: do not adopt. This is a small, deprecated alpha library pinned to a Laravel version we no longer run, with no downstream users and no maintainer. The idea behind it is sound — encapsulate database access so features are easier to test and change — but the artifact is dead. The product value is conceptual: it gives us a cheap, concrete reference for deciding whether to standardize how our code talks to the database, and it hands us a defensible rule ("no unmaintained alpha dependencies in customer-facing paths") the next time a deadline pushes us toward one. Cost of acting on the good part: a small internal spike. Cost of adopting the package: permanent ownership of unmaintained code on our persistence layer, plus inherited unpatched framework vulnerabilities.

To engineering. Treat it as prior art, not a dependency. It demonstrates a lightweight repository base class over Eloquent — CRUD helpers, pagination, cache-aware reads, wired through Laravel's container — and that shape is worth copying. The implementation is not: Laravel 4.2-era container bindings and autoloading, alpha-tagged, single release, no evidence of tests or CI, and zero dependents to learn from. Also flag the metadata/description mismatch — the changelog shows no feature work, so do not cite the advertised capabilities as delivered functionality. If we want this capability, we build a thin, tested repository layer in-house against our current Laravel version, with our own caching and pagination conventions, isolated behind an internal interface so it can be swapped without touching call sites.

Decision ask. Approve a timeboxed spike (a few days) to define repository and caching conventions for our stack — or explicitly decide against them and document why. Reject adoption of this package on maintenance, compatibility, and maturity grounds. If any part of the estate still runs Laravel 4.2, treat that as the remediation item, not this library.

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
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core