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

Fusion Laravel Package

hi-folks/fusion

Fusion is a Laravel package by hi-folks for merging multiple Laravel applications into one. It helps combine routes, views, migrations, and configs so you can build a modular monolith while keeping each application organized.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit: v1.2.1 keeps the same Laravel-native shape: Composer package, Artisan commands (fusion:start, fusion:check, fusion:check-model), configurable content directory, and configuration via env/config. The release strengthens the fit for teams running Fusion as part of a deploy pipeline rather than an ad hoc local tool. Three changes matter architecturally:

  • Caching of parsed Markdown rows using Laravel's configured cache store. This is the right architectural choice because it reuses existing cache infrastructure (file, Redis, database, etc.) instead of adding a second caching layer. It also means Fusion's behavior is now coupled to whatever cache store and eviction policy the application already has.
  • FUSION_CACHE_TTL with a one-hour default. A sane default, but it makes content freshness a time-based property. Content edits may not appear until TTL expiry unless invalidation is explicit.
  • fusion:check deep validation with JSON output and --include-valid. This turns Fusion from a rendering package into something that can be enforced in CI, which is a meaningful maturity step for a TPM: content quality becomes a gateable, scriptable check rather than a manual review step.

The --dir option now spans fusion:start and fusion:check-model, which is consistent but increases the number of places where a path contract must hold.

Integration feasibility: Integration remains straightforward for a Laravel team, and this release improves automation feasibility:

  • JSON output from fusion:check is directly consumable by CI, dashboards, and PR annotations. Concise reports by default keep logs readable; --include-valid is opt-in, which is the right default for large content sets.
  • fusion:check-model now returns a non-zero status when a model is incompatible. This is a behavioral change for existing pipelines: jobs that previously passed despite incompatibility will start failing. Treat it as an intentional quality gate, but announce it.
  • fusion:check-model without --model now lists classes under app/Models, and --dir lets teams scan a custom model directory. This reduces the need for teams with non-standard model layouts to script around the command.
  • Caching requires no new dependency, but it does require validating that the configured cache store is available in every environment, including CI and ephemeral preview environments.

Technical risk: The highest risks have shifted from dependency health to cache correctness and CI behavioral change.

  • Cache invalidation and staleness. The release notes document cache behavior and invalidation, which is good, but the practical question is whether content changes invalidate the correct keys. A one-hour default TTL means stale content is possible by design. Confirm whether invalidation is per-file, per-directory, or global.
  • Multi-tenant cache key collisions. If --dir is used to serve multiple content roots from one application and one cache store, confirm cache keys are namespaced by directory/tenant. This is the single most important thing to verify before any multi-brand or multi-tenant use.
  • Cache store variance. Behavior differs between file, redis, and database stores, especially around eviction and deploy-time flushing. Validate in each environment.
  • CI gate flips. The fusion:check-model exit-status fix can turn previously green pipelines red. This is desirable but should be scheduled and communicated.
  • JSON schema stability. If teams build automation on fusion:check --json, the output shape becomes a de facto contract. Ask whether it is versioned or documented as stable.
  • Deep validation cost. Deep Markdown validation on large content sets may be slow; confirm whether it is opt-in per invocation and whether it can be scoped to changed files.
  • Unchanged platform risk. No Laravel/PHP version constraints changed in this release, so the v1.2.0 questions about Laravel 13 and PHP 8.4–8.5 support still stand.

Key questions:

  • How is cached Markdown invalidated: per content file, per directory, or by TTL only? Is there an Artisan cache-clear command for Fusion content?
  • Are cache keys namespaced per --dir/content root so multi-tenant installs cannot serve one tenant's content to another?
  • What happens on cache store failure — does Fusion fall back to parsing, or does it error?
  • Is FUSION_CACHE_TTL read at runtime or cached in config? Does config:cache need to be rebuilt to change it?
  • Is fusion:check --json output schema documented and considered stable across minor versions?
  • Does deep validation run on all content or can it target changed files for PR checks?
  • Does fusion:check return a non-zero exit code on validation failure, matching the new fusion:check-model behavior?
  • Are --dir paths validated consistently across fusion:start and fusion:check-model (path traversal, absolute vs relative, storage disks)?
  • Does the release change any Laravel/PHP version constraints, or is compatibility identical to v1.2.0?

Integration Approach

Stack fit: Fusion remains a good fit for Laravel applications that want file-based Markdown content without a separate CMS. This release makes it a better fit for teams with mature CI: fusion:check and fusion:check-model can be wired into pull requests, and caching reduces render cost in production. Adopt the Laravel cache store you already operate; avoid introducing a dedicated store just for Fusion unless you need independent eviction.

Migration path: From v1.2.0 to v1.2.1:

  1. Back up content directories and note the current cache store configuration per environment.
  2. Update the package and run config:clear / config:cache as your deployment standard requires.
  3. Run fusion:check and fusion:check-model in a branch without blocking CI, to observe the new exit codes and report formats before they gate merges.
  4. Compare rendered output before and after caching is enabled; confirm highlighted code blocks are unchanged from v1.2.0.
  5. Set FUSION_CACHE_TTL deliberately per environment — short in staging, considered in production.
  6. Validate cache behavior by editing content and confirming when the change appears, and by clearing the cache and confirming recovery.
  7. Only then make the check commands required in CI, with an announcement to engineering.

From v1.1.x, follow the v1.2.0 path first (including the tempest/highlight visual regression) and then apply the v1.2.1 steps above.

Compatibility: Build the matrix around four dimensions now: Laravel version, PHP version, cache store driver, and model directory layout.

  • Confirm Composer constraints are unchanged from v1.2.0; no dependency swap is announced in this release.
  • Test with each cache store used across environments — a file-cache local setup and a Redis production setup can behave differently.
  • Confirm behavior when app/Models does not exist or when models live elsewhere; --dir is the mitigation but should be documented.
  • Verify CI runners have the same cache configuration expectations; ephemeral runners with file cache will effectively be cold every run.

Sequencing:

  1. Dependency and security review (should be trivial — no new dependencies announced).
  2. Read the new README cache documentation and confirm invalidation semantics with the maintainer if ambiguous.
  3. Pilot caching in staging with realistic content volume and a code-block-heavy page set; measure render time and staleness.
  4. Run fusion:check and fusion:check-model in observe-only mode in CI; collect false positives.
  5. Fix any validation findings, then promote the checks to required status.
  6. Update deployment scripts for cache warm/clear steps and FUSION_CACHE_TTL.
  7. Update runbooks and onboarding docs, then roll out to production with a version pin and rollback plan.

Operational Impact

Maintenance: The release adds operational surface area: a cache to configure, a TTL to govern, and two CI commands whose exit codes now matter. Offset that against real gains — caching lowers render cost, and validation automation reduces manual content review. Assign an owner for cache configuration and for the CI gate, and add FUSION_CACHE_TTL and the check commands to the release-watch checklist. The dependency posture from v1.2.0 (no abandoned highlighter) remains a positive.

Support: Update the runbook with four new topics: "content changed but site shows old version" (TTL and invalidation), "cache store unreachable," "CI now fails on fusion:check-model" (expected after the exit-status fix), and "reading fusion:check --json output." Content authors need a clear statement of how long edits take to appear. Support should have a documented one-line cache clear for Fusion content before they escalate.

Scaling: Caching directly improves scaling for code-heavy and large content sets, which was an open question in the prior assessment. Two caveats: deep validation cost grows with content volume, so scope CI checks to changed files where possible; and multi-tenant deployments using --dir must confirm key isolation before scaling out. --include-valid should stay off in automated runs to avoid enormous logs.

Failure modes: Watch for stale content after edits (TTL not elapsed, invalidation not triggered), cross-tenant cache leakage if keys are not namespaced by content root, cache store outages surfacing as render errors rather than graceful fallback, CI jobs failing unexpectedly after the fusion:check-model exit-status fix, JSON consumers breaking if the report shape changes, config:cache holding a stale FUSION_CACHE_TTL, deep validation timing out on large repositories, and continued v1.2.0 risks around --dir path validation and interactive prompts. Mitigate with explicit TTL per environment, documented cache-clear procedure, tenant-scoped key verification, observe-then-enforce CI rollout, pinned versions, and a rehearsed rollback.

Ramp-up: Developer ramp-up stays low. Add roughly half a day for a platform or DevOps engineer to validate cache behavior per environment and wire the check commands into CI, plus a short engineering communication on the fusion:check-model exit-code change. Budget about one developer day for a staging pilot covering caching and validation, and half a day for runbook and onboarding updates.

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