This repository hosts the installer served at:
https://php.gt/install
The installer sets up a gt command for Linux and macOS shells using either native PHP with Composer or Docker.
Quick install:
curl https://php.gt/install | sh
Verbose output:
curl https://php.gt/install | sh -s -- --verbose
Force shell profile selection:
curl https://php.gt/install | sh -s -- --shell bash
The gt command itself is implemented at PHP.GT/GtCommand and installed as the Composer package phpgt/gtcommand.
- Preflight checks run before any prompts:
- Native requirements:
php >= 8.4,curl, and either archive support (unzip/7z/PHPzip) orgit. - Docker availability (
dockercommand).
- Native requirements:
- If neither native nor Docker is viable, the installer explains missing requirements, suggests package-manager install commands, and links to:
https://php.gt/docs/installer/environments
- If both paths are viable, the user chooses
nativeordocker. If only one is viable, it is selected automatically. - The installer asks which shell profile to update (
bash,zsh,sh), defaulting from:--shelloverride, then parent-process inference, then$SHELL.
- Native path:
- Uses an existing
composerexecutable if present; otherwise it offers to downloadcomposer-stable.phar. - Installs
phpgt/gtcommandwithcomposer global require.
- Uses an existing
- Docker path:
- Uses
composer:2container with mounted Composer home. - Installs
phpgt/gtcommandin that mounted Composer home.
- Uses
- In both paths, the installer creates an executable launcher named
gtin a writable bin directory:- It prefers
/usr/local/bin, with a fallback to~/.local/bin(or/tmp/.local/binifHOMEis unavailable).
- It prefers
- If the launcher or Composer directory is not on
PATH, the installer offers to append an export to the selected shell rc file.
- By default, the installer suppresses noisy command output and shows simple progress feedback for long steps.
- Use
--verbosefor full command logs. gtremains updatable through Composer (phpgt/gtcommand), while the installed launcher stays as the stable entry point.