The build environment sets the bash option NOUNSET which fails the
script for any substitution of uninitialized variables. The ${VAR-}
construct circumvents this.
This was tested by building the following derivations:
- phpPackages.box{,.composerVendor}
- phpPackages.cyclonedx-php-composer
- phpPackages.phing{,.composerVendor}
- phpPackages.php-parallel-lint{,.composerVendor}
- phpPackages.castor{,.composerVendor}
- phpPackages.phive{,.composerVendor}
- phpPackages.php-cs-fixer{,.composerVendor}
- phpPackages.phpspy
- phpPackages.composer
- phpPackages.grumphp{,.composerVendor}
- phpPackages.phpinsights{,.composerVendor}
- phpPackages.phpstan{,.composerVendor}
- phpPackages.composer-local-repo-plugin
- phpPackages.phan
- phpPackages.php-codesniffer{,.composerVendor}
- phpPackages.phpmd{,.composerVendor}
- phpPackages.psalm{,.composerVendor}
- psysh{,.composerVendor}
- deployer{,.composerVendor}