From 88afbc76f951b7e75e6d5dfdb39751e3d30f2171 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Monta=C3=B1ez?= Date: Fri, 14 Apr 2017 15:24:39 -0300 Subject: [PATCH] [CQ] Add Composer abstract task --- CHANGELOG.md | 4 ++ .../BuiltIn/Composer/AbstractComposerTask.php | 38 +++++++++++++++++++ .../BuiltIn/Composer/DumpAutoloadTask.php | 13 ++----- src/Task/BuiltIn/Composer/InstallTask.php | 13 ++----- src/Task/BuiltIn/Composer/SelfUpdateTask.php | 13 ++----- 5 files changed, 51 insertions(+), 30 deletions(-) create mode 100644 src/Task/BuiltIn/Composer/AbstractComposerTask.php diff --git a/CHANGELOG.md b/CHANGELOG.md index f642a44..d5da887 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,10 @@ CHANGELOG for 3.X ================= +* 3.2.0 (2017-04-xx) + * Improve code quality, remove duplications on Composer Tasks. + * [PR#364] Allow to define custom timeout to Composer:Install + * 3.1.0 (2017-02-25) * Add new Exec task to execute arbitrary shell commands * Add new Composer task, to update phar (composer/self-update) diff --git a/src/Task/BuiltIn/Composer/AbstractComposerTask.php b/src/Task/BuiltIn/Composer/AbstractComposerTask.php new file mode 100644 index 0000000..bce2234 --- /dev/null +++ b/src/Task/BuiltIn/Composer/AbstractComposerTask.php @@ -0,0 +1,38 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Mage\Task\BuiltIn\Composer; + +use Mage\Task\AbstractTask; + +/** + * Abstract Composer Task + * + * @author Andrés Montañez + */ +abstract class AbstractComposerTask extends AbstractTask +{ + protected function getOptions() + { + $options = array_merge( + ['path' => 'composer'], + $this->getComposerOptions(), + $this->runtime->getMergedOption('composer'), + $this->options + ); + + return $options; + } + + protected function getComposerOptions() + { + return []; + } +} diff --git a/src/Task/BuiltIn/Composer/DumpAutoloadTask.php b/src/Task/BuiltIn/Composer/DumpAutoloadTask.php index af66d1e..4e09bce 100644 --- a/src/Task/BuiltIn/Composer/DumpAutoloadTask.php +++ b/src/Task/BuiltIn/Composer/DumpAutoloadTask.php @@ -11,14 +11,13 @@ namespace Mage\Task\BuiltIn\Composer; use Symfony\Component\Process\Process; -use Mage\Task\AbstractTask; /** * Composer Task - Generate Autoload * * @author Andrés Montañez */ -class DumpAutoloadTask extends AbstractTask +class DumpAutoloadTask extends AbstractComposerTask { public function getName() { @@ -41,14 +40,8 @@ class DumpAutoloadTask extends AbstractTask return $process->isSuccessful(); } - protected function getOptions() + protected function getComposerOptions() { - $options = array_merge( - ['path' => 'composer', 'flags' => '--optimize'], - $this->runtime->getMergedOption('composer'), - $this->options - ); - - return $options; + return ['flags' => '--optimize']; } } diff --git a/src/Task/BuiltIn/Composer/InstallTask.php b/src/Task/BuiltIn/Composer/InstallTask.php index b0d1592..55a6a8d 100644 --- a/src/Task/BuiltIn/Composer/InstallTask.php +++ b/src/Task/BuiltIn/Composer/InstallTask.php @@ -11,14 +11,13 @@ namespace Mage\Task\BuiltIn\Composer; use Symfony\Component\Process\Process; -use Mage\Task\AbstractTask; /** * Composer Task - Install Vendors * * @author Andrés Montañez */ -class InstallTask extends AbstractTask +class InstallTask extends AbstractComposerTask { public function getName() { @@ -41,14 +40,8 @@ class InstallTask extends AbstractTask return $process->isSuccessful(); } - protected function getOptions() + protected function getComposerOptions() { - $options = array_merge( - ['path' => 'composer', 'flags' => '--optimize-autoloader', 'timeout' => 120], - $this->runtime->getMergedOption('composer'), - $this->options - ); - - return $options; + return ['flags' => '--optimize-autoloader', 'timeout' => 120]; } } diff --git a/src/Task/BuiltIn/Composer/SelfUpdateTask.php b/src/Task/BuiltIn/Composer/SelfUpdateTask.php index f07fd51..153ba3f 100644 --- a/src/Task/BuiltIn/Composer/SelfUpdateTask.php +++ b/src/Task/BuiltIn/Composer/SelfUpdateTask.php @@ -12,7 +12,6 @@ namespace Mage\Task\BuiltIn\Composer; use Mage\Task\Exception\SkipException; use Symfony\Component\Process\Process; -use Mage\Task\AbstractTask; use DateTime; /** @@ -20,7 +19,7 @@ use DateTime; * * @author Yanick Witschi */ -class SelfUpdateTask extends AbstractTask +class SelfUpdateTask extends AbstractComposerTask { public function getName() { @@ -80,14 +79,8 @@ class SelfUpdateTask extends AbstractTask return $compareDate; } - protected function getOptions() + protected function getComposerOptions() { - $options = array_merge( - ['path' => 'composer', 'days' => 60], - $this->runtime->getMergedOption('composer'), - $this->options - ); - - return $options; + return ['days' => 60]; } }