Download the PHP package stuntrocket/rover without Composer
On this page you can find all versions of the php package stuntrocket/rover. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download stuntrocket/rover
More information about stuntrocket/rover
Files in stuntrocket/rover
Package rover
Short Description An opinionated Laravel development assistant for teams who value quality and standards. Streamlines workflows, enforces code quality, and manages multiple projects.
License MIT
Homepage https://github.com/stuntrocket/rover
Informations about the package rover
Rover ๐
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
Quick Start
Available Commands
Setup & Configuration
rover:init
Initialize Rover configuration and optionally install recommended development packages.
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.
rover:about
Show Rover version and available commands.
Project Scaffolding
rover:new
Create a new Laravel project with opinionated defaults and team standards.
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.
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.
Checks for:
- Required environment variables
- APP_KEY generation
- Production safety settings
- Database connection
rover:env:generate
Generate .env file with interactive prompts.
rover:env:compare
Compare .env with .env.example to find missing or extra variables.
rover:env:info
Display environment information (hides sensitive data).
rover:env:check-secrets
Check for accidentally exposed secrets in version control.
Git Integration
rover:git:hooks
Install git hooks for automated quality checks.
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.
rover:git:status-all
Show git status for all Laravel projects in current directory.
rover:git:gitignore
Generate Laravel .gitignore file.
Template Generation
rover:template:github-actions
Generate GitHub Actions workflow for CI/CD.
Creates .github/workflows/laravel.yml with:
- Code style checks
- Test execution
- Static analysis
- MySQL service container
rover:template:gitlab-ci
Generate GitLab CI configuration.
rover:template:docker
Generate Docker configuration (Dockerfile, docker-compose.yml, nginx config).
rover:template:readme
Generate README template with project documentation structure.
rover:template:all
Generate all templates with interactive prompts.
Database Operations
rover:fresh
Drop all tables, run migrations, and seed the database.
โ ๏ธ Safety first: Automatically checks environment and requires confirmation unless --force is used.
rover:db:reset
Rollback and re-run all migrations.
rover:db:seed
Run database seeders.
rover:db:status
Show migration status.
Database Backup & Management
rover:db:backup
Create timestamped database backups with automatic rotation.
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.
Shows filename, size, and creation date for each backup.
rover:db:restore
Restore database from a backup.
โ ๏ธ Warning: This replaces your current database!
rover:db:backup:clean
Delete old backups, keeping the most recent ones.
rover:db:snapshot
Quick snapshot for testing (uses "latest" naming).
Perfect for:
- Testing destructive operations
- Quick before/after comparisons
- Experimenting with data
rover:db:anonymize
Anonymize sensitive user data for safe development/staging use.
Anonymizes:
- Email addresses ([email protected], [email protected])
- Passwords (set to default hash)
- Names (User 1, User 2)
- Tokens cleared
โ ๏ธ Production Safety: Automatically blocked in production environments.
rover:db:sync
Sync database from remote environment (requires configuration).
Provides manual instructions for database synchronization.
Migration Safety Tools
rover:migrate:check
Check for migration conflicts (duplicate timestamps, naming issues).
Detects:
- Duplicate migration timestamps
- Naming conflicts
- Potential merge issues
rover:migrate:verify
Comprehensive migration verification before running.
Checks for:
- Migration conflicts
- Risky operations (dropping columns/tables)
- Safety concerns
rover:migrate:rollback-safe
Safe rollback with preview and confirmation.
Features:
- Shows migrations to be rolled back
- Requires confirmation (unless --force)
- Blocks production rollbacks
rover:migrate:history
View migration history and pending migrations.
rover:make:migration
Create migration with conflict checking.
Automatically checks for naming conflicts before creation.
Cache Management
rover:clear
Clear all Laravel caches (config, route, view, cache, compiled).
Clears:
- Configuration cache
- Route cache
- View cache
- Application cache
- Compiled classes
rover:optimize
Run all Laravel optimization commands.
Optimizes:
- Configuration
- Routes
- Views
- Application
rover:refresh
Clear caches then optimize (useful when switching branches).
Testing
rover:test
Smart test runner with automatic Pest/PHPUnit detection.
rover:coverage
Generate test coverage report.
rover:test:file
Run a specific test file.
rover:test:list
List all available test files.
Code Quality
rover:lint
Check code style with Laravel Pint.
rover:fix
Automatically fix code style issues.
rover:check
Run all pre-commit checks (lint, tests, static analysis).
Perfect for CI/CD pipelines and pre-commit hooks!
rover:analyze
Run static analysis with PHPStan/Larastan.
rover:ide-helper
Generate IDE helper files for better autocompletion.
Project Management
rover:list
List all Laravel projects in current directory.
Shows project names and Laravel versions.
Workspace Management
rover:health
Run comprehensive health checks across all Laravel projects.
Checks for:
- Missing dependencies
- Environment configuration
- Storage permissions
- Git status
- Outdated packages
rover:switch
Quick switch between Laravel projects with interactive selection.
rover:workspace:status
Detailed overview of all projects in workspace.
Shows Laravel version, git branch, environment, and dependency status.
rover:workspace:versions
Compare Laravel versions across all projects.
Batch Operations
rover:run-all
Execute any command across all Laravel projects.
rover:update-all
Update composer dependencies in all projects.
rover:test-all
Run test suites across all projects.
rover:git:pull-all
Pull latest changes in all git repositories.
Automatically skips repositories with uncommitted changes.
rover:clear-all
Clear all caches across all Laravel projects.
rover:install-all
Run composer install in all projects.
Project Insights & Analytics
rover:insights:stats
Generate detailed statistics for a 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.
Identifies version inconsistencies for standardization.
rover:insights:security
Security audit across all projects.
Runs composer audit to detect known vulnerabilities.
rover:insights:outdated
Check for outdated packages in all projects.
rover:insights:report
Generate comprehensive workspace report.
Provides overview of all projects including Laravel versions, git status, and testing coverage.
Log Management
rover:logs
Tail and filter Laravel logs.
Supported log levels: emergency, alert, critical, error, warning, notice, info, debug
rover:logs:clear
Clear Laravel log file.
rover:logs:stats
Show log file statistics.
Displays:
- File size
- Total lines
- Errors by level (ERROR, WARNING, etc.)
rover:logs:errors
Find recent errors quickly.
rover:logs:archive
Archive and clear logs.
Archives to storage/logs/archive/ with gzip compression.
Queue Management
rover:queue:monitor
Monitor queue status and workers.
Shows:
- Failed job count
- Running workers
- Queue statistics
rover:queue:clear
Clear all failed jobs.
rover:queue:retry-all
Retry all failed jobs.
rover:queue:failed
List failed jobs.
rover:queue:restart
Gracefully restart queue workers.
Workers finish current jobs then restart.
rover:queue:work
Run queue worker in development.
Schedule Management
rover:schedule:list
List all scheduled commands.
rover:schedule:run
Run scheduled commands manually.
rover:schedule:test
Test scheduled commands immediately.
rover:schedule:work
Run scheduler in foreground (development).
rover:schedule:check
Verify cron setup.
Checks:
- Scheduled commands configuration
- Cron job setup
- Recent schedule runs
rover:schedule:docs
Generate schedule documentation.
Creates docs/SCHEDULE.md with all scheduled commands.
Performance & Profiling
rover:profile
Profile application performance.
Runs multiple requests and shows:
- Average response time
- Min/max response time
- Performance rating
rover:n+1
Detect N+1 query problems.
- Checks for Telescope/Debugbar
- Scans code for common N+1 patterns
- Provides optimization suggestions
rover:benchmark
Benchmark database performance.
Tests:
- Simple queries
- Database connection
- Overall performance
rover:cache:warm
Warm all application caches for optimal performance.
Caches:
- Configuration
- Routes
- Views
- Events
rover:metrics
Show application 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.
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).
Automatically:
- Adds path repository to composer.json
- Creates symlink in vendor/
- Enables live development
rover:package:unlink
Unlink package and remove from project.
rover:package:test
Run package tests in isolation.
rover:package:publish
Verify package is ready for publishing.
Checks:
- composer.json completeness
- README existence
- LICENSE file
- Test coverage
- Documentation quality
rover:package:docs
Generate package documentation.
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.
rover:plugin:info
Show detailed information about a specific plugin.
Displays:
- Plugin metadata (name, version, description, author)
- Status (enabled/disabled, loaded/unloaded)
- Registered commands
- Dependencies
rover:plugin:create
Scaffold a new plugin from template.
Creates complete plugin structure:
plugin.json- Plugin metadatabootstrap.php- Bootstrap filesrc/Plugin.php- Main plugin classsrc/Commands/- Command classesREADME.md- Documentation
rover:plugin:enable
Enable a plugin.
rover:plugin:disable
Disable a plugin.
rover:plugin:validate
Validate plugin structure and configuration.
Checks for:
- Required files (plugin.json, bootstrap.php)
- Valid metadata
- Proper structure
rover:plugin:hooks
List available plugin hooks.
Available hooks:
before_command- Before any Rover commandafter_command- After any Rover commandproject_init- When initializing projectbackup_created- After backup creationmigration_run- After migrations runtest_completed- After tests completedeployment_started- When deployment startsdeployment_completed- When deployment completes
Creating a Plugin
- Create the plugin structure:
vendor/bin/robo rover:plugin:create my-plugin
-
Edit the plugin class (
.rover/plugins/my-plugin/src/Plugin.php): -
Create your commands (
.rover/plugins/my-plugin/src/Commands/MyPluginCommands.php): - Configure in rover.yml:
plugins:
my-plugin:
enabled: true
custom_option: value
- Use your plugin:
vendor/bin/robo my-plugin:hello John
Plugin Locations
Rover searches for plugins in these locations (in order):
.rover/plugins/- Project-specific plugins (highest priority)rover/plugins/- Alternative project location[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: [email protected]
# 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โfreshrover:clearโclearrover:optimizeโoptimizerover:testโtestrover:lintโlintrover:fixโfixrover: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 fixerpestphp/pest- Testing frameworkbarryvdh/laravel-ide-helper- IDE autocompletionnunomaduro/larastan- Static analysisspatie/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.