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

Core Entities Laravel Package

trinity/core-entities

trinity/core-entities is a Laravel/PHP package that provides reusable core entity building blocks for domain modeling. It offers a clean, extensible foundation for consistent entity behavior across applications, helping teams structure shared domain models with less boilerplate.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. trinity/core-entities is published as a Composer package under the vendor namespace trinity, which is not the namespace of the Laravel framework or any established PHP entity/domain library. The description "Trinity Framework" suggests this is either (a) a domain/entity primitive layer extracted from a proprietary application framework, or (b) the kernel of a bespoke framework that happens to be installable via Composer. Neither is the same thing as a Laravel package. There is no evidence of a ServiceProvider, facade, config publishing, or contract bindings that would let it slot into Laravel's container lifecycle. The architecture fit is therefore unverified at best and probably orthogonal — a TPM should treat this as a third-party library that Laravel could autoload, not as a Laravel integration.

Integration feasibility. Low. A 2017 release date places it in the PHP 7.0/7.1 and Laravel 5.3–5.4 window. Any illuminate/* or symfony/* constraints it carries will almost certainly fail Composer resolution against Laravel 9/10/11 and PHP 8.1+. Even under --ignore-platform-reqs, the package's own code is likely to hit PHP 8 hard errors (dynamic property deprecation, removed each(), curly-brace string offsets, create_function). There is no README content of substance, no documented public API, no test suite referenced, and zero dependents — meaning no one has validated it against a real application. Integration would be a from-scratch compatibility project, not an install.

Technical risk: Critical.

  • Abandonment — seven-plus years without a release. No CVE response path, no PHP 8 hardening.
  • Adoption risk — 0 stars, 0 dependents, 0 forks of note. Community signal is effectively zero; there is no external evidence the code works, and no one to ask.
  • Bus factor 1 — single maintainer (modpreneur), likely unreachable.
  • Supply chain — transitive dependencies pinned to 2017 will carry known CVEs; a composer audit will almost certainly fail.
  • License is clean (MIT), so forking is legally unencumbered — that is the one genuinely favourable datum.

Key questions to resolve before any commitment:

  1. Does the package define framework-agnostic domain primitives (value objects, entity base classes, collection semantics) or is it entangled with a vendor-specific runtime? Read composer.json and the src/ tree first.
  2. What is the actual public API surface — how many classes, how many are load-bearing? If it is under ~20 classes, the "buy vs. build" maths almost certainly favours build.
  3. Are there illuminate/* requires? If yes, which major version?
  4. Is there any test suite or usage example, even a broken one?
  5. Is the code distinctive enough that re-implementation is expensive, or is it boilerplate entity scaffolding that a mid-level engineer reproduces in days?
  6. Can we reach the maintainer for a fork-and-maintain agreement, or transfer of the Packagist name?

Provisional verdict: do not adopt as a runtime dependency. Evaluate strictly as reference source code.

Integration Approach

Stack fit. Effectively zero for a current Laravel estate. It fits only a hypothetical stack pinned to PHP 7.0–7.1 and Laravel 5.3–5.4. If the organisation has a legacy application frozen on that window, this package might be a candidate — but even then, its zero-adoption status means you would be the first production user, absorbing all discovery cost.

Migration path. Three options, in descending order of preference:

  1. Re-implement (recommended). Budget 1–2 engineering weeks to rebuild the entity/value-object primitives natively against Laravel's conventions (Eloquent casts, custom cast classes, Illuminate\Contracts\Support\Arrayable, validation rules). You get PHP 8.3/8.4 support, static analysis, tests, and ownership. The licence permits copying patterns directly, so there is no legal barrier to lifting the design and discarding the implementation.
  2. Fork and harden. Vendor the repository into a private monorepo package (internal/core-entities), drop the Packagist dependency, upgrade the PHP constraint, add PHPStan/Psalm at level 6+, add PHPUnit coverage, and pin transitive dependencies to current versions. Only worth it if the audit reveals non-trivial, hard-to-reproduce business logic inside — which is unlikely for an "entities" package.
  3. Adopt as-is. Not recommended under any scenario I can construct from the available evidence.

Compatibility. Any bridge to modern Laravel must be an anti-corruption layer: a thin internal interface (EntityContract, ValueObjectContract) that our application code depends on, with the Trinity types confined behind it. That way the third-party surface is swappable and never leaks into controllers, jobs, or Eloquent models. Do not let vendor types appear in public method signatures.

Sequencing (if the fork path is chosen):

  1. Audit — clone, run composer outdated, composer audit, php -l across src/, attempt install under PHP 8.3 with --ignore-platform-reqs and catalogue every fatal.
  2. Scope — enumerate classes actually needed. Cull the rest. Most of the package is probably dead weight.
  3. Isolate — vendor into a private repo, strip unused code, add "php": ">=8.2", add CI (PHPUnit, PHPStan, composer audit).
  4. Wrap — define internal contracts; implement adapters over the forked code.
  5. Migrate — move consumers onto the internal contract, then the fork becomes an implementation detail you can replace later.
  6. Archive — keep a read-only mirror of upstream with a provenance note (MIT requires licence retention, which is trivial here).

Do not sequence this ahead of higher-value work without an explicit opportunity-cost conversation; there is no deadline pressure that justifies shortcutting the audit.

Operational Impact

Maintenance. Total cost transfer. Upstream is dormant; every bug, security advisory, and PHP-version break becomes ours. Realistically that is 2–4 engineer-days per year of background maintenance for a small fork, plus unbudgeted spikes whenever PHP or Laravel ships a major. The MIT licence means we can maintain it indefinitely without permission — but also that nobody else will.

Support. None. No issue triage, no security contact, no changelog, no upgrade guide. Any incident begins with "read the source", which is the most expensive possible first step during an outage. For a package that sits in the domain layer of the application, that is a poor place to have no escalation path.

Scaling. Entirely unknown and unbenchmarked. "Entities" packages are usually CPU-cheap and allocation-heavy rather than throughput-bound, so raw scaling is probably not the concern — but the absence of any performance evidence means we would be the ones discovering pathological cases (e.g. deep hydration, unguarded reflection in constructors) under production load.

Failure modes to plan for:

  • Composer resolution failure — the most likely first failure; blocks CI for the whole application, not just the feature. Mitigation: never depend on Packagist for this; vendor it.
  • PHP 8 runtime fatals — deprecations promoted to errors, removed functions. Mitigation: static analysis gate in CI.
  • Transitive CVE exposure — inherited from pinned 2017 dependencies even if Trinity's own code is clean. Mitigation: audit and repin, or drop the dependency tree entirely.
  • Silent behavioural drift — no tests upstream means no way to distinguish "worked by design" from "worked by accident". Mitigation: characterisation tests written before any upgrade.
  • Knowledge concentration — the one engineer who did the fork becomes the only person who understands it. Mitigation: documentation as a deliverable, not an afterthought.
  • Over-abstraction debt — an anti-corruption layer for a package this small can cost more than it saves. Reassess at the audit: if the API surface is trivial, delete the layer along with the dependency.

Ramp-up. High relative to package size. Onboarding requires reading source rather than docs, and there is no community corpus (no Stack Overflow answers, no tutorial articles, no blog posts) to fall back on. Estimate 2–3 days for a senior engineer to reach productive confidence on the fork; that cost recurs for every new team member who touches it, which is the real argument against adoption for a package that saves maybe a week once.

Bottom line for the roadmap: treat trinity/core-entities as reference material, not a dependency. The dominant signal is not the zero stars — it is the combination of a 2017 release date, zero dependents, and a Laravel ecosystem that has since moved four major versions. Re-implement behind internal contracts, retain the MIT licence notice if any code is copied, and do not let this appear on a dependency manifest.

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.
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route