Download the PHP package gedachtegoed/workspace without Composer
On this page you can find all versions of the php package gedachtegoed/workspace. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download gedachtegoed/workspace
More information about gedachtegoed/workspace
Files in gedachtegoed/workspace
Package workspace
Short Description Opinionated wrapper around tighten/duster with default configs, Larastan & Prettier blade formatting integration & CI workflows. For internal use.
License MIT
Informations about the package workspace
Workspace
Extendible workspace configurator for Laravel to effortlessly keep linters, fixers, static analysis, CI workflows, editor integrations and more in sync across all your teams & projects
Install Workspace in your project
Then run the install command to set up Workspace's configs in your project:
Usage
Workspace will add a couple of artisan
commands to your project to help keep Integrations in sync with upstream changes:
Workspace ships with opinionated default integrations. These are easy to change & extend, but the recommended way to work with this package is to publish your own Portable Workspace. This way you have full control of any upstream configuration changes & very customized setups.
The following composer script aliases will be installed by default inside your project:
Note that you can forward options and flags to the underlying composer scripts by suffixing the command with --
. You may pass any options from either tighten/duster for the lint
and fix
commands or phpstan/phpstan for the analyze
and baseline
commands.
For example, if you'd only like to fix dirty files you may use
NOTE: If you don't want Workspace to install composer scripts for you, please remove or edit Aliases::class
in the package config.
Integrating with your editor
So far we've got composer scripts & CI workflows to run all your linting, fixing & static analysis.
Let's bridge the gap & make sure your IDE seamlessly applies all the same rules.
You will be prompted to either integrate with vscode
or intellij
(like phpstorm).
All default integrations come with publishing of workspace plugins & extensions + workspace specific config. This way we can ensure everyone in your team has the same IDE integration as a baseline, which can be tweaked via the global config.
Keeping rules up-to-date
Linter, fixer and static analysis rules may change over time. Fortunately it's a breeze to update these locally. Simply run:
NOTE: Workspace checks if your working directory is clean (has no uncommitted files) before starting the internal update. This way it is easier to review upstream changes to the published files.
Overriding default Integrations
Workspace ships with the following default Integrations:
These can be disabled by publishing Workspace's config file
php artisan vendor:publish --tag=workspace-config
You can disable any integrations you don't like or extend them with your own implementation. Check here to see how the default Integrations are implemented for context.
You may add class names your own Integrations inside the config, or you may simply add Integration builders inline
See the snippet below for a usage example using both flavors:
A comprehensive Builder API reference & guide on making your own Integrations is in the works. Check back soon.
Portable Workspaces
Workspace ships with opinionated default Integrations setup. We understand your organization or team has very specific needs. That is why it is easy to distribute your own configuration as a package.
We provide a beautiful fluent integration builder API to automate all sorts of tasks, like:
- Installing & updating composer & npm dependencies
- Installing & merging composer script aliases
- Integrating custom linters & fixers with Duster
- Publishing integration config files
- Publishing CI workflow files
- Adding & removing lines from your gitignore files
- Provide plugins/extensions for vscode & phpstorm
- Provide workspace config for vscode & phpstorm
Furthermore Workspace Integrations are fully extendible by use of callable hooks. So you can make the install, update & integrate command do pretty much anything you'd like.
Documentation on using your own Portable Workspaces is pending! Stay tuned!
Roadmap
All versions of workspace with dependencies
illuminate/support Version ^10.23|^11
gedachtegoed/workspace-core Version ^0.1