pmmp / PocketMine-MP

A server software for Minecraft: Bedrock Edition in PHP
https://pmmp.io
GNU Lesser General Public License v3.0
3.28k stars 1.56k forks source link

Explore using Phive to manage tools instead of Composer #5807

Open dktapps opened 1 year ago

dktapps commented 1 year ago

Description

Having phpunit/phpunit as a Composer dev dependency is very obnoxious, because:

https://phar.io/ (Phive) is a potential solution to this problem, recommended by the PHPUnit docs. This section of the PHPUnit docs in particular provides an excellent summary of the problems faced by including phpunit into the project as a Composer dependency.

Justification

Alternative methods

We could:

dktapps commented 1 year ago

Currently this is a bit inconvenient, because Phive uses curl SSL, which does not work in our currently distributed prebuilt PHP binaries due to missing SSL certificate bundles (pmmp/PHP-Binaries#70)

dktapps commented 1 year ago

This is also a bit annoying for PHPStan, since PHPStan extensions can't be easily used if we install PHPStan using Phive. However, PHPUnit will definitely benefit.