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

Company Info Laravel Package

worksome/company-info

Laravel package for looking up company details by VAT number. It offers a unified API across multiple data providers like VIES and Virk, returning consistent DTOs for names, addresses, and registration info so you can easily swap or combine sources.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Scope of this release. v1.5.0 is a single-purpose compatibility release: one PR from @laravel-shift adding Laravel 13.x support, plus a first-time contributor. No new features, no deprecations, no documented breaking changes. For a TPM this reads as a maintenance/hygiene release, and the meaningful signal is not the diff but what it says about the maintainer's release cadence and version-support policy.

Architecture fit. worksome/company-info sits in the "external data acquisition" layer of a Laravel application: it wraps one or more company-registry data sources behind a Laravel service provider, config file, and (typically) a facade/driver abstraction, returning structured company records. That is an inherently peripheral dependency — it should not own domain logic, persistence, or business rules. Fit is good if we treat it as a replaceable adapter and keep our own DTO/VO boundary in front of it. Fit is poor if teams let its response objects leak into domain code or Eloquent models, because then a future swap of registry or package becomes a refactor rather than a config change.

Integration feasibility. Low-friction on the framework side: package discovery, a publishable config file, and credentials for whichever registry backend is used. The real integration work is not Laravel wiring but (a) credential/agreement procurement with the data source, (b) mapping its fields to our canonical company schema, and (c) deciding our caching and rate-limit posture. None of that is delivered by the package.

Technical risk.

  • Third-party data source dependency. The package is a thin client; uptime, rate limits, schema drift, and terms-of-use changes at the registry are our risk, not the vendor's. This is the dominant risk and it is unaffected by v1.5.0.
  • Version-support ambiguity. The release note says "Laravel 13.x Compatibility" but does not state whether Laravel 10/11/12 constraints were widened alongside or dropped. If the PR narrowed illuminate/* constraints, the package may no longer install on our current framework line — that would be a silent breaking change for us even though the changelog shows none.
  • Data protection. Company records from public registries frequently include sole-trader personal data. Caching and logging those payloads needs a documented retention position.
  • Low bus factor / thin test surface. A one-line changelog with no accompanying test or CI-matrix note gives no evidence that the new framework version is actually exercised. Laravel-shift PRs are usually mechanical constraint bumps.
  • Mitigating factor. Shipping framework compatibility promptly is a positive maintenance signal — the project is not abandoned.

Key questions.

  1. Did v1.5.0 widen or replace the illuminate/support / laravel/framework constraint? What is the full supported matrix now?
  2. What PHP version does the new constraint floor require, and does that conflict with any of our runtimes?
  3. Is there a CI matrix that actually runs the suite against Laravel 13, or only a composer.json edit?
  4. Which registry backends/drivers are supported, and is there a documented interface for adding one?
  5. What is the project's release cadence and stated support policy (how long after a Laravel major does it follow)?
  6. Licensing, maintainer count, and open-issue/PR responsiveness.

Integration Approach

Stack fit. Presumes a conventional Laravel app on Composer with package auto-discovery. No queue, broadcast, or frontend implications. It is a synchronous read path unless we deliberately wrap calls in jobs — worth deciding early, because registry latency (often 200ms–2s) will otherwise surface directly in request time.

Migration path. No prior assessment exists, so v1.5.0 is our baseline. Treat adoption as greenfield: pin to ^1.5, evaluate on a spike branch, and do not begin on an older tag — starting on the Laravel-13-compatible line avoids a re-qualification later. If we are currently on Laravel 12 and adopt now, confirm the constraint permits it; if the PR dropped ≤12 support, we defer adoption until our own framework upgrade lands.

Compatibility. Verify three axes before committing: Laravel framework major (10/11/12/13), PHP version floor, and transitive dependency overlap with our existing packages (notably anything also constraining illuminate/* or symfony/*). Run composer why-not worksome/company-info ^1.5 in the target app — this is a five-minute check that resolves most of the risk above.

Sequencing.

  1. Constraint audit in composer.json; confirm the supported matrix.
  2. Spike: install, publish config, hit one real registry lookup in a scratch environment.
  3. Define our internal CompanyInfo interface + DTO so the package is swappable; wire the package behind it.
  4. Add caching (keyed by registry identifier, with explicit TTL and PII-retention decision) and a timeout/retry policy.
  5. Only then expose it to feature teams; document the driver interface for future backend additions.
  6. Schedule a recurring (quarterly) review of upstream releases — the cadence here suggests roughly one compatibility bump per Laravel major plus occasional patches.

Operational Impact

Maintenance. Ongoing cost is modest and mostly external: credential rotation with the registry, monitoring registry API changes, and an annual-ish framework-compatibility bump. Internal code maintenance is near-zero if we keep it behind our own interface. Budget a small recurring allowance rather than a project line item.

Support. Thin upstream team; expect GitHub issues rather than an SLA, and no commercial support implied. That is acceptable for a peripheral adapter but means we should be prepared to fork — a package this small is forkable in days. Record that as the explicit contingency, and confirm the license permits it.

Scaling. Scales with request volume only insofar as the upstream registry allows. Cost driver is rate limits and per-lookup pricing/agreements, not compute. Caching is the primary lever: most company records are stable over weeks, so a 24h–7d cache converts a lookup-heavy workload into a near-static one. Add per-registry concurrency caps and a circuit breaker so a slow registry cannot exhaust PHP-FPM workers.

Failure modes.

  • Registry outage or timeout → user-facing latency or hard failure; needs graceful degradation (queue-and-notify, or "details unavailable" state) rather than a 500.
  • Rate-limit exhaustion under load or after a cache flush → thundering herd; mitigate with cache stampede protection and jittered TTLs.
  • Registry schema/field drift → silent nulls in mapped fields; add a schema-assertion test against a recorded fixture.
  • Constraint regression at upgrade time (the risk this release highlights) → composer resolution failure, caught early by CI on our side.
  • Data-protection exposure via cached sole-trader records → needs a documented retention position, not a default.

Ramp-up. Low for any Laravel-fluent engineer: config + facade, hours not days. The real ramp-up is domain knowledge — which registry, what the identifiers mean, which fields are authoritative, and what to do when a lookup returns partial data. Pair the technical onboarding with a short written data-contract note; otherwise each team re-learns the same field-mapping ambiguities.

Verdict. Adopt v1.5.0 as the baseline, gated on a one-hour constraint audit confirming it installs on our current framework line. The release itself is benign; the decision to make is architectural — consume it strictly behind an internal interface with caching and a circuit breaker, so that the package's maintenance cadence and the registry's availability are both contained.

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.
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource