find the php binary in console

This commit is contained in:
denisdulici
2020-03-19 17:18:19 +03:00
parent 9748b48e59
commit 437cbd323d
5 changed files with 23 additions and 5 deletions

View File

@ -2,12 +2,15 @@
namespace App\Utilities;
use Symfony\Component\Process\PhpExecutableFinder;
use Symfony\Component\Process\Process;
class Console
{
public static function run($command, $all_output = false, $timeout = 0)
public static function run($string, $all_output = false, $timeout = 0)
{
$command = static::formatCommandString($string);
$process = Process::fromShellCommandline($command, base_path());
$process->setTimeout($timeout);
@ -19,4 +22,19 @@ class Console
return $all_output ? $process->getOutput() : $process->getErrorOutput();
}
public static function getPhpBinary()
{
return (new PhpExecutableFinder)->find(false) ?? 'php';
}
public static function getArtisanBinary()
{
return defined('ARTISAN_BINARY') ? ARTISAN_BINARY : 'artisan';
}
public static function formatCommandString($string)
{
return sprintf('%s %s %s', static::getPhpBinary(), static::getArtisanBinary(), $string);
}
}

View File

@ -116,7 +116,7 @@ class Installer
$requirements[] = trans('install.requirements.directory', ['directory' => 'storage/logs']);
}
if (Console::run('php artisan help') !== true) {
if (Console::run('help') !== true) {
$requirements[] = trans('install.requirements.executable');
}

View File

@ -135,7 +135,7 @@ class Updater
}
foreach ($companies as $company) {
$command = "php artisan update:finish {$alias} {$company} {$new} {$old}";
$command = "update:finish {$alias} {$company} {$new} {$old}";
if (true !== $result = Console::run($command)) {
$message = !empty($result) ? $result : trans('modules.errors.finish', ['module' => $alias]);