Можно ли вызвать обновление композитора из кода приложения с помощью сухого пробега \ Composer \ namespace, чтобы получить информацию об udpates?Calling Composer от php
Я искал в google и нашел только информацию о плагинах Composer или записи (post | pre) - (установить | обновление) скриптов hook, но не нашел никакой информации о получении такой информации.
РЕШИТЬ: Работал ввод пользовательских композитор сценария в pre-update-cmd
:
<?php
namespace MyNamespace;
use Composer\Script\Event;
use Composer\Plugin\CommandEvent;
use Composer\Plugin\PluginEvents;
class CheckStatus
{
public static function preUpdate(Event $event)
{
/* get composer */
$composer = $event->getComposer();
$installedRepo = $composer->getRepositoryManager()->getLocalRepository();
$dm = $composer->getDownloadManager();
$im = $composer->getInstallationManager();
$errors = array();
/* list packages */
foreach ($installedRepo->getPackages() as $package) {
$downloader = $dm->getDownloaderForInstalledPackage($package);
if ($downloader instanceof ChangeReportInterface) {
$targetDir = $im->getInstallPath($package);
if ($changes = $downloader->getLocalChanges($package, $targetDir)) {
$errors[$targetDir] = $changes;
}
}
}
if (!$errors) {
$status['changes'] = null;
} else {
$status['changes'] = $errors;
}
// in $status['changes'] we have all pending updates
}
}
</code>
дублировать? http://stackoverflow.com/questions/17219436/run-composer-with-a-php-script-in-browser/17244866#17244866 – Danack
Это то же самое, что и ответ @CreatoR, но я узнал, что могу расширьте https://github.com/composer/composer/blob/master/src/Composer/Command/UpdateCommand.php класс (который обычно находится в формате composer.phar или только в каталоге поставщика при добавлении «композитор/композитор» в пакет dev к моему composer.json) и напишите больше как возврат массива/объекта с информацией об ожидающих обновлениях. – brzuchal