Weave Code
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

Runtime Laravel Package

jane/runtime

Deprecated package. jane/runtime has moved to the janephp/janephp monorepo. Use https://github.com/janephp/janephp for the current runtime and related components; this repository is no longer maintained.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture Fit

  • Misaligned with Laravel’s Philosophy: JanePHP’s runtime abstractions (e.g., dynamic workflows, YAML-driven execution) conflict with Laravel’s dependency injection (DI), service container, and facade-based architecture. Laravel prefers explicit bindings over Jane’s runtime introspection, leading to potential tight coupling and debugging challenges.
  • Legacy Overhead: The package’s design assumes Symfony 3.x and PHP 7.0, which are incompatible with Laravel’s modern stack (Symfony 6.x, PHP 8.x). Integration would require workarounds (e.g., polyfills, isolation layers), increasing complexity.
  • Niche Use Case: Only viable if the product explicitly requires JanePHP’s runtime features (e.g., dynamic YAML workflows, JSONPointer support) with no modern alternatives. For 90% of Laravel use cases, this is overkill.

Integration Feasibility

  • Low to Nonexistent: Direct integration is not recommended due to:
    • No Laravel Service Provider: Requires manual wiring into Laravel’s container, risking singleton conflicts or lifecycle mismatches.
    • Outdated Symfony Dependencies: symfony/serializer:^3.1 and symfony/yaml:^3.1 are EOL and conflict with Laravel’s Symfony 6.x dependencies.
    • Archived State: No updates since 2016; PHP 8.x compatibility is untested (likely broken).
  • Possible (But Risky) Approaches:
    1. Isolation via Composer Plugin: Load the package in a separate namespace with a custom autoloader to avoid conflicts.
    2. Feature Extraction: Copy-paste specific utilities (e.g., JsonPointer, YamlWorkflow) into a Laravel-compatible package (e.g., vendor/custom/runtime).
    3. Proxy Layer: Create a Laravel facade that wraps Jane’s runtime, but this adds indirection and maintenance debt.

Technical Risk

Risk Factor Severity Impact Mitigation Strategy
PHP 8.x Incompatibility Critical Runtime errors (e.g., E_DEPRECATED, TypeError) Use php:7.4 in Docker or polyfill deprecated features.
Symfony 6.x Conflicts High Composer install failures or class collisions Isolate in a separate vendor directory or use --ignore-platform-reqs.
Security Vulnerabilities High EOL Symfony components may have unpatched CVEs (e.g., RCE in Serializer). Replace with symfony/serializer:^6.0 immediately.
Laravel DI Conflicts Medium Jane’s runtime may override Laravel’s service container bindings. Avoid global runtime hooks; use local context.
Debugging Complexity High Stack traces will mix JanePHP and Laravel code, obscuring issues. Log boundaries between Jane and Laravel components.
Long-Term Maintenance Critical No updates; team will need to fork and maintain the package. Deprecate ASAP; replace with modern alternatives.

Key Questions

  1. Business Justification:
    • What specific JanePHP runtime features are non-negotiable for the product? (e.g., JSONPointer, YAML workflows)
    • Are there Laravel-native alternatives (e.g., spatie/laravel-yaml, php-json-pointer) that could replace this?
  2. Technical Feasibility:
    • Can the team test this on PHP 8.2 and Laravel 10.x without critical failures?
    • What is the blast radius if this package breaks? (e.g., Does it power core auth, payments, or analytics?)
  3. Migration Strategy:
    • What is the minimum viable replacement? (e.g., Rewrite YAML workflows using Laravel’s Illuminate\Pipeline.)
    • How will legacy JanePHP workflows be translated to Laravel’s queues/jobs or console commands?
  4. Risk Acceptance:
    • Is the team willing to maintain a fork of this package long-term?
    • What is the cost of inaction? (e.g., Security patches, PHP version upgrades.)

Integration Approach

Stack Fit

  • Poor Fit for Laravel: JanePHP’s runtime is not designed for Laravel’s ecosystem. Key mismatches:
    • No Laravel Service Providers: JanePHP uses global runtime hooks (e.g., spl_autoload_register), which conflict with Laravel’s container-first approach.
    • Symfony Version Lock: Requires Symfony 3.x, while Laravel uses Symfony 6.x.
    • Event System: JanePHP’s event model is incompatible with Laravel’s Illuminate\Events.
  • Potential Niche Use Cases:
    • Legacy Migration: If transitioning from JanePHP to Laravel, this could be a temporary bridge (high risk).
    • Custom Runtime Logic: If the team needs dynamic YAML/JSON workflows and no modern Laravel package exists, this might be extracted (but rewriting is likely better).

Migration Path

  1. Assessment Phase (1-2 weeks):
    • Audit all dependencies (symfony/serializer, league/uri, php-json-pointer).
    • Identify Laravel-compatible alternatives (e.g., spatie/laravel-yaml, guzzlehttp/psr7).
    • Test PHP 8.2 + Laravel 10.x compatibility (expect failures).
  2. Isolation Strategy (2-4 weeks):
    • Option A (Recommended): Replace with modern packages (e.g., symfony/yaml:^6.0 for YAML parsing).
    • Option B (High Risk): Isolate in a separate micro-service (e.g., Lumen app) to avoid conflicts.
    • Option C (Not Recommended): Fork and modernize (high maintenance burden).
  3. Feature Extraction (3-6 weeks):
    • Extract specific utilities (e.g., JsonPointer, YamlWorkflow) into a new Laravel package.
    • Replace Jane’s runtime context with Laravel’s dependency injection.
  4. Deprecation Plan (Ongoing):
    • Phase out Jane-specific features in favor of Laravel-native solutions.
    • Set a hard deadline (e.g., "Remove by Laravel 11 release").

Compatibility

JanePHP Feature Laravel Alternative Compatibility Notes
YAML Workflow Execution spatie/laravel-yaml + Illuminate\Pipeline Modern, actively maintained.
JSONPointer Support php-json-pointer (v4.x) Works with PHP 8.x; no Laravel-specific wrapper needed.
Dynamic Class Loading Laravel’s App\ServiceProvider + register() Prefer explicit bindings over runtime introspection.
Symfony Serializer symfony/serializer:^6.0 Direct drop-in; no JanePHP-specific logic.
URI Handling guzzlehttp/psr7 or league/uri:^6.0 Modern PSR-7 compliant.
Event System Illuminate\Events Replace Jane’s event model entirely.

Sequencing

  1. Phase 1: Dependency Replacement (High Priority)
    • Replace jane/runtime with individual modern packages (e.g., symfony/yaml:^6.0).
    • Update composer.json to exclude JanePHP and add alternatives.
  2. Phase 2: Feature-by-Feature Migration (Medium Priority)
    • YAML Workflows: Rewrite using spatie/laravel-yaml + Illuminate\Pipeline.
    • JSONPointer: Replace with php-json-pointer (no Laravel wrapper needed).
    • Dynamic Loading: Replace with Laravel’s Service Providers.
  3. Phase 3: Testing & Deprecation (Low Priority)
    • Run integration tests with Laravel’s testing tools (phpunit, Pest).
    • Deprecate Jane-specific code in favor of Laravel-native solutions.
  4. Phase 4: Cleanup (Ongoing)
    • Remove all JanePHP dependencies from composer.json.
    • Update documentation to reflect the new architecture.

Operational Impact

Maintenance

  • High Burden:
    • No updates since 2016; security risks from EOL Symfony components.
    • Dependency conflicts with modern Laravel/Sym
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.
terminal42/code-quality-tools
codifyo/ts-generator-bundle
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky