Configure Shift Configure Shifts behavior by adding a .shiftrc file.

Introducing Shift

Get started with Shift in three simple steps.

Shift like a Pro

Tricks for working through your Shift quickly.

Maintaining Shiftability

Tips on how to keep your project upgradable.

Dealing with Dependencies

How to resolve composer package incompatibilities.

Continuous Shifts

Automate Shift to run continuously on your projects.

Configure Shift

Configure Shifts behavior by adding a .shiftrc file.


Shift now allows you to customize aspects of its automation process.

This has been a long requested feature. However, until recently there haven’t been enough options available.

Now with the Laravel Linter, the Laravel Fixer, and the new subscription services there are additional customizations.

While more configuration options are being added, I will demonstrate setting up a custom configuration for your projects and some of the current options.

Much like other services and tools, Shift now looks with in your project root directory for a .shiftrc.

This file is in INI format. Much like the PHP configuration file. And, similar to the Laravel configuration files, the documentation for each option is embedded within the comments.

You can get a copy of the latest version of this file from the documentation page or the gist on GitHub.

All available options are sent to their default value. So you may simply add the file to your project and customize only the options you wish to tweak

The configuration is broken into three main sections. At the highest level there are configuration options for all Shifts, next options specific to a language, for example PHP, and at the lowest level options specific for to certain Shifts, for example the Laravel Shifts.

Let’s take a look at a few of the current options.

One of the most requested option deals with code formatting. While Shift has always applied the same coding style of Laravel, which is PSR-2, some users prefer their own code style.

Now you may adjust this by specifying a path to your .php_cs file. This will configure PHP CS Fixer to apply your customized code style during your Shift.

Other options allow you to specify directories to exclude or exclude during the Shift process. While Shift recommends using the default project structure, this is helpful if you have additional files which should be included during the Shift process.

There are also additional options specific to each Shift. For example, there are several options which allow you to toggle on and off checks performed by the Laravel Linter and automated with the Laravel Fixer. These include disabling the Resourceful Controller or Inline Validation checks, as well as customizing how requests are referenced.

While Shift is designed to follow language, framework, and community recommendations, the .shiftrc file gives you the flexibility to customize the automation performed by Shift.