php - 在浏览器中使用 PHP 脚本运行 composer

标签 php curl composer-php

想知道是否可以使用一个小的 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/

相关文章:

php - 使用 preg_replace PHP 删除其中的标签和元素

php - PhpStorm中PHP扩展的函数和类

curl - 如何用 curl 欺骗搜索引擎机器人?

PHP cURL 不存储 session cookie...如何解决这个问题?

php - Symfony Flex 背后有严格的企业防火墙/代理

authentication - Composer 忽略 auth.json

javascript - TableExport jquery 插件 : Filename and Extension issue

php - 如何使用 php 访问 div 中的 value 属性?

elasticsearch - 需要使用curl或url获取时间范围内的索引数据

Symfony:Profiler 看到 twig 被弃用,但找不到它们来自哪里