* Disallow plugins by throwing an exception if non-interactive to avoid half-broken runtime states, fixes#10912
* Also allow BC mode for lock files older than 2.2.0 to keep plugins working there
* Allow locker to be accessed by plugin manager at init time
* Update allow-plugins docs
Co-authored-by: Damien Tournoud <damien@platform.sh>
Co-authored-by: Jordi Boggiano <j.boggiano@seld.be>
* Add --no-scripts as global parameter available to all commands, and handle it by default when creating a Composer instance from Command::getComposer
* Disable scripts/plugins for self-update command, fixes#10351
the `$home` variable referenced in the conifguration docs for data- and
cache-dir is a reference to an internal PHP variable that contains the
composer home directory.
as on the documentation page it is not visible where that variable comes
from (the document uses only shell/environment variables otherwise) these
two places are hard to read/understand.
the exact meaning of `$home` (lowercase) is the composer-home (or just
home) global configuration setting (composer home is for all user-wide
composer invocations, to store data in the filesystem namespace of the
user executing composer).
that meaning is better documented with the `$COMPOSER_HOME` environment
variable (which when it does not exists the default value is well
documented in [03-cli.md#composer-home].
replace `$home` with `$COMPOSER_HOME`.
additionally small typo fix on "rollback" which is "roll back".
discussion: #10363
[03-cli.md#composer-home]: doc/03-cli.md#composer-home
Fixes#5659
- Automatically switch off plugins by default in July 2022
- reword hash into object in schema
Co-authored-by: Nils Adermann <naderman@naderman.de>
Always create proxy files for package binaries,
to avoid not working binaries in case the package
was installed from a path repository and is itself linked
If the binary is a PHP script, a global variable is now exposed,
which holds the path to the vendor/autoload.php file.
This variable can the be used in the binaries to include this file
without guessing where the path to the vendor folder might be.
Additionally it is now checked on binary creation whether
the reference binary has a shebang and if not, generates
a much simple proxy code, because the stream wrapper code,
that is required for PHP <8 to omit the shebang from the output,
can be skipped.
Fixes: #10119
Co-authored-by: Jordi Boggiano <j.boggiano@seld.be>