Maestro is a command line tool to manage multi-site projects.
- PHP 8.1+ CLI
- Composer 2.1+
To see which version of PHP you have installed, from the Mac shell run:
php --version
If you don't have PHP installed or are using an older version I would
recommend using Brew (https://brew.sh)
With Brew installed run:
brew install php
To see which version of Composer you have installed, from the Mac shell run:
composer --version
If you don't have Composer installed, using brew run:
brew install composer
If you do have Composer installed run:
composer self-update
Add the Maestro shell and hosting packages to your project dev dependencies
composer require --dev dof-dss/maestro-shell dof-dss/maestro-hosting
To allow use of the Maestro command from the root directory of your project
without having to directly reference the Maestro executable
(e.g. vendor/bin/maestro) I recommend adding the vendor/bin directory to your
shell $PATH.
As an example I'm using zsh which is the default shell for MacOS.
Edit .zshrc in your home directory and add the following line:
# Maestro Shell (allow vendor bin execution from project root)
export PATH="vendor/bin:${COMPOSER_HOME}/vendor/bin:${PATH}"
Once saved you will need to run
source ~/.zshrc
You must ensure the following script is included in the project composer file when using Maestro Shell.
"scripts": {
"post-package-update": [
"Maestro\\Shell\\Events\\ComposerEventListener::postPackageUpdate"
]
}