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

Laravel Totem Laravel Package

studio/laravel-totem

Laravel Totem provides a Horizon-style dashboard to manage Laravel Scheduler jobs. Create, enable/disable, and edit scheduled Artisan commands without changing code. Includes migrations/assets, auth customization, and supports Laravel 11/12 on PHP 8.2+.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture Fit

  • Pros:

    • Laravel 13+ Compatibility: Officially supports Laravel 13, aligning with the latest LTS release and PHP 8.2+ (dropping legacy support for L10/11). Future-proofs the stack.
    • Modernized Dependency Matrix: Updated CI/CD and testing infrastructure (e.g., PHPUnit 10+, Pest 7+) reduces compatibility friction.
    • Unchanged Core Design: Retains dashboard-first, event-driven, and modular architecture from prior versions. No breaking changes to the Schedule facade integration.
    • Backward-Compatible API: Public APIs (e.g., Totem\Job, Totem\Events\JobExecuted) remain stable; internal refactoring is isolated.
  • Cons:

    • Legacy System Lock-In: Dropped support for Laravel 10/11 may force migration for teams still on older versions (though this is expected for a v13 release).
    • No Distributed Task Enhancements: Still lacks native support for multi-server or Kubernetes environments (unchanged from v12).
    • UI/UX Stagnation: No new dashboard features in v13; customization remains limited to Blade hooks or asset overrides.

Integration Feasibility

  • Low Risk for New Projects:

    • Laravel 13’s improved dependency injection and service container may simplify Totem’s integration (e.g., better autowiring for event listeners).
    • PHP 8.2’s read-only properties and new attributes could enable cleaner Totem internals without affecting user code.
  • High Risk for Legacy Systems:

    • Forced Migration: Teams on Laravel 10/11 must upgrade to use v13.0.0 (assess effort via Laravel’s upgrade guide).
    • Cron Syntax Validation: Laravel 13’s scheduler may introduce subtle changes to cron expression parsing (test with php artisan schedule:test).
    • Database Schema: No schema changes in v13, but ensure your DB driver (e.g., pgsql, mysql) supports Laravel 13’s query builder.

Technical Risk

Risk Area Mitigation Strategy Update for v13.0.0
Cron Misconfiguration Validate schedules with php artisan schedule:test. Test with Laravel 13’s scheduler (e.g., new shouldRun() method in Kernel.php).
Performance Overhead Disable unused features in config/totem.php. Monitor PHP 8.2’s JIT compiler impact on Totem’s dashboard (enable OPcache).
UI/UX Gaps Extend via Blade components or JavaScript hooks. No changes; rely on community plugins (e.g., laravel-totem-nova).
Multi-Environment Sync Use config('totem.enabled') to toggle features. Leverage Laravel 13’s new app:env helper for environment-specific configs.
Dependency Conflicts Publish configs with php artisan vendor:publish --tag=totem-config. Check for conflicts with Laravel 13’s new Illuminate\Pipeline or Spatie\Laravel packages.

Key Questions

  1. Laravel 13 Upgrade Readiness:
    • Have you migrated to Laravel 13? If not, what’s your upgrade timeline? (See upgrade guide.)
    • Are you using Laravel’s new app:env or app:locale helpers that might interact with Totem’s config?
  2. PHP 8.2 Features:
    • Could Totem leverage PHP 8.2’s read-only properties or attributes for internal optimizations (e.g., in Totem\Job model)?
  3. Testing Strategy:
    • Have you tested Totem’s event system (e.g., JobExecuted) with Laravel 13’s improved event dispatching?
  4. Legacy Fallback:
    • If stuck on Laravel 12, would you use a fork of v12.x or downgrade to v12.0.2?
  5. New Features:
    • Does Laravel 13’s app:providers or app:commands changes affect Totem’s service registration?

Integration Approach

Stack Fit

  • Best For:
    • Laravel 13+ Applications: Native support ensures compatibility with new features like:
      • Improved dependency injection (e.g., bindInContainer).
      • Laravel’s new Spatie\Laravel integration patterns.
    • PHP 8.2+ Environments: Leverages JIT compilation and performance optimizations.
    • Teams Adopting Laravel 13: Aligns with the ecosystem’s shift to the latest LTS release.
  • Poor Fit:
    • Laravel 10/11 Projects: Requires upgrade to use v13.0.0 (assess cost vs. Totem’s value).
    • Non-Laravel PHP: No support for standalone PHP or other frameworks.
    • Distributed Systems: Still lacks native multi-server orchestration (e.g., Kubernetes CronJobs).

Migration Path

  1. Pre-Migration (Laravel 13 Upgrade):
    • Follow Laravel’s upgrade guide to migrate from v12 to v13.
    • Key steps:
      • Update composer.json dependencies.
      • Run composer update.
      • Test php artisan schedule:test and php artisan totem:import.
    • Critical: Verify Totem’s event listeners (e.g., JobExecuted) work with Laravel 13’s event system.
  2. Totem Installation:
    • Composer: composer require always-open/laravel-totem:^13.0.
    • Publish assets/config:
      php artisan vendor:publish --tag=totem-config
      php artisan vendor:publish --tag=totem-assets
      php artisan migrate
      
  3. Post-Migration:
    • Sync existing jobs:
      php artisan totem:import
      
    • Update cron entry (if using external cron):
      * * * * * cd /path-to-project && php artisan schedule:run >> /dev/null 2>&1
      
    • Test dashboard functionality (e.g., job creation, logging).

Compatibility

  • Laravel 13 Ecosystem:
    • Improved: Works with Laravel 13’s new Illuminate\Pipeline and Spatie\Laravel integrations.
    • Events: Compatible with Laravel 13’s event system (e.g., Illuminate\Events\Dispatcher).
    • Testing: Supports Pest 7+ and PHPUnit 10+ (aligns with Laravel 13’s testing stack).
  • Third-Party Packages:
    • Horizon: No native integration; may need to disable Totem’s logging if using Horizon’s job monitoring.
    • Nova: Still requires custom extensions (e.g., laravel-totem-nova).
    • Cron Parsers: Avoid conflicts with spatie/cron-expression (Totem uses Laravel’s built-in parser).
  • Database:
    • Supports Laravel 13’s database drivers (MySQL 8.0+, PostgreSQL 13+, SQLite 3.35+).
    • No schema changes in v13; existing migrations apply.

Sequencing

  1. Phase 1: Laravel 13 Upgrade (2–4 sprints):
    • Migrate core Laravel codebase to v13.
    • Test Totem’s integration early (e.g., JobExecuted events, dashboard routes).
  2. Phase 2: Totem v13 Integration (1 sprint):
    • Install Totem, publish assets/config, and run migrations.
    • Validate totem:import and dashboard functionality.
  3. Phase 3: Optimization (Ongoing):
    • Enable PHP 8.2’s JIT compiler for Totem’s dashboard.
    • Optimize database queries for large job lists (e.g., add indexes to totem_jobs).

Operational Impact

Maintenance

  • Pros:
    • Laravel 13 Alignment: Reduced risk of compatibility issues with future Laravel updates.
    • PHP 8.2 Optimizations: Potential performance gains from JIT compilation (test with OPcache).
    • Simplified Dependencies: Dropped legacy support reduces maintenance burden for Totem’s core team.
  • Cons:
    • Upgrade Path Complexity: Migrating from Laravel 12 to 13 may introduce bugs (e.g., in Totem’s event listeners).
    • Dashboard Asset Management: Custom
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.
jayeshmepani/jpl-moshier-ephemeris-php
elnasnato/laraliveui
labrodev/rest-sdk
sampaui/sampaui
babelqueue/php-sdk
facebook/capi-param-builder-php
babelqueue/symfony
hamzi/corewatch
minionfactory/raw-hydrator
hexters/coinpayment
rjcodes/rjcms
act-training/laravel-permissions-manager
alimarchal/laravel-chart-of-accounts
babenkoivan/elastic-scout-driver
mkwebdesign/filament-watchdog-v5
renatomarinho/laravel-page-speed
zedmagdy/filament-business-hours
renatovdemoura/blade-elements-ui
devgeek/beacon-admin
benjamin-rqt/data-watcher-bundle