2016-12-27 6 views
2

Мне нужно реализовать способ очистки кеша redis из файла composer.json после развертывания. Команда Redis SNC расслоением это:Как автоматизировать очистку кеша Redis после развертывания?

namespace Snc\RedisBundle\Command; 
/** 
* Symfony command to execute redis flushall 
* 
*/ 
class RedisFlushallCommand extends RedisBaseCommand 
{ 
/** 
* {@inheritDoc} 
*/ 
protected function configure() 
{ 
    parent::configure(); 
    $this->setName('redis:flushall') 
     ->setDescription('Flushes the redis database using the redis flushall command'); 
} 
/** 
* {@inheritDoc} 
*/ 
protected function executeRedisCommand() 
{ 
    if ($this->proceedingAllowed()) { 
     $this->flushAll(); 
    } else { 
     $this->output->writeln('<error>Flushing cancelled</error>'); 
    } 
} 
/** 
* Flushing all redis databases 
*/ 
private function flushAll() 
{ 
    $this->redisClient->flushall(); 
    $this->output->writeln('<info>All redis databases flushed</info>'); 
} 
} 

Как включить это в composer.json файл в корневом файле исходного кода? Я знаю, что, возможно, это очень простой способ сделать это, но я просто не могу понять это.

ответ

2

Вы можете создать свой собственный обработчик композитор сценария:

// src/AppBundle/ScriptHandler.php 
namespace AppBundle; 

use Symfony\Bundle\FrameworkBundle\Console\Application; 
use Symfony\Component\Console\Input\ArrayInput; 
use Symfony\Component\Console\Output\ConsoleOutput; 

class ScriptHandler 
{ 
    public static function clearRedisCache() 
    {  
     (new Application(new \AppKernel('dev', true))) 
      ->get('redis:flushall') 
      ->run(new ArrayInput(['--client' => 'YOURCLIENT']), new ConsoleOutput()); 
    } 
} 

Затем зарегистрировать его в composer.json:

"scripts": { 
    "post-install-cmd": [ 
     "AppBundle\\ScriptHandler::clearRedisCache" 
     // ... 
    ] 
} 

Вы можете попробовать его с помощью следующей команды:

$ composer run-script post-install-cmd 

Надеюсь, что это сработает!

+1

Да, он отлично поработал за вас так сильно за вашу помощь. Я действительно очень ценю это! – user6405037

+0

Не могли бы вы принять ответ, пожалуйста? Нужно щелкнуть по зеленой отметке – chalasr

+0

Извините, что я нажал на нее еще раз! – user6405037

Смежные вопросы