An opinionated Laravel development assistant for teams who value quality and standards. Streamlines workflows, enforces code quality, and manages multiple projects.

Installs: 47

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/stuntrocket/rover

v1.1.2 2025-11-12 12:53 UTC

README

An opinionated Laravel development assistant for teams who value quality and standards.

Rover is a command-line tool built on Robo that streamlines Laravel development workflows, enforces code quality standards, and manages multiple projects with ease. Perfect for development teams and agencies managing multiple Laravel applications.

Features

  • ๐ŸŽฏ Opinionated Setup - Enforce team standards from day one
  • ๐Ÿš€ Project Scaffolding - Create new Laravel projects with best practices built-in
  • ๐Ÿงน Smart Cache Management - Clear and optimize with single commands
  • ๐Ÿ—„๏ธ Safe Database Operations - Fresh migrations with built-in safety checks
  • ๐Ÿ’พ Database Backup & Restore - Automated backups with rotation, snapshots, and restore
  • ๐Ÿ”’ Data Anonymization - Safely anonymize production data for development
  • ๐Ÿ›ก๏ธ Migration Safety - Conflict detection, verification, and safe rollbacks
  • โœ… Intelligent Testing - Auto-detect Pest or PHPUnit and run tests
  • ๐ŸŽจ Code Quality - Integrated Pint linting and formatting
  • ๐Ÿ“ฆ Multi-Project Management - Manage multiple Laravel projects efficiently
  • ๐Ÿ”„ Batch Operations - Run commands across all projects simultaneously
  • ๐Ÿ“Š Project Insights - Analytics, statistics, and health monitoring
  • ๐Ÿ“ Log Management - Tail, filter, and analyze Laravel logs
  • ๐Ÿ“ฎ Queue Management - Monitor, restart, and manage Laravel queues
  • โฐ Schedule Management - Test, verify, and document scheduled commands
  • โšก Performance Profiling - Profile routes, detect N+1 queries, benchmark performance
  • ๐Ÿ“ฆ Package Development - Scaffold, link, test, and publish Laravel packages
  • ๐Ÿ”Œ Plugin System - Extend Rover with project-specific commands and functionality
  • โš™๏ธ Team Configuration - Share standards via rover.yml
  • ๐Ÿ”ง Environment Management - Smart .env generation and validation
  • ๐Ÿ”— Git Integration - Pre-commit hooks and workflow automation
  • ๐Ÿ“„ Template Generation - CI/CD pipelines, Docker, and boilerplate files

Installation

composer require stuntrocket/rover --dev

Quick Start

# Initialize Rover in your Laravel project
vendor/bin/robo rover:init

# See what Rover can do
vendor/bin/robo rover:about

# Check your project status
vendor/bin/robo rover:status

Available Commands

Setup & Configuration

rover:init

Initialize Rover configuration and optionally install recommended development packages.

vendor/bin/robo rover:init

Creates a rover.yml configuration file and offers to install recommended packages like Pint, Pest, and IDE helpers.

rover:status

Display project status and installed tools.

vendor/bin/robo rover:status

rover:about

Show Rover version and available commands.

vendor/bin/robo rover:about

Project Scaffolding

rover:new

Create a new Laravel project with opinionated defaults and team standards.

vendor/bin/robo rover:new my-project              # Basic setup
vendor/bin/robo rover:new my-project --stack=breeze  # With Laravel Breeze
vendor/bin/robo rover:new my-project --stack=jetstream  # With Jetstream
vendor/bin/robo rover:new my-project --no-pest    # Use PHPUnit instead of Pest
vendor/bin/robo rover:new my-project --no-git     # Skip git initialization

Automatically installs and configures:

  • Laravel Pint for code style
  • Pest for testing
  • IDE helper files
  • Larastan for static analysis
  • Spatie Ray for debugging
  • Custom directory structure (Actions, Services, DTOs, etc.)
  • Configuration files (.editorconfig, pint.json, phpstan.neon)
  • rover.yml for team standards

rover:setup

Set up an existing Laravel project with Rover standards.

vendor/bin/robo rover:setup

Perfect for adding Rover to existing projects. Installs packages, creates directory structure, and sets up configuration files.

Environment Management

rover:env:validate

Validate .env file for required variables and test connections.

vendor/bin/robo rover:env:validate

Checks for:

  • Required environment variables
  • APP_KEY generation
  • Production safety settings
  • Database connection

rover:env:generate

Generate .env file with interactive prompts.

vendor/bin/robo rover:env:generate
vendor/bin/robo rover:env:generate --force  # Overwrite existing

rover:env:compare

Compare .env with .env.example to find missing or extra variables.

vendor/bin/robo rover:env:compare

rover:env:info

Display environment information (hides sensitive data).

vendor/bin/robo rover:env:info

rover:env:check-secrets

Check for accidentally exposed secrets in version control.

vendor/bin/robo rover:env:check-secrets

Git Integration

rover:git:hooks

Install git hooks for automated quality checks.

vendor/bin/robo rover:git:hooks

Installs:

  • pre-commit: Runs Pint code style checks
  • pre-push: Runs test suite
  • commit-msg: Validates commit message format

rover:git:hooks:remove

Remove installed git hooks.

vendor/bin/robo rover:git:hooks:remove

rover:git:status-all

Show git status for all Laravel projects in current directory.

vendor/bin/robo rover:git:status-all

rover:git:gitignore

Generate Laravel .gitignore file.

vendor/bin/robo rover:git:gitignore

Template Generation

rover:template:github-actions

Generate GitHub Actions workflow for CI/CD.

vendor/bin/robo rover:template:github-actions

Creates .github/workflows/laravel.yml with:

  • Code style checks
  • Test execution
  • Static analysis
  • MySQL service container

rover:template:gitlab-ci

Generate GitLab CI configuration.

vendor/bin/robo rover:template:gitlab-ci

rover:template:docker

Generate Docker configuration (Dockerfile, docker-compose.yml, nginx config).

vendor/bin/robo rover:template:docker

rover:template:readme

Generate README template with project documentation structure.

vendor/bin/robo rover:template:readme

rover:template:all

Generate all templates with interactive prompts.

vendor/bin/robo rover:template:all

Database Operations

rover:fresh

Drop all tables, run migrations, and seed the database.

vendor/bin/robo rover:fresh           # With seeding
vendor/bin/robo rover:fresh --no-seed # Without seeding
vendor/bin/robo rover:fresh --force   # Skip confirmation (use carefully!)

โš ๏ธ Safety first: Automatically checks environment and requires confirmation unless --force is used.

rover:db:reset

Rollback and re-run all migrations.

vendor/bin/robo rover:db:reset
vendor/bin/robo rover:db:reset --seed

rover:db:seed

Run database seeders.

vendor/bin/robo rover:db:seed
vendor/bin/robo rover:db:seed --class=UserSeeder

rover:db:status

Show migration status.

vendor/bin/robo rover:db:status

Database Backup & Management

rover:db:backup

Create timestamped database backups with automatic rotation.

vendor/bin/robo rover:db:backup                    # Auto timestamp
vendor/bin/robo rover:db:backup --name=before-deploy  # Custom name
vendor/bin/robo rover:db:backup --no-compress      # Uncompressed

Features:

  • Supports MySQL, PostgreSQL, and SQLite
  • Automatic gzip compression
  • Keeps last 7 backups by default
  • Stored in storage/backups/database/

rover:db:backups

List all available database backups.

vendor/bin/robo rover:db:backups

Shows filename, size, and creation date for each backup.

rover:db:restore

Restore database from a backup.

vendor/bin/robo rover:db:restore           # Interactive selection
vendor/bin/robo rover:db:restore 1         # Restore backup #1
vendor/bin/robo rover:db:restore backup.sql.gz  # Specific file
vendor/bin/robo rover:db:restore --force   # Skip confirmation

โš ๏ธ Warning: This replaces your current database!

rover:db:backup:clean

Delete old backups, keeping the most recent ones.

vendor/bin/robo rover:db:backup:clean              # Keep 7 backups
vendor/bin/robo rover:db:backup:clean --keep=10    # Keep 10 backups

rover:db:snapshot

Quick snapshot for testing (uses "latest" naming).

vendor/bin/robo rover:db:snapshot              # Create snapshot
vendor/bin/robo rover:db:snapshot:restore      # Restore snapshot

Perfect for:

  • Testing destructive operations
  • Quick before/after comparisons
  • Experimenting with data

rover:db:anonymize

Anonymize sensitive user data for safe development/staging use.

vendor/bin/robo rover:db:anonymize

Anonymizes:

โš ๏ธ Production Safety: Automatically blocked in production environments.

rover:db:sync

Sync database from remote environment (requires configuration).

vendor/bin/robo rover:db:sync staging
vendor/bin/robo rover:db:sync production --anonymize

Provides manual instructions for database synchronization.

Migration Safety Tools

rover:migrate:check

Check for migration conflicts (duplicate timestamps, naming issues).

vendor/bin/robo rover:migrate:check

Detects:

  • Duplicate migration timestamps
  • Naming conflicts
  • Potential merge issues

rover:migrate:verify

Comprehensive migration verification before running.

vendor/bin/robo rover:migrate:verify

Checks for:

  • Migration conflicts
  • Risky operations (dropping columns/tables)
  • Safety concerns

rover:migrate:rollback-safe

Safe rollback with preview and confirmation.

vendor/bin/robo rover:migrate:rollback-safe --step=1
vendor/bin/robo rover:migrate:rollback-safe --step=3 --force

Features:

  • Shows migrations to be rolled back
  • Requires confirmation (unless --force)
  • Blocks production rollbacks

rover:migrate:history

View migration history and pending migrations.

vendor/bin/robo rover:migrate:history

rover:make:migration

Create migration with conflict checking.

vendor/bin/robo rover:make:migration create_posts_table --create=posts
vendor/bin/robo rover:make:migration add_status_to_users --table=users

Automatically checks for naming conflicts before creation.

Cache Management

rover:clear

Clear all Laravel caches (config, route, view, cache, compiled).

vendor/bin/robo rover:clear

Clears:

  • Configuration cache
  • Route cache
  • View cache
  • Application cache
  • Compiled classes

rover:optimize

Run all Laravel optimization commands.

vendor/bin/robo rover:optimize

Optimizes:

  • Configuration
  • Routes
  • Views
  • Application

rover:refresh

Clear caches then optimize (useful when switching branches).

vendor/bin/robo rover:refresh

Testing

rover:test

Smart test runner with automatic Pest/PHPUnit detection.

vendor/bin/robo rover:test                      # Run all tests
vendor/bin/robo rover:test --filter=UserTest   # Filter tests
vendor/bin/robo rover:test --group=feature     # Run specific group
vendor/bin/robo rover:test --coverage          # With coverage
vendor/bin/robo rover:test --parallel          # Parallel execution (Pest)

rover:coverage

Generate test coverage report.

vendor/bin/robo rover:coverage

rover:test:file

Run a specific test file.

vendor/bin/robo rover:test:file tests/Feature/UserTest.php

rover:test:list

List all available test files.

vendor/bin/robo rover:test:list

Code Quality

rover:lint

Check code style with Laravel Pint.

vendor/bin/robo rover:lint              # Check and fix
vendor/bin/robo rover:lint --test       # Check only (no fixes)
vendor/bin/robo rover:lint --dirty      # Check uncommitted changes only

rover:fix

Automatically fix code style issues.

vendor/bin/robo rover:fix

rover:check

Run all pre-commit checks (lint, tests, static analysis).

vendor/bin/robo rover:check

Perfect for CI/CD pipelines and pre-commit hooks!

rover:analyze

Run static analysis with PHPStan/Larastan.

vendor/bin/robo rover:analyze

rover:ide-helper

Generate IDE helper files for better autocompletion.

vendor/bin/robo rover:ide-helper

Project Management

rover:list

List all Laravel projects in current directory.

vendor/bin/robo rover:list

Shows project names and Laravel versions.

Workspace Management

rover:health

Run comprehensive health checks across all Laravel projects.

vendor/bin/robo rover:health

Checks for:

  • Missing dependencies
  • Environment configuration
  • Storage permissions
  • Git status
  • Outdated packages

rover:switch

Quick switch between Laravel projects with interactive selection.

vendor/bin/robo rover:switch              # Interactive selection
vendor/bin/robo rover:switch my-project   # Direct switch

rover:workspace:status

Detailed overview of all projects in workspace.

vendor/bin/robo rover:workspace:status

Shows Laravel version, git branch, environment, and dependency status.

rover:workspace:versions

Compare Laravel versions across all projects.

vendor/bin/robo rover:workspace:versions

Batch Operations

rover:run-all

Execute any command across all Laravel projects.

vendor/bin/robo rover:run-all "php artisan migrate"
vendor/bin/robo rover:run-all "git pull" --continue

rover:update-all

Update composer dependencies in all projects.

vendor/bin/robo rover:update-all
vendor/bin/robo rover:update-all --dev        # Dev dependencies only
vendor/bin/robo rover:update-all --continue   # Continue on failures

rover:test-all

Run test suites across all projects.

vendor/bin/robo rover:test-all
vendor/bin/robo rover:test-all --continue  # Continue even if tests fail

rover:git:pull-all

Pull latest changes in all git repositories.

vendor/bin/robo rover:git:pull-all

Automatically skips repositories with uncommitted changes.

rover:clear-all

Clear all caches across all Laravel projects.

vendor/bin/robo rover:clear-all

rover:install-all

Run composer install in all projects.

vendor/bin/robo rover:install-all

Project Insights & Analytics

rover:insights:stats

Generate detailed statistics for a project.

vendor/bin/robo rover:insights:stats              # Current project
vendor/bin/robo rover:insights:stats my-project   # Specific project

Shows:

  • Lines of code
  • File counts (controllers, models, migrations, tests)
  • Dependency counts
  • Git statistics
  • Test ratio

rover:insights:dependencies

Compare dependency versions across all projects.

vendor/bin/robo rover:insights:dependencies

Identifies version inconsistencies for standardization.

rover:insights:security

Security audit across all projects.

vendor/bin/robo rover:insights:security

Runs composer audit to detect known vulnerabilities.

rover:insights:outdated

Check for outdated packages in all projects.

vendor/bin/robo rover:insights:outdated

rover:insights:report

Generate comprehensive workspace report.

vendor/bin/robo rover:insights:report

Provides overview of all projects including Laravel versions, git status, and testing coverage.

Log Management

rover:logs

Tail and filter Laravel logs.

vendor/bin/robo rover:logs                        # Last 50 lines
vendor/bin/robo rover:logs --lines=100            # Last 100 lines
vendor/bin/robo rover:logs --follow               # Follow mode (tail -f)
vendor/bin/robo rover:logs --level=error          # Filter by level
vendor/bin/robo rover:logs --grep="UserController" # Search pattern

Supported log levels: emergency, alert, critical, error, warning, notice, info, debug

rover:logs:clear

Clear Laravel log file.

vendor/bin/robo rover:logs:clear
vendor/bin/robo rover:logs:clear --force

rover:logs:stats

Show log file statistics.

vendor/bin/robo rover:logs:stats

Displays:

  • File size
  • Total lines
  • Errors by level (ERROR, WARNING, etc.)

rover:logs:errors

Find recent errors quickly.

vendor/bin/robo rover:logs:errors                 # Last 10 errors
vendor/bin/robo rover:logs:errors --lines=20      # Last 20 errors

rover:logs:archive

Archive and clear logs.

vendor/bin/robo rover:logs:archive

Archives to storage/logs/archive/ with gzip compression.

Queue Management

rover:queue:monitor

Monitor queue status and workers.

vendor/bin/robo rover:queue:monitor
vendor/bin/robo rover:queue:monitor --queue=emails

Shows:

  • Failed job count
  • Running workers
  • Queue statistics

rover:queue:clear

Clear all failed jobs.

vendor/bin/robo rover:queue:clear
vendor/bin/robo rover:queue:clear --force

rover:queue:retry-all

Retry all failed jobs.

vendor/bin/robo rover:queue:retry-all

rover:queue:failed

List failed jobs.

vendor/bin/robo rover:queue:failed

rover:queue:restart

Gracefully restart queue workers.

vendor/bin/robo rover:queue:restart

Workers finish current jobs then restart.

rover:queue:work

Run queue worker in development.

vendor/bin/robo rover:queue:work
vendor/bin/robo rover:queue:work --queue=emails --tries=5

Schedule Management

rover:schedule:list

List all scheduled commands.

vendor/bin/robo rover:schedule:list

rover:schedule:run

Run scheduled commands manually.

vendor/bin/robo rover:schedule:run

rover:schedule:test

Test scheduled commands immediately.

vendor/bin/robo rover:schedule:test                   # All commands
vendor/bin/robo rover:schedule:test "emails:send"     # Specific command

rover:schedule:work

Run scheduler in foreground (development).

vendor/bin/robo rover:schedule:work

rover:schedule:check

Verify cron setup.

vendor/bin/robo rover:schedule:check

Checks:

  • Scheduled commands configuration
  • Cron job setup
  • Recent schedule runs

rover:schedule:docs

Generate schedule documentation.

vendor/bin/robo rover:schedule:docs

Creates docs/SCHEDULE.md with all scheduled commands.

Performance & Profiling

rover:profile

Profile application performance.

vendor/bin/robo rover:profile                    # Profile homepage
vendor/bin/robo rover:profile /api/users        # Profile specific route

Runs multiple requests and shows:

  • Average response time
  • Min/max response time
  • Performance rating

rover:n+1

Detect N+1 query problems.

vendor/bin/robo rover:n+1
  • Checks for Telescope/Debugbar
  • Scans code for common N+1 patterns
  • Provides optimization suggestions

rover:benchmark

Benchmark database performance.

vendor/bin/robo rover:benchmark

Tests:

  • Simple queries
  • Database connection
  • Overall performance

rover:cache:warm

Warm all application caches for optimal performance.

vendor/bin/robo rover:cache:warm

Caches:

  • Configuration
  • Routes
  • Views
  • Events

rover:metrics

Show application metrics.

vendor/bin/robo rover:metrics

Displays:

  • PHP and Laravel versions
  • Cache sizes
  • Log file size
  • Database size

Package Development

rover:package:init

Create a new Laravel package with complete structure.

vendor/bin/robo rover:package:init vendor/package-name
vendor/bin/robo rover:package:init vendor/package-name --path=packages

Creates:

  • Complete package structure (src, tests, config, migrations, views)
  • composer.json with proper autoloading
  • Service provider
  • README and LICENSE templates
  • PHPUnit/Pest configuration
  • GitHub Actions workflow
  • .gitignore

rover:package:link

Link package for local development (symlink to vendor).

# From Laravel project
vendor/bin/robo rover:package:link ../packages/vendor/package

# Or from package directory
cd packages/vendor/package
vendor/bin/robo rover:package:link

Automatically:

  • Adds path repository to composer.json
  • Creates symlink in vendor/
  • Enables live development

rover:package:unlink

Unlink package and remove from project.

vendor/bin/robo rover:package:unlink vendor/package-name

rover:package:test

Run package tests in isolation.

vendor/bin/robo rover:package:test
vendor/bin/robo rover:package:test ../packages/vendor/package

rover:package:publish

Verify package is ready for publishing.

vendor/bin/robo rover:package:publish

Checks:

  • composer.json completeness
  • README existence
  • LICENSE file
  • Test coverage
  • Documentation quality

rover:package:docs

Generate package documentation.

vendor/bin/robo rover:package:docs

Creates README.md template with:

  • Installation instructions
  • Usage examples
  • Testing commands
  • Contributing guidelines

Plugin System & Extensibility

Rover features a powerful plugin system that allows you to create project-specific commands and extend functionality without modifying Rover core.

rover:plugin:list

List all discovered plugins.

vendor/bin/robo rover:plugin:list           # All plugins
vendor/bin/robo rover:plugin:list --loaded  # Only loaded plugins

rover:plugin:info

Show detailed information about a specific plugin.

vendor/bin/robo rover:plugin:info example

Displays:

  • Plugin metadata (name, version, description, author)
  • Status (enabled/disabled, loaded/unloaded)
  • Registered commands
  • Dependencies

rover:plugin:create

Scaffold a new plugin from template.

vendor/bin/robo rover:plugin:create my-plugin
vendor/bin/robo rover:plugin:create my-plugin --path=.rover/plugins
vendor/bin/robo rover:plugin:create my-plugin --author="Your Name" --description="Custom plugin"

Creates complete plugin structure:

  • plugin.json - Plugin metadata
  • bootstrap.php - Bootstrap file
  • src/Plugin.php - Main plugin class
  • src/Commands/ - Command classes
  • README.md - Documentation

rover:plugin:enable

Enable a plugin.

vendor/bin/robo rover:plugin:enable my-plugin

rover:plugin:disable

Disable a plugin.

vendor/bin/robo rover:plugin:disable my-plugin

rover:plugin:validate

Validate plugin structure and configuration.

vendor/bin/robo rover:plugin:validate my-plugin

Checks for:

  • Required files (plugin.json, bootstrap.php)
  • Valid metadata
  • Proper structure

rover:plugin:hooks

List available plugin hooks.

vendor/bin/robo rover:plugin:hooks

Available hooks:

  • before_command - Before any Rover command
  • after_command - After any Rover command
  • project_init - When initializing project
  • backup_created - After backup creation
  • migration_run - After migrations run
  • test_completed - After tests complete
  • deployment_started - When deployment starts
  • deployment_completed - When deployment completes

Creating a Plugin

  1. Create the plugin structure:
vendor/bin/robo rover:plugin:create my-plugin
  1. Edit the plugin class (.rover/plugins/my-plugin/src/Plugin.php):
<?php

use Rover\Plugin\BasePlugin;

class MyPlugin extends BasePlugin
{
    public function boot(): void
    {
        $this->name = 'my-plugin';
        $this->version = '1.0.0';
        $this->description = 'Custom plugin for my project';

        // Register commands
        $this->registerCommand(MyPluginCommands::class);

        // Register hooks
        $this->registerHook('before_command', function($data) {
            $this->log('Command executing...');
        });
    }
}
  1. Create your commands (.rover/plugins/my-plugin/src/Commands/MyPluginCommands.php):
<?php

use Rover\Robo\Plugin\Commands\BaseCommand;
use Robo\Result;

class MyPluginCommands extends BaseCommand
{
    /**
     * @command my-plugin:hello
     */
    public function hello(string $name = 'World'): Result
    {
        $this->io()->success("Hello, $name!");

        // Use BaseCommand utilities
        if ($this->isLaravelProject()) {
            $version = $this->getLaravelVersion();
            $this->io()->note("Laravel $version detected");
        }

        return Result::success($this);
    }
}
  1. Configure in rover.yml:
plugins:
  my-plugin:
    enabled: true
    custom_option: value
  1. Use your plugin:
vendor/bin/robo my-plugin:hello John

Plugin Locations

Rover searches for plugins in these locations (in order):

  1. .rover/plugins/ - Project-specific plugins (highest priority)
  2. rover/plugins/ - Alternative project location
  3. [rover-install]/plugins/ - Global Rover plugins

Example Plugin

Rover includes an example plugin demonstrating all features. Check it out:

vendor/bin/robo rover:plugin:info example
vendor/bin/robo example:hello
vendor/bin/robo example:demo

Study the example plugin source code at plugins/example/ for reference.

Configuration

Rover uses a rover.yml configuration file to define team standards:

# Team information
team:
  name: StuntRocket
  email: hello@stuntrocket.co

# Code quality settings
quality:
  pint:
    preset: laravel
  testing:
    parallel: false
    coverage: false

# Database settings
database:
  require_confirmation:
    - production
    - staging
  backup:
    path: ./storage/backups
    keep: 7

# Development settings
development:
  packages:
    require-dev:
      - laravel/pint
      - barryvdh/laravel-ide-helper
      - spatie/laravel-ray
      - pestphp/pest

Generate a default configuration with:

vendor/bin/robo rover:init

Recommended Workflow

Starting a New Project

# Create project with Rover standards
vendor/bin/robo rover:new my-awesome-app --stack=breeze

cd my-awesome-app

# Set up environment
vendor/bin/robo rover:env:generate

# Install git hooks
vendor/bin/robo rover:git:hooks

# Generate CI/CD pipeline
vendor/bin/robo rover:template:github-actions

# Start developing!
vendor/bin/robo rover:fresh
vendor/bin/robo rover:test

Adding Rover to Existing Project

# Install Rover
composer require stuntrocket/rover --dev

# Set up with opinionated defaults
vendor/bin/robo rover:setup

# Validate environment
vendor/bin/robo rover:env:validate

# Install git hooks
vendor/bin/robo rover:git:hooks

Daily Development

# Start your day
vendor/bin/robo rover:fresh          # Fresh database
vendor/bin/robo rover:test           # Run tests

# Before committing (automated with git hooks)
vendor/bin/robo rover:check          # Pre-commit checks
vendor/bin/robo rover:lint --dirty   # Check your changes

Switching Branches

vendor/bin/robo rover:refresh        # Clear and optimize
vendor/bin/robo rover:fresh          # Reset database if needed
vendor/bin/robo rover:env:compare    # Check for new env variables

Code Review

vendor/bin/robo rover:check          # Run all quality checks
vendor/bin/robo rover:coverage       # Generate coverage report
vendor/bin/robo rover:analyze        # Static analysis

Managing Multiple Projects (Agencies & Teams)

# Quick health check on all projects
vendor/bin/robo rover:health

# Get workspace overview
vendor/bin/robo rover:workspace:status

# Run tests across all projects
vendor/bin/robo rover:test-all

# Update all projects
vendor/bin/robo rover:update-all

# Pull latest changes in all repos
vendor/bin/robo rover:git:pull-all

# Security audit across workspace
vendor/bin/robo rover:insights:security

# Generate workspace report
vendor/bin/robo rover:insights:report

# Run custom command on all projects
vendor/bin/robo rover:run-all "php artisan migrate"

Weekly Maintenance

# Check for outdated packages
vendor/bin/robo rover:insights:outdated

# Security audit
vendor/bin/robo rover:insights:security

# Check dependency consistency
vendor/bin/robo rover:insights:dependencies

# Compare Laravel versions
vendor/bin/robo rover:workspace:versions

# Create weekly backups
vendor/bin/robo rover:db:backup --name=weekly
vendor/bin/robo rover:db:backup:clean --keep=4  # Keep 4 weekly backups

Database Operations & Safety

# Before risky operations - create snapshot
vendor/bin/robo rover:db:snapshot

# Test the risky operation
php artisan some:risky:command

# If something goes wrong, restore immediately
vendor/bin/robo rover:db:snapshot:restore

# Before deployment - backup and verify migrations
vendor/bin/robo rover:db:backup --name=before-deploy
vendor/bin/robo rover:migrate:verify
vendor/bin/robo rover:migrate:check

# After pulling production data - anonymize for safety
vendor/bin/robo rover:db:sync production
vendor/bin/robo rover:db:anonymize

# Safe migration rollback
vendor/bin/robo rover:migrate:rollback-safe --step=1

Debugging & Troubleshooting

# Check logs for errors
rover:logs:errors                        # Recent errors
rover:logs --level=error --follow        # Watch errors in real-time

# Monitor queues
rover:queue:monitor                      # Queue status
rover:queue:failed                       # View failed jobs
rover:queue:retry-all                    # Retry failed jobs

# Check schedule
rover:schedule:check                     # Verify cron setup
rover:schedule:test                      # Test scheduled commands

# Profile performance issues
rover:profile /api/slow-endpoint         # Profile specific route
rover:n+1                                # Detect N+1 queries
rover:benchmark                          # Database performance

Performance Optimization

# Before deployment - optimize
rover:cache:warm                         # Warm all caches
rover:optimize                           # Optimize Laravel
rover:profile /                          # Verify performance

# Monitor and improve
rover:metrics                            # Check resource usage
rover:n+1                                # Find query issues
rover:logs:stats                         # Analyze log patterns

Queue & Background Jobs

# Development workflow
rover:queue:work                         # Run worker locally

# Monitoring
rover:queue:monitor                      # Check queue health
rover:queue:failed                       # View failures

# Maintenance
rover:queue:restart                      # Restart workers
rover:queue:clear                        # Clear failed jobs
rover:queue:retry-all                    # Retry all failed

Package Development

# Create new package
rover:package:init acme/awesome-package

# Set up local development
cd packages/acme/awesome-package
composer install
rover:package:test                       # Run tests

# Link to Laravel project
cd ../../../
rover:package:link packages/acme/awesome-package

# Develop with live reload
# Edit package code, changes reflect immediately

# Before publishing
rover:package:publish                    # Check readiness
rover:package:test                       # Final tests
rover:package:docs                       # Generate docs

# Publish to Packagist
git tag v1.0.0
git push --tags
# Submit to packagist.org

Aliases

Most commands have short aliases for convenience:

  • rover:fresh โ†’ fresh
  • rover:clear โ†’ clear
  • rover:optimize โ†’ optimize
  • rover:test โ†’ test
  • rover:lint โ†’ lint
  • rover:fix โ†’ fix
  • rover:check โ†’ check

Requirements

  • PHP 8.0+
  • Laravel 9.0+
  • Composer

Recommended Packages

Rover works best with these packages (automatically offered during rover:init):

  • laravel/pint - Code style fixer
  • pestphp/pest - Testing framework
  • barryvdh/laravel-ide-helper - IDE autocompletion
  • nunomaduro/larastan - Static analysis
  • spatie/laravel-ray - Debugging

Roadmap

See ROADMAP.md for planned features and development phases.

Contributing

Contributions are welcome! This tool is designed to evolve with the Laravel community's needs.

License

MIT License - See LICENSE file for details.

Credits

Built with โค๏ธ by StuntRocket for the Laravel community.