1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- <?php
- /*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- namespace Symfony\Bundle\FrameworkBundle\Command;
- use Symfony\Component\Console\Command\Command;
- use Symfony\Component\Console\Input\InputArgument;
- use Symfony\Component\Console\Input\InputInterface;
- use Symfony\Component\Console\Output\OutputInterface;
- use Symfony\Component\Console\Style\SymfonyStyle;
- use Symfony\Component\HttpKernel\CacheClearer\Psr6CacheClearer;
- /**
- * Delete an item from a cache pool.
- *
- * @author Pierre du Plessis <pdples@gmail.com>
- */
- final class CachePoolDeleteCommand extends Command
- {
- protected static $defaultName = 'cache:pool:delete';
- private $poolClearer;
- public function __construct(Psr6CacheClearer $poolClearer)
- {
- parent::__construct();
- $this->poolClearer = $poolClearer;
- }
- /**
- * {@inheritdoc}
- */
- protected function configure()
- {
- $this
- ->setDefinition([
- new InputArgument('pool', InputArgument::REQUIRED, 'The cache pool from which to delete an item'),
- new InputArgument('key', InputArgument::REQUIRED, 'The cache key to delete from the pool'),
- ])
- ->setDescription('Delete an item from a cache pool')
- ->setHelp(<<<'EOF'
- The <info>%command.name%</info> deletes an item from a given cache pool.
- %command.full_name% <pool> <key>
- EOF
- )
- ;
- }
- /**
- * {@inheritdoc}
- */
- protected function execute(InputInterface $input, OutputInterface $output): int
- {
- $io = new SymfonyStyle($input, $output);
- $pool = $input->getArgument('pool');
- $key = $input->getArgument('key');
- $cachePool = $this->poolClearer->getPool($pool);
- if (!$cachePool->hasItem($key)) {
- $io->note(sprintf('Cache item "%s" does not exist in cache pool "%s".', $key, $pool));
- return 0;
- }
- if (!$cachePool->deleteItem($key)) {
- throw new \Exception(sprintf('Cache item "%s" could not be deleted.', $key));
- }
- $io->success(sprintf('Cache item "%s" was successfully deleted.', $key));
- return 0;
- }
- }
|