Shift with red gradient lettering

Shift Workbench

Even more automation to help developers maintain and modernize their Laravel projects on a daily basis.

What is the Shift Workbench, exactly?

Shift's primary focus is upgrading Laravel. But you may only run Shift every six months. That leaves a big window of time for your project to fall behind.

You may run Shifts like the Laravel Fixer, but maybe don't need all of its automation. Sometimes you may want to simply cherry pick a few of the changes and apply them to an existing Laravel project you've inherited.

You may also manage a few Laravel projects. Sometimes you want to normalize their Laravel conventions or code style. Or manage their Composer dependencies.

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

Screenshot of Shift Workbench

Available Tasks

Here are the tasks currently available with the Shift Workbench:

  • 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.

  • 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.

  • 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.

  • 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


    Streamline outdated HTML and Blade directives.

  • array/string Helpers

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

  • 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.

  • 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 constraints to be compatible with a specific version of Laravel for your project dependencies.

  • Bump Laravel Package Dependencies

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

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.