Download the PHP package evolvex/laravel-shadow-runtime without Composer

On this page you can find all versions of the php package evolvex/laravel-shadow-runtime. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package laravel-shadow-runtime

Evolvex Shadow Runtime

Production dark-deployment and behavioral verification for Laravel business logic.

Run the existing implementation (primary) and a new implementation (candidate) on sampled production traffic. Only the primary result is returned to the application. The candidate is observed under a guarded sandbox and compared against the primary.

Requirements

Laravel 13 itself requires PHP 8.3+.

Install

Basic usage

$provider is always the primary result. Candidate failures, blocked effects, telemetry failures, and comparison differences do not replace the primary value.

Named operations

What the guarded sandbox blocks

The package installs context-aware Laravel hooks. While a candidate is active it can block and record:

Application/domain events can be observed. Framework events are excluded from event traces to reduce noise.

The primary path is observed with an allow policy so its behavior is not changed.

Safety levels

Critical limitation

L1 cannot guarantee containment of arbitrary PHP. Raw PDO connections created outside Laravel, raw curl_*, sockets, custom SDK transports, exec(), direct Redis clients, and direct filesystem access can bypass Laravel hooks.

Do not call L1 a hard security sandbox. For mutating or untrusted candidate code, use infrastructure isolation (L3).

Run:

before enabling a production experiment.

Capture semantics

captureDatabaseWrites(), captureHttp(), and captureJobs() are safe capture policies: the effect is recorded and prevented. Because preventing an effect can change downstream candidate control flow, a candidate may finish with blocked_effect. This is intentional; the package never pretends that blocking a write is equivalent to full state virtualization.

For high-fidelity mutating workflows, refactor business decisions from effects or run the candidate in an isolated environment with realistic simulators/snapshots.

Comparators

Default: BehaviorComparator.

It compares normalized return/exception behavior and observable effect signatures. Other built-ins:

You can implement Evolvex\ShadowRuntime\Contracts\Comparator for domain equivalence.

Normalization

The default normalizer handles scalars, arrays, collections, enums, dates and Eloquent models. For Eloquent it uses getAttributes() and already-loaded relations instead of blindly calling toArray(), avoiding accidental accessor/appended-relation work.

Custom:

Deterministic sampling

Sampling is based on a stable hash of experiment + subject + salt. The same subject receives a stable decision for a fixed percentage/salt.

Failure model

Shadow Runtime is fail-open around telemetry and callbacks. Candidate errors never replace the primary result. If the primary throws, its original exception is rethrown after the shadow comparison attempt.

Nested shadow candidate execution is suppressed by default (runtime.max_depth = 1) to avoid combinatorial execution.

Commands

shadow:gate exits non-zero when thresholds fail, so it can be used in CI/CD promotion gates.

Telemetry

Database exporter tables:

Raw payload persistence is disabled by default. Effects are stored by default. Sensitive keys pass through a configurable redactor.

Available exporters:

A custom exporter may implement Evolvex\ShadowRuntime\Contracts\Exporter and be configured by class name.

Production recommendations

  1. Start at 0.1-1% sampling.
  2. Keep raw payload storage disabled unless necessary.
  3. Use a read-only DB user for candidate infrastructure whenever possible.
  4. Do not shadow an entire mutating payment workflow in-process. Shadow its decision layer or use L3 isolation.
  5. Segment agreement by meaningful business dimensions instead of trusting only a global percentage.
  6. Treat blocked_effect as useful evidence that the candidate crossed a production-effect boundary.
  7. Run shadow:doctor after every infrastructure change.

See docs/ARCHITECTURE.md and docs/SAFETY.md.


All versions of laravel-shadow-runtime with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2|^8.3|^8.4|^8.5
illuminate/cache Version ^11.0|^12.0|^13.0
illuminate/console Version ^11.0|^12.0|^13.0
illuminate/container Version ^11.0|^12.0|^13.0
illuminate/contracts Version ^11.0|^12.0|^13.0
illuminate/database Version ^11.0|^12.0|^13.0
illuminate/events Version ^11.0|^12.0|^13.0
illuminate/http Version ^11.0|^12.0|^13.0
illuminate/log Version ^11.0|^12.0|^13.0
illuminate/mail Version ^11.0|^12.0|^13.0
illuminate/notifications Version ^11.0|^12.0|^13.0
illuminate/queue Version ^11.0|^12.0|^13.0
illuminate/support Version ^11.0|^12.0|^13.0
psr/log Version ^3.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package evolvex/laravel-shadow-runtime contains the following files

Loading the files please wait ...