Effortlessly keep linters, fixers, static analysis, CI workflows, editor integrations and more in sync across all your teams & projects.
Quickstart
composer require gedachtegoed/workspace --dev
Then run the install command to set up Workspace’s configs in your project:
php artisan workspace:install
This command will install all configured Integrations in workspace-integrations.php. These are all configurable by publishing the config file. You may remove or override any implementation with your own on a per-project basis. Read more about overriding Integrations here.
Workspace ships with a handfull carefully crafted Integrations.
If you’d like to roll out your own Portable Workspace to share between projects and teams refer to this section of the documentation
Updating
Whenever Integrations change upstream you can easily sync it with your project.
php artisan workspace:update
This command will update Workspace itself (by a minor version only) and update the Integration’s composer and npm dependencies before rebuilding all your integration configs.
Please note that while Workspace’s internal Integrations are carefully selected, they are higly opinionated. We do encourage you to write your own Portable Workspace.
Integrate your IDE
Workspace uses Duster under the hood to facilitate linting and fixing of your code. But to use it you need to manually trigger the command before you commit your code or let CI handle it for you. To bridge the gap you can integrate you IDE so all Workspace Integrations are seamlessly applied when you type.
php artisan workspace:integrate
You’ll be prompted for your editor of choice (vscode
or phpstorm
). If your team uses both editors simply select them both.
This will install some configuration to your .vscode
or .idea
directory respectively.
In case of vscode
after running the workspace:integrate
command you’ll need to install vscode’s recommended extentions. If the prompt doesn’t appear; Open the command pallette [CMD + Shift + P] and select ‘Show Recommended Extensions’ and install them.