Merhabalar,
mgsmus
Birçok farklı varyasyon denememe rağmen çalıştıramadım.
$process = new Process(['composer', '-V']);
$process->setWorkingDirectory(base_path());
$process->run();
// executes after the command finishes
if (!$process->isSuccessful()) {
dd(new ProcessFailedException($process));
}
echo $process->getOutput();
Çıktı
Composer version 2.3.7 2022-06-06 16:43:28
Versiyonu alabiliyorum. Fakat paket yüklemeye geldiğimde ise çeşitli hatalar alıyorum.
1- Hata
$process = new Process(['composer', 'require rainieren/visitors']); veya ['composer', 'composer require rainieren/visitors']
$process->setWorkingDirectory(base_path());
$process->run();
// executes after the command finishes
if (!$process->isSuccessful()) {
dd(new ProcessFailedException($process));
}
echo $process->getOutput();
Çıktı
The command "composer "require rainieren/visitors"" failed
The APPDATA or COMPOSER_HOME environment variable must be set for composer to run correctly
2- Hata
$process = new Process(['composer', 'require rainieren/visitors'], null, [
'COMPOSER_HOME' => 'C:\laragon\bin\composer',
]);
$process->setWorkingDirectory(base_path());
$process->run();
// executes after the command finishes
if (!$process->isSuccessful()) {
dd(new ProcessFailedException($process));
}
echo $process->getOutput();
Çıktı
The command "composer "require rainieren/visitors"" failed
https://stackoverflow.com/questions/60017642/laravel-executing-command-in-controller-track-progress
Yukarıdaki linkte kodu birebir çalıştırmaya çalıştığımda ise şu şekilde bir hata ile karşılaşıyorum.
try {
$package = new Process("composer require rainieren/visitors");
$package->setWorkingDirectory(base_path());
$package->run();
} catch (\Throwable $th) {
dd($th->getMessage());
}
Çıktı
Symfony\Component\Process\Process::__construct(): Argument #1 ($command) must be of type array, string given, called
Bu şekilde hatalar alıyorum.
Amacım tıklanan paketi composer require ..../....
diyerek yüklemek ve olabiliyorsa progress bar ile de süreci görselleştirmek istiyorum.