Support Composer and Symfony App paths. Issue #86

Also specify symfony version (2 o 3).
This commit is contained in:
Andrés Montañez 2014-08-06 17:26:16 -03:00
parent 5fb711593a
commit ce0e707dc6
8 changed files with 76 additions and 22 deletions

View file

@ -0,0 +1,26 @@
<?php
/*
* This file is part of the Magallanes package.
*
* (c) Andrés Montañez <andres@andresmontanez.com>
*
* 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 Task for Composer
*
* @author Andrés Montañez <andres@andresmontanez.com>
*/
abstract class ComposerAbstractTask extends AbstractTask
{
protected function getComposerPath()
{
return $this->getConfig()->general('composer_path', 'php composer.phar');
}
}

View file

@ -1,10 +1,10 @@
<?php <?php
namespace Mage\Task\BuiltIn\Composer; namespace Mage\Task\BuiltIn\Composer;
use Mage\Task\AbstractTask; use Mage\Task\BuiltIn\Composer\ComposerAbstractTask;
use Mage\Task\ErrorWithMessageException; use Mage\Task\ErrorWithMessageException;
class GenerateAutoloadTask extends AbstractTask class GenerateAutoloadTask extends ComposerAbstractTask
{ {
/** /**
* Returns the Title of the Task * Returns the Title of the Task
@ -23,8 +23,6 @@ class GenerateAutoloadTask extends AbstractTask
*/ */
public function run() public function run()
{ {
$composerPath = $this->getConfig()->general('composer_path', 'php composer.phar'); return $this->runCommand($this->getComposerPath() . ' dumpautoload --optimize');
return $this->runCommand($composerPath . ' dumpautoload --optimize');
} }
} }

View file

@ -1,10 +1,10 @@
<?php <?php
namespace Mage\Task\BuiltIn\Composer; namespace Mage\Task\BuiltIn\Composer;
use Mage\Task\AbstractTask; use Mage\Task\BuiltIn\Composer\ComposerAbstractTask;
use Mage\Task\ErrorWithMessageException; use Mage\Task\ErrorWithMessageException;
class InstallTask extends AbstractTask class InstallTask extends ComposerAbstractTask
{ {
/** /**
* Returns the Title of the Task * Returns the Title of the Task
@ -23,8 +23,6 @@ class InstallTask extends AbstractTask
*/ */
public function run() public function run()
{ {
$composerPath = $this->getConfig()->general('composer_path', 'php composer.phar'); return $this->runCommand($this->getComposerPath() . ' install');
return $this->runCommand($composerPath . ' install');
} }
} }

View file

@ -10,14 +10,14 @@
namespace Mage\Task\BuiltIn\Symfony2; namespace Mage\Task\BuiltIn\Symfony2;
use Mage\Task\AbstractTask; use Mage\Task\BuiltIn\Symfony2\SymfonyAbstractTask;
/** /**
* Task for Dumping Assetics * Task for Dumping Assetics
* *
* @author Andrés Montañez <andres@andresmontanez.com> * @author Andrés Montañez <andres@andresmontanez.com>
*/ */
class AsseticDumpTask extends AbstractTask class AsseticDumpTask extends SymfonyAbstractTask
{ {
/** /**
* (non-PHPdoc) * (non-PHPdoc)
@ -37,7 +37,7 @@ class AsseticDumpTask extends AbstractTask
// Options // Options
$env = $this->getParameter('env', 'dev'); $env = $this->getParameter('env', 'dev');
$command = 'app/console assetic:dump --env=' . $env; $command = $this->getAppPath() . ' assetic:dump --env=' . $env;
$result = $this->runCommand($command); $result = $this->runCommand($command);
return $result; return $result;

View file

@ -10,14 +10,14 @@
namespace Mage\Task\BuiltIn\Symfony2; namespace Mage\Task\BuiltIn\Symfony2;
use Mage\Task\AbstractTask; use Mage\Task\BuiltIn\Symfony2\SymfonyAbstractTask;
/** /**
* Task for Installing Assets * Task for Installing Assets
* *
* @author Andrés Montañez <andres@andresmontanez.com> * @author Andrés Montañez <andres@andresmontanez.com>
*/ */
class AssetsInstallTask extends AbstractTask class AssetsInstallTask extends SymfonyAbstractTask
{ {
/** /**
* (non-PHPdoc) * (non-PHPdoc)
@ -44,7 +44,7 @@ class AssetsInstallTask extends AbstractTask
$symlink = true; $symlink = true;
} }
$command = 'app/console assets:install ' . ($symlink ? '--symlink' : '') . ' ' . ($relative ? '--relative' : '') . ' --env=' . $env . ' ' . $target; $command = $this->getAppPath() . ' assets:install ' . ($symlink ? '--symlink' : '') . ' ' . ($relative ? '--relative' : '') . ' --env=' . $env . ' ' . $target;
$result = $this->runCommand($command); $result = $this->runCommand($command);
return $result; return $result;

View file

@ -10,14 +10,14 @@
namespace Mage\Task\BuiltIn\Symfony2; namespace Mage\Task\BuiltIn\Symfony2;
use Mage\Task\AbstractTask; use Mage\Task\BuiltIn\Symfony2\SymfonyAbstractTask;
/** /**
* Task for Clearing the Cache * Task for Clearing the Cache
* *
* @author Andrés Montañez <andres@andresmontanez.com> * @author Andrés Montañez <andres@andresmontanez.com>
*/ */
class CacheClearTask extends AbstractTask class CacheClearTask extends SymfonyAbstractTask
{ {
/** /**
* (non-PHPdoc) * (non-PHPdoc)
@ -37,7 +37,7 @@ class CacheClearTask extends AbstractTask
// Options // Options
$env = $this->getParameter('env', 'dev'); $env = $this->getParameter('env', 'dev');
$command = 'app/console cache:clear --env=' . $env; $command = $this->getAppPath() . ' cache:clear --env=' . $env;
$result = $this->runCommand($command); $result = $this->runCommand($command);
return $result; return $result;

View file

@ -10,14 +10,14 @@
namespace Mage\Task\BuiltIn\Symfony2; namespace Mage\Task\BuiltIn\Symfony2;
use Mage\Task\AbstractTask; use Mage\Task\BuiltIn\Symfony2\SymfonyAbstractTask;
/** /**
* Task for Warming Up the Cache * Task for Warming Up the Cache
* *
* @author Andrés Montañez <andres@andresmontanez.com> * @author Andrés Montañez <andres@andresmontanez.com>
*/ */
class CacheWarmupTask extends AbstractTask class CacheWarmupTask extends SymfonyAbstractTask
{ {
/** /**
* (non-PHPdoc) * (non-PHPdoc)
@ -37,7 +37,7 @@ class CacheWarmupTask extends AbstractTask
// Options // Options
$env = $this->getParameter('env', 'dev'); $env = $this->getParameter('env', 'dev');
$command = 'app/console cache:warmup --env=' . $env; $command = $this->getAppPath() . ' cache:warmup --env=' . $env;
$result = $this->runCommand($command); $result = $this->runCommand($command);
return $result; return $result;

View file

@ -0,0 +1,32 @@
<?php
/*
* This file is part of the Magallanes package.
*
* (c) Andrés Montañez <andres@andresmontanez.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Mage\Task\BuiltIn\Symfony2;
use Mage\Task\AbstractTask;
/**
* Abstract Task for Symfony2
*
* @author Andrés Montañez <andres@andresmontanez.com>
*/
abstract class SymfonyAbstractTask extends AbstractTask
{
protected function getAppPath()
{
if ($this->getConfig()->general('symfony_version', '2') == '3') {
$defaultAppPath = 'bin/console';
} else {
$defaultAppPath = 'app/console';
}
return $this->getConfig()->general('symfony_app_path', $defaultAppPath);
}
}