想知道是否可以使用一个小的 PHP 包装器从浏览器执行 composer
,因为我无法访问服务器的 shell。
不确定是否可以使用 cURL 做到这一点?
最佳答案
Danack 解决方案的替代方案是将 "composer/composer"
作为
composer.json
中的依赖项,只需使用它的 API,而不是提取
composer.phar
的内容。
composer.json
...
"require-dev": {
"composer/composer": "dev-master",
}
...
手动运行 composer install
,这样您就可以在以下脚本中使用它:
composer_install.php
<?php
require 'vendor/autoload.php'; // require composer dependencies
use Composer\Console\Application;
use Symfony\Component\Console\Input\ArrayInput;
// Composer\Factory::getHomeDir() method
// needs COMPOSER_HOME environment variable set
putenv('COMPOSER_HOME=' . __DIR__ . '/vendor/bin/composer');
// call `composer install` command programmatically
$input = new ArrayInput(array('command' => 'install'));
$application = new Application();
$application->setAutoExit(false); // prevent `$application->run` method from exitting the script
$application->run($input);
echo "Done.";
当您从浏览器访问脚本时,该命令应按预期运行。
关于php - 在浏览器中使用 PHP 脚本运行 composer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17219436/