Closed theofidry closed 11 months ago
A side note about the original code.
The COMPOSER_ORIGINAL_INIS
will contain values like:
/etc/php/8.2/cli/php.ini:/etc/php/8.2/cli/conf.d/10-mysqlnd.ini:/etc/php/8.2/cli/conf.d/10-opcache.ini
By exploding this string and take the first item (in this example /etc/php/8.2/cli/php.ini
) and then find the directory of the file (/etc/php/8.2/cli
) and using this directory as ini scan dir we still not finding other locations. If the env is for example /etc/php/8.2/cli/php.ini:/etc/php/8.2/cli/conf.d/10-mysqlnd.ini:/etc/php/8.2/cli/conf.d/10-opcache.ini:/home/website/config/99-usersettings.ini
the /home/website/config
directory is never scanned for the symfony-cmd command.
Please let us know when you're more confident with the proposed changes.
Pew I have no idea. Part of the issue is, I'm not sure how you test this. How have you tested it so far?
Closing as actually this is working as intended. Flex wants to execute a PHP Process as if it was the original command, not the restarted process (if restarted) with modified settings. So if Composer disables Xdebug, the process that flex starts should have Xdebug on.
The current code could be refactored to use XdebugHandler
still instead of the environment variable directly. But it is not a requirement.
After a lot of digging in https://github.com/box-project/box/issues/988, @maartendekeizer could identify the root of the issue.
My understanding is that Flex tries to detect if the current PHP process was restarted by Composer and forwards its restarted settings to the sub-processes it is going to launch. There is currently two things done:
91 which if took code from SensioDistributionBundle.
899 which kind of followed the suite.
I suspect the mentioned code predates
composer/xdebug-handler
. Now with this package, there is two things to take into account:The
composer/xdebug-handler
API is likely much safer, more robust and a lot less hacky to use.There is other applications that can restart a PHP process. As an example Box restarts the PHP process to be able to correct the
phar.readonly
setting that cannot be changed at runtime. It matters as the restarted process by be executing a Composer command.As mentioned in the warning, I could not test this, not even run the tests locally, so I would be careful about this PR. I just wanted to give a base about a potential fix with context about the original issue encountered.
On my side to not have to wait on Flex and avoid the users to have to update it to have the fix, Box launches its Composer commands with
COMPOSER_ORIGINAL_INIS=''
to avoid Flex to trigger the problematic piece of code.