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

Plugin Installer Laravel Package

catchadmin/plugin-installer

Installer for CatchAdmin plugins that simplifies fetching, installing, and registering plugin packages in your Laravel admin application. It handles routine setup steps so you can add new modules and features without manual configuration or file copying.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. catchadmin/plugin-installer is a Composer plugin, not a conventional Laravel package. Its purpose is to hook Composer's install/update lifecycle and redirect packages of a CatchAdmin-specific type into the framework's plugins/ tree, likely with publish/migration side effects on install. That makes it non-composable with a generic Laravel application: it presumes the host app already speaks CatchAdmin's module contract — directory layout, manifest format, service-provider registration, and admin UI wiring. Fit is therefore binary. Inside an existing CatchAdmin deployment it is the intended mechanism; in any other Laravel codebase the fit is effectively zero. Adopting it is a framework selection decision, not a dependency selection decision, and should be scoped and approved as such.

Integration feasibility. Mechanically trivial — a composer require, an allow-plugins entry in composer.json (required since Composer 2.2), and the host app must already expose the expected plugin root and bootstrap path. The real gate is governance, not effort: allowing a third-party Composer plugin means granting arbitrary code execution inside the build process. That requires a security review, a pinning policy, and CI allow-listing before it can touch a production pipeline.

Technical risk. High, concentrated in four areas:

  • Supply chain. Composer plugins execute with full filesystem and network access during install/update. A zero-star, zero-dependent package from a single maintainer is not a vetted artifact; a compromised or abandoned release flows straight into the build.
  • Adoption signal. Score 0, 0 stars, 0 dependents, opportunity 35.11. The opportunity score reflects latent value in the problem (plugin/module distribution for Laravel admin frameworks), not in this implementation. There is no community validation, no issue history to mine for failure modes, and no downstream corpus proving it works.
  • Coupling and stability. The plugin is versioned against CatchAdmin core internals. Version constraints are likely loose, and a CatchAdmin minor release can change plugin discovery semantics without a corresponding bump here.
  • Observability. Install-time behavior is invisible to application-level monitoring. Failures surface as broken builds or half-installed plugin trees, not as runtime errors you can alert on.

Key questions for the maintainer / due diligence.

  1. What is the exact Composer package type it intercepts, and what is the install path resolution rule (configurable or hardcoded)?
  2. Which Composer versions and which composer-plugin-api constraint does it declare? Does it handle Composer 2.2+ allow-plugins interaction correctly?
  3. What side effects run on install beyond file placement — migrations, asset publishing, cache clears, service-provider registration? Are they idempotent and reversible on uninstall?
  4. Is there a plugin manifest schema, and is it versioned independently of CatchAdmin core?
  5. What is the release/security policy, and is the package a fork of composer/installers or original code?
  6. Does it support offline/air-gapped installs and deterministic container builds, or does it reach the network?

Integration Approach

Stack fit. Viable only where the target is PHP 8.x + Laravel 9/10/11 + Composer 2.2+ and the application is built on a CatchAdmin base. For any other Laravel product, treat this as out of scope and solve the underlying need with a standard mechanism instead.

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

  1. Replace with a first-party pattern (recommended for non-CatchAdmin apps). Use composer/installers with a custom package type plus Laravel's package auto-discovery, or nwidart/laravel-modules for module scaffolding. This gets you the same "drop a package in, it lands in the right place" behavior from a maintained dependency with real adoption. Cost: a few days of scaffolding work.
  2. Fork and vendor internally. If CatchAdmin compatibility is a hard requirement, fork the plugin into an internal namespace, pin it to a commit, and own it. This converts an unmaintained upstream into a controlled internal asset — the right move if the package is already load-bearing.
  3. Adopt as-is with hard pinning. Only acceptable inside a short-lived proof of concept. Commit an exact version, add the allow-plugins entry to an allow-list, and set a review date before any production exposure.

Compatibility. Verify three things before sequencing: the allow-plugins entry is committed and enforced in CI (not just locally), the composer.lock pins an exact version with no floating constraints, and container builds are reproducible — plugin install side effects should be baked into the image at build time, never executed at container start or in a read-only filesystem.

Sequencing.

  1. Discovery (1 week). Read the plugin source end to end; answer the key questions above; confirm the Composer plugin API surface it touches.
  2. Sandbox proof (1–2 weeks). Stand up a throwaway CatchAdmin app, install two or three plugins, uninstall one, and document every filesystem and database side effect. Test a failed/partial install explicitly.
  3. Security review (parallel). Static review of the plugin and its dependency tree; confirm no network calls and no eval-style dynamic loading; record the outcome.
  4. Decision gate. If the sandbox shows idempotent, reversible installs and the security review passes → fork and pin. If either fails → pursue option 1.
  5. Production adoption. Only after the fork is internal, versioned, and covered by a smoke test in CI that asserts a plugin installs and uninstalls cleanly.

Operational Impact

Maintenance. Assume zero upstream maintenance and plan accordingly. With no stars, no dependents, and a single maintainer, the plugin is effectively an orphan the moment you depend on it. Budget ~10–15% of one engineer's time for the first two quarters to keep the fork alive across CatchAdmin and Composer upgrades, then reassess. Do not let it become an untracked transitive dependency.

Support. There is no support channel with an SLA, minimal English-language documentation, and no issue corpus to search when something breaks. Internal ownership of the fork must be explicit and named, with a documented escalation path. If the team cannot absorb that, the package is not viable regardless of technical merit.

Scaling. The plugin's model — resolve plugins at Composer install time — does not scale well across a fleet. Every service instance must be built with plugins present, so plugin resolution becomes part of the image build contract. At a handful of plugins this is fine; at dozens, or with per-tenant plugin sets, you will need a plugin registry, version locking per environment, and a deterministic build artifact. Install-time side effects also fight horizontal scaling and blue/green deploys, since plugin state lives in the filesystem rather than in versioned config.

Failure modes to design against.

  • Silent no-op. A package with a mismatched type installs to vendor/ instead of the plugin root, and the app starts with the plugin "installed" but unregistered. Add an assertion that expected plugin paths exist post-install.
  • Partial install. Plugin files land but migrations or asset publishing fail, leaving a half-registered state. Needs a transactional or at minimum a health-check step.
  • allow-plugins drift. Local installs succeed, CI fails (or vice versa) because the allow-list lives only in a developer's global Composer config. Commit it and enforce it.
  • Composer lockfile churn. A transitive upgrade changes plugin resolution silently. Pin and diff.
  • Uninstall residue. Removed plugins leave migrations, published assets, and DB rows behind. Document and test the teardown path.
  • Abandonment. Upstream goes dark mid-upgrade cycle; the fork becomes the only path forward. This is a when, not an if.

Ramp-up. The team needs working knowledge of Composer's plugin API and event lifecycle, plus CatchAdmin's plugin manifest and bootstrap conventions — realistically 1–2 weeks for one engineer to reach competence, longer if that engineer is also the fork owner. Factor this into the estimate: the package itself takes an hour to install and considerably longer to operate safely.

Bottom line. The package solves a real problem (deterministic module distribution for a Laravel admin framework) but arrives with no adoption, no maintenance signal, and a build-time code-execution footprint. It is defensible only inside an existing CatchAdmin estate, and only as an internally forked, pinned, CI-tested asset. For any other Laravel product, the correct TPM recommendation is to adopt a maintained equivalent and treat this repository as a reference implementation.

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.
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
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle