Shift with red gradient lettering

Shift Workbench

Even more automation to maintain and modernize the Laravel and PHP code you work on every day.

Run from your desktop or the cloud

Over 50 free and premium tasks

  • Code Format

    Apply the Laravel code style or custom rules to your codebase.

  • Short array syntax

    Convert your code to use PHP's short array syntax.

  • Use ::class constant

    Convert class references from strings to static class constants.

  • switch to match

    Convert switch statements to match expressions.

  • Property Promotion

    Convert simple constructors to use the property promotion.

  • Nullsafe Operator

    Convert null checks to use the nullsafe operator.

  • Fix Optional Parameters

    Correct the order of optional parameters for PHP 8.

  • Convert create_function

    Convert uses of create_function to anonymous functions.

  • String Functions

    Adopt the string functions available in PHP 8.

  • Readonly Properties

    Adopt `readonly` properties in PHP 8.1.

  • Array Functions

    Adopt the array functions available in PHP 7.3.

  • Arrow Functions

    Convert closures to arrow functions.

  • Null Coalesce

    Adopt null coalesce operators.

  • Convert each

    Convert the deprecated each function.

  • Array Destructuring

    Adopt common array destructuring.

  • Use Faker methods

    Use Faker methods instead of property access.

  • Fix PHPUnit methods

    Fix PHPUnit method visibility, casing, and return type.

  • Remove DocBlocks

    Remove all PHP DocBlocks from your code.

  • Remove Dead Code


    Find and remove unnecessary, unused, or unreachable code.

  • Adopt Type Hints


    Add PHP type hints to properties, parameters, and returns.

  • Remove redundant DocBlock tags


    Remove DocBlock tags which are already defined in your PHP code.

  • Adopt early returns


    Adopt using early returns over nested code.

  • Format test cases


    Apply a common format to your test cases.

  • Array Unpacking


    Convert calls to `array_merge` to use array unpacking.

  • New in Initializers


    Collapse object initialization for class properties.

  • Native Enums


    Convert `spatie/enum` to use native Enums in PHP 8.1.

  • Global Facades

    Replace Facade references using the global namespace with their FQCN.

  • Common Helpers

    Convert common Facade chains to helper functions.

  • Model Table Name

    Remove unnecessary table name properties from models.

  • Model Date Casts

    Remove unnecessary columns from the dates property in models.

  • Convert dates property

    Convert the deprecated dates property in models.

  • Streamline order methods

    Streamline query builder order methods

  • Form Request array syntax

    Convert string based validation rules into arrays.

  • array/string Helpers

    Convert old array and string helpers into their modern class-based methods.

  • optional to nullsafe

    Convert simple calls to Laravel's optional helper to use the nullsafe operator available PHP 8.

  • Separate Model Factory

    Separate a generic model factory into individual model factories.

  • Upgrade to Mix 6

    Upgrade your Laravel Mix dependencies and configuration to version 6.

  • Request Injection


    Leverage the injected request object in Controllers and Middleware.

  • Command Autoloading


    Remove unnecessary references by autoloading your application commands.

  • Fluent Responses


    Convert response and redirect calls to use Laravel's expressive method chains.

  • Fluent Routes


    Convert routes options using the old, array syntax.

  • Blade Directives


    Modernize outdated HTML and Blade directives.

  • Controller Validation


    Convert inline controller validation into Form Request objects.

  • env to config


    Convert calls to the env helper within your application to use the config helper with a new custom configuration file.

  • Class based routes


    Register routes using static class references instead of strings

  • actions to tuples


    Convert your route controller actions from strings to array "tuples".

  • Class based factories


    Convert model factories to namespaced, class based factories.

  • Remove Laravel DocBlocks


    Remove the default Laravel DocBlocks from your classes.

  • Remove down migration


    Remove the down method from your database migrations.

  • Adopt anonymous migrations


    Convert your migrations to anonymous classes.

  • Adopt unguarded models


    Convert your models from "fillable" to "unguarded".

  • Adopt LazilyRefreshDatabase


    Adopt the new `LazilyRefreshDatabase` trait in your tests.

  • Composer: Add Dependency

    Add or update the package constraints to your Composer dependencies.

  • Composer: Remove Dependency

    Remove a package from your Composer dependencies.

  • Bump Laravel Dependencies


    Update the dependencies for your project to be compatible with a specific version of Laravel.

  • Bump Laravel Package Dependencies

    Update the dependencies for your Laravel package to be compatible with a specific version of Laravel.

The Workbench is the perfect tool to make tedious, common tasks easy. Refactor and streamline your code with a single button.
Bobby Bouwmann

Bobby Bouwmann, Author - Laravel Secrets

What is the Workbench, exactly?

Shift's primary focus is upgrading Laravel. But you may only run Shift once a year. That leaves a big window of time for your project to fall behind on the latest conventions.

You may run Shifts like the Laravel Fixer, but sometimes you may simply want to cherry pick some of the automation for an existing Laravel project you've inherited.

You may also manage a few Laravel projects and want to normalize the Laravel conventions or code style they use. Or manage their Composer dependencies.

Well, that's exactly what the Workbench does. Using the Workbench you may create custom builds from a growing set of tasks and quickly run them on multiple projects to help maintain and modernize your Laravel applications.

Run the Workbench locally with the desktop app or from the cloud. Get started now, or continue reading…

Screenshot of Shift Workbench
Just saved 2-3 hours using the Workbench. This is 100% worth the money.
Steve McDougall

Steve McDougall, Technical Lead -

See it in action...

Over 50 tasks.
Two ways to run.

We're putting the power of Shift in your hands. Run free tasks immediately. Upgrade to access to premium tasks.

Desktop App

  • Runs directly on your computer
  • Quickly run individual tasks
  • No PR required

Cloud Based

  • Run custom builds with CI
  • Bulk-run against multiple repos
  • Send PRs to your repo

Sign in with any of the following services to connect Shift with your Laravel project.

Don't use one of these services?

Temporarily push your project to a free, private repository on one of these cloud-based services or upgrade your project locally with Shift for Docker.