From de4e2ba889a40b6816b984aaa8e5b5afab0a0245 Mon Sep 17 00:00:00 2001 From: Robbie Averill Date: Fri, 16 Feb 2018 12:05:46 +1300 Subject: [PATCH] NEW Use symfony/process to execute immediate system commands for reindexing --- composer.json | 3 ++- .../Reindex/Handlers/SolrReindexImmediateHandler.php | 9 +++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/composer.json b/composer.json index fa90827..fb3bf2d 100644 --- a/composer.json +++ b/composer.json @@ -23,7 +23,8 @@ "require": { "silverstripe/framework": "^4.0", "monolog/monolog": "~1.15", - "ptcinc/solr-php-client": "^1.0" + "ptcinc/solr-php-client": "^1.0", + "symfony/process": "^3.2" }, "require-dev": { "silverstripe/cms": "^4.0", diff --git a/src/Solr/Reindex/Handlers/SolrReindexImmediateHandler.php b/src/Solr/Reindex/Handlers/SolrReindexImmediateHandler.php index b1eec28..c6df3b0 100644 --- a/src/Solr/Reindex/Handlers/SolrReindexImmediateHandler.php +++ b/src/Solr/Reindex/Handlers/SolrReindexImmediateHandler.php @@ -8,6 +8,7 @@ use SilverStripe\Core\Manifest\ModuleLoader; use SilverStripe\FullTextSearch\Solr\Solr; use SilverStripe\FullTextSearch\Solr\SolrIndex; use SilverStripe\ORM\DB; +use Symfony\Component\Process\Process; /** * Invokes an immediate reindex @@ -77,11 +78,15 @@ class SolrReindexImmediateHandler extends SolrReindexBase $scriptTask = "php {$scriptPath} dev/tasks/{$taskName}"; $cmd = "{$scriptTask} index={$indexClassEscaped} class={$class} group={$group} groups={$groups} variantstate={$statevar}"; - $cmd .= " verbose=1 2>&1"; + $cmd .= " verbose=1"; $logger->info("Running '$cmd'"); // Execute script via shell - $res = $logger ? passthru($cmd) : `$cmd`; + $process = new Process($cmd); + $process->inheritEnvironmentVariables(); + $process->run(); + + $res = $process->getOutput(); if ($logger) { $logger->info(preg_replace('/\r\n|\n/', '$0 ', $res)); }