diff --git a/Api/ProgressHandler/ProgressDataInterface.php b/Api/ProgressHandler/ProgressDataInterface.php index 988d066..6edf34a 100644 --- a/Api/ProgressHandler/ProgressDataInterface.php +++ b/Api/ProgressHandler/ProgressDataInterface.php @@ -14,9 +14,20 @@ */ interface ProgressDataInterface { - const FIELD_CURRENT = 'current'; - const FIELD_TOTAL = 'total'; - const FIELD_PROCESS_TYPE = 'process_type'; + /** + * @var string + */ + public const FIELD_CURRENT = 'current'; + + /** + * @var string + */ + public const FIELD_TOTAL = 'total'; + + /** + * @var string + */ + public const FIELD_PROCESS_TYPE = 'process_type'; /** * @return int|null diff --git a/Api/VarnishPurgerInterface.php b/Api/VarnishActionManagerInterface.php similarity index 93% rename from Api/VarnishPurgerInterface.php rename to Api/VarnishActionManagerInterface.php index 574af60..974d878 100644 --- a/Api/VarnishPurgerInterface.php +++ b/Api/VarnishActionManagerInterface.php @@ -2,7 +2,7 @@ declare(strict_types=1); /** - * File:VarnishPurgerInterface.php + * File:VarnishActionManagerInterface.php * * @author Maciej Sławik * @copyright Copyright (C) 2019 Lizard Media (http://lizardmedia.pl) @@ -13,10 +13,10 @@ use Magento\Catalog\Api\Data\ProductInterface; /** - * Interface VarnishPurgerInterface + * Interface VarnishActionManagerInterface * @package LizardMedia\VarnishWarmer\Api */ -interface VarnishPurgerInterface +interface VarnishActionManagerInterface { /** * Purge * diff --git a/Block/Adminhtml/PurgeMultiple/Form.php b/Block/Adminhtml/PurgeMultiple/Form.php index d585355..5fc5033 100644 --- a/Block/Adminhtml/PurgeMultiple/Form.php +++ b/Block/Adminhtml/PurgeMultiple/Form.php @@ -1,4 +1,7 @@ _blockGroup = 'LizardMedia_VarnishWarmer'; $this->_controller = 'adminhtml_purgeMultiple_form'; @@ -34,15 +39,15 @@ protected function _construct() /** * @return Phrase */ - public function getHeaderText() + public function getHeaderText(): Phrase { return __('Varnish: purge a group of URLs'); } /** - * @return null + * @return void */ - private function updateSaveButton() + private function updateSaveButton(): void { $this->buttonList->update( 'save', @@ -52,9 +57,9 @@ private function updateSaveButton() } /** - * @return null + * @return void */ - private function removeButtons() + private function removeButtons(): void { $this->buttonList->remove('delete'); $this->buttonList->remove('back'); diff --git a/Block/Adminhtml/PurgeMultiple/Form/Edit/Form.php b/Block/Adminhtml/PurgeMultiple/Form/Edit/Form.php index a02191b..76f2ef0 100644 --- a/Block/Adminhtml/PurgeMultiple/Form/Edit/Form.php +++ b/Block/Adminhtml/PurgeMultiple/Form/Edit/Form.php @@ -1,4 +1,7 @@ setId('purgemultiple_form'); @@ -76,17 +82,18 @@ protected function _construct() } /** - * @return WidgetForm + * @return Form * @throws LocalizedException + * @SuppressWarnings(PHPMD.CamelCaseMethodName) */ - protected function _prepareForm() + protected function _prepareForm(): self { /** @var \Magento\Framework\Data\Form $form */ $form = $this->_formFactory->create( [ 'data' => [ 'id' => 'edit_form', - 'action' => $this->getFormTargerUrl(), + 'action' => $this->getFormTargetUrl(), 'method' => 'post' ] ] @@ -135,7 +142,7 @@ protected function _prepareForm() /** * @return string */ - private function getFormTargerUrl() + private function getFormTargetUrl(): string { return $this->_urlBuilder->getUrl('lizardmediavarnish/purgemultiple/run'); } diff --git a/Block/Adminhtml/PurgeSingle/Form.php b/Block/Adminhtml/PurgeSingle/Form.php index 904c3a8..d71b678 100644 --- a/Block/Adminhtml/PurgeSingle/Form.php +++ b/Block/Adminhtml/PurgeSingle/Form.php @@ -1,4 +1,7 @@ _blockGroup = 'LizardMedia_VarnishWarmer'; $this->_controller = 'adminhtml_purgeSingle_form'; @@ -34,15 +39,15 @@ protected function _construct() /** * @return Phrase */ - public function getHeaderText() + public function getHeaderText(): Phrase { return __('Varnish: purge single URL'); } /** - * @return null + * @return void */ - private function updateSaveButton() + private function updateSaveButton(): void { $this->buttonList->update( 'save', @@ -52,9 +57,9 @@ private function updateSaveButton() } /** - * @return null + * @return void */ - private function removeButtons() + private function removeButtons(): void { $this->buttonList->remove('delete'); $this->buttonList->remove('back'); diff --git a/Block/Adminhtml/PurgeSingle/Form/Edit/Form.php b/Block/Adminhtml/PurgeSingle/Form/Edit/Form.php index 1a2e839..356422b 100644 --- a/Block/Adminhtml/PurgeSingle/Form/Edit/Form.php +++ b/Block/Adminhtml/PurgeSingle/Form/Edit/Form.php @@ -1,4 +1,7 @@ setId('purgesingle_form'); @@ -72,17 +76,18 @@ protected function _construct() } /** - * @return WidgetForm + * @return Form * @throws LocalizedException + * @SuppressWarnings(PHPMD.CamelCaseMethodName) */ - protected function _prepareForm() + protected function _prepareForm(): self { /** @var \Magento\Framework\Data\Form $form */ $form = $this->_formFactory->create( [ 'data' => [ 'id' => 'edit_form', - 'action' => $this->getFormTargerUrl(), + 'action' => $this->getFormTargetUrl(), 'method' => 'post' ] ] @@ -142,7 +147,7 @@ protected function _prepareForm() /** * @return string */ - private function getFormTargerUrl() + private function getFormTargetUrl(): string { return $this->_urlBuilder->getUrl('lizardmediavarnish/purgesingle/run'); } diff --git a/CHANGELOG.md b/CHANGELOG.md index 535582b..bae828b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,10 @@ ### 2.1. ### * fix for incorrect method for purging process * adding logging for error request -* minor refactor \ No newline at end of file +* minor refactor + +### 2.2 ### +* major refactor +* adding missing return types/types hints +* support PHP 7.3 +* fix for case when urls uses store codes inside after domain \ No newline at end of file diff --git a/Console/Command/AbstractPurgeCommand.php b/Console/Command/AbstractPurgeCommand.php index e2aa4c5..b54bfa7 100644 --- a/Console/Command/AbstractPurgeCommand.php +++ b/Console/Command/AbstractPurgeCommand.php @@ -11,9 +11,9 @@ namespace LizardMedia\VarnishWarmer\Console\Command; -use LizardMedia\VarnishWarmer\Api\VarnishPurgerInterface; +use LizardMedia\VarnishWarmer\Api\VarnishActionManagerInterface; use Symfony\Component\Console\Command\Command; -use Magento\Framework\App\State; +use Symfony\Component\Console\Input\InputInterface; /** * Class AbstractPurgeCommand @@ -27,20 +27,33 @@ class AbstractPurgeCommand extends Command protected const STORE_VIEW_ID = 'store'; /** - * @var VarnishPurgerInterface + * @var VarnishActionManagerInterface */ - protected $varnishPurger; + protected $varnishActionManager; /** * AbstractPurgeCommand constructor. - * @param VarnishPurgerInterface $varnishPurger + * @param VarnishActionManagerInterface $varnishActionManager * @param null $name */ public function __construct( - VarnishPurgerInterface $varnishPurger, + VarnishActionManagerInterface $varnishActionManager, $name = null ) { parent::__construct($name); - $this->varnishPurger = $varnishPurger; + $this->varnishActionManager = $varnishActionManager; + } + + /** + * @param InputInterface $input + * @return void + */ + protected function passStoreViewIfSet(InputInterface $input): void + { + $storeViewId = $input->getOption(self::STORE_VIEW_ID); + + if (!empty($storeViewId)) { + $this->varnishActionManager->setStoreViewId((int) $storeViewId); + } } } diff --git a/Console/Command/PurgeAllCommand.php b/Console/Command/PurgeAllCommand.php index 57306db..50b4cb7 100644 --- a/Console/Command/PurgeAllCommand.php +++ b/Console/Command/PurgeAllCommand.php @@ -24,7 +24,7 @@ class PurgeAllCommand extends AbstractPurgeCommand /** * @var string */ - private const CLI_COMMAND = 'lm-varnish:cache-purge-all'; + public const CLI_COMMAND = 'lm-varnish:cache-purge-all'; /** * @return void @@ -44,10 +44,11 @@ protected function configure(): void * @param InputInterface $input * @param OutputInterface $output * @return void + * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ protected function execute(InputInterface $input, OutputInterface $output): void { - $this->varnishPurger->setStoreViewId((int) $input->getOption(self::STORE_VIEW_ID)); - $this->varnishPurger->purgeAll(); + $this->passStoreViewIfSet($input); + $this->varnishActionManager->purgeAll(); } } diff --git a/Console/Command/PurgeGeneralCommand.php b/Console/Command/PurgeGeneralCommand.php index 15f21bb..5708058 100644 --- a/Console/Command/PurgeGeneralCommand.php +++ b/Console/Command/PurgeGeneralCommand.php @@ -24,7 +24,7 @@ class PurgeGeneralCommand extends AbstractPurgeCommand /** * @var string */ - private const CLI_COMMAND = 'lm-varnish:cache-purge-general'; + public const CLI_COMMAND = 'lm-varnish:cache-purge-general'; /** * @return void @@ -44,10 +44,11 @@ protected function configure(): void * @param InputInterface $input * @param OutputInterface $output * @return void + * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ protected function execute(InputInterface $input, OutputInterface $output): void { - $this->varnishPurger->setStoreViewId((int) $input->getOption(self::STORE_VIEW_ID)); - $this->varnishPurger->purgeGeneral(); + $this->passStoreViewIfSet($input); + $this->varnishActionManager->purgeGeneral(); } } diff --git a/Console/Command/PurgeHomepageCommand.php b/Console/Command/PurgeHomepageCommand.php index bcbf8d3..92087e8 100644 --- a/Console/Command/PurgeHomepageCommand.php +++ b/Console/Command/PurgeHomepageCommand.php @@ -24,7 +24,7 @@ class PurgeHomepageCommand extends AbstractPurgeCommand /** * @var string */ - private const CLI_COMMAND = 'lm-varnish:cache-purge-homepage'; + public const CLI_COMMAND = 'lm-varnish:cache-purge-homepage'; /** * @return void @@ -41,11 +41,14 @@ protected function configure(): void } /** - * {@inheritdoc} + * @param InputInterface $input + * @param OutputInterface $output + * @return void + * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ protected function execute(InputInterface $input, OutputInterface $output): void { - $this->varnishPurger->setStoreViewId((int) $input->getOption(self::STORE_VIEW_ID)); - $this->varnishPurger->purgeHomepage(); + $this->passStoreViewIfSet($input); + $this->varnishActionManager->purgeHomepage(); } } diff --git a/Console/Command/PurgeUrlCommand.php b/Console/Command/PurgeUrlCommand.php index 4e79515..acaa8b0 100644 --- a/Console/Command/PurgeUrlCommand.php +++ b/Console/Command/PurgeUrlCommand.php @@ -11,9 +11,9 @@ namespace LizardMedia\VarnishWarmer\Console\Command; -use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; /** @@ -25,7 +25,7 @@ class PurgeUrlCommand extends AbstractPurgeCommand /** * @var string */ - private const CLI_COMMAND = 'lm-varnish:cache-refresh-url'; + public const CLI_COMMAND = 'lm-varnish:cache-refresh-url'; /** * @var string @@ -51,12 +51,15 @@ protected function configure(): void } /** - * {@inheritdoc} + * @param InputInterface $input + * @param OutputInterface $output + * @return void + * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ protected function execute(InputInterface $input, OutputInterface $output): void { $url = $input->getArgument(self::URL_ARGUMENT); - $this->varnishPurger->setStoreViewId((int) $input->getOption(self::STORE_VIEW_ID)); - $this->varnishPurger->purgeAndRegenerateUrl($url); + $this->passStoreViewIfSet($input); + $this->varnishActionManager->purgeAndRegenerateUrl($url); } } diff --git a/Console/Command/PurgeWildcardCommand.php b/Console/Command/PurgeWildcardCommand.php index 9e31b3d..e2f91b8 100644 --- a/Console/Command/PurgeWildcardCommand.php +++ b/Console/Command/PurgeWildcardCommand.php @@ -24,7 +24,7 @@ class PurgeWildcardCommand extends AbstractPurgeCommand /** * @var string */ - private const CLI_COMMAND = 'lm-varnish:cache-purge-wildcard'; + public const CLI_COMMAND = 'lm-varnish:cache-purge-wildcard'; /** * @return void @@ -44,10 +44,11 @@ protected function configure(): void * @param InputInterface $input * @param OutputInterface $output * @return void + * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ protected function execute(InputInterface $input, OutputInterface $output): void { - $this->varnishPurger->setStoreViewId((int) $input->getOption(self::STORE_VIEW_ID)); - $this->varnishPurger->purgeWildcard(); + $this->passStoreViewIfSet($input); + $this->varnishActionManager->purgeWildcard(); } } diff --git a/Console/Command/PurgeWildcardWithoutRegenerationCommand.php b/Console/Command/PurgeWildcardWithoutRegenerationCommand.php index c88e137..d09a324 100644 --- a/Console/Command/PurgeWildcardWithoutRegenerationCommand.php +++ b/Console/Command/PurgeWildcardWithoutRegenerationCommand.php @@ -24,7 +24,7 @@ class PurgeWildcardWithoutRegenerationCommand extends AbstractPurgeCommand /** * @var string */ - private const CLI_COMMAND = 'lm-varnish:cache-purge-force'; + public const CLI_COMMAND = 'lm-varnish:cache-purge-force'; /** * @return void @@ -44,10 +44,11 @@ protected function configure(): void * @param InputInterface $input * @param OutputInterface $output * @return void + * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ protected function execute(InputInterface $input, OutputInterface $output): void { - $this->varnishPurger->setStoreViewId((int) $input->getOption(self::STORE_VIEW_ID)); - $this->varnishPurger->purgeWildcardWithoutRegen(); + $this->passStoreViewIfSet($input); + $this->varnishActionManager->purgeWildcardWithoutRegen(); } } diff --git a/Console/Command/RegenerateProductsCacheCommand.php b/Console/Command/RegenerateProductsCacheCommand.php index ecbf9b2..c35f865 100644 --- a/Console/Command/RegenerateProductsCacheCommand.php +++ b/Console/Command/RegenerateProductsCacheCommand.php @@ -12,8 +12,8 @@ namespace LizardMedia\VarnishWarmer\Console\Command; use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Console\Input\InputOption; +use Symfony\Component\Console\Output\OutputInterface; /** * Class RegenerateProductsCacheCommand @@ -24,10 +24,10 @@ class RegenerateProductsCacheCommand extends AbstractPurgeCommand /** * @var string */ - private const CLI_COMMAND = 'lm-varnish:regenerate-products-cache'; + public const CLI_COMMAND = 'lm-varnish:regenerate-products-cache'; /** - * {@inheritdoc} + * @return void */ protected function configure(): void { @@ -42,11 +42,14 @@ protected function configure(): void } /** - * {@inheritdoc} + * @param InputInterface $input + * @param OutputInterface $output + * @return void + * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ protected function execute(InputInterface $input, OutputInterface $output): void { - $this->varnishPurger->setStoreViewId((int) $input->getOption(self::STORE_VIEW_ID)); - $this->varnishPurger->purgeAndRegenerateProducts(); + $this->passStoreViewIfSet($input); + $this->varnishActionManager->purgeAndRegenerateProducts(); } } diff --git a/Controller/Adminhtml/Purge.php b/Controller/Adminhtml/Purge.php index 144bc83..26e80c5 100644 --- a/Controller/Adminhtml/Purge.php +++ b/Controller/Adminhtml/Purge.php @@ -1,4 +1,7 @@ messageManager = $context->getMessageManager(); $this->directoryList = $directoryList; - $this->varnishPurger = $varnishPurger; + $this->varnishActionManager = $varnishActionManager; $this->queueProgressLogger = $queueProgressLogger; $this->queueProgressBarRenderer = $queueProgressBarRenderer; $this->messageFactory = $messageFactory; } + /** + * @return Redirect + */ + public function execute(): Redirect + { + if (!$this->isLocked()) { + $this->runCommand(); + $this->addProcessNotification(); + } else { + $this->addProcessLockWarning(); + } + + return $this->getRedirect(); + } + /** * @return string */ @@ -100,17 +119,17 @@ protected function getRedirect(): Redirect } /** - * @return null + * @return void */ - protected function addProcessNotification() + protected function addProcessNotification(): void { $this->messageManager->addNoticeMessage(__('LizardMedia: cache is purged in background, it may take a while.')); } /** - * @return null + * @return void */ - protected function addProcessLockWarning() + protected function addProcessLockWarning(): void { $this->messageManager->addMessage( $this->messageFactory->create( @@ -121,7 +140,7 @@ protected function addProcessLockWarning() . '(started at: %s), ' . 'cannot run again until it finishes.
%s' ), - $this->varnishPurger->getLockMessage(), + $this->varnishActionManager->getLockMessage(), $this->queueProgressBarRenderer->getProgressHtml($this->queueProgressLogger->getProgressData()) ) ) @@ -133,10 +152,10 @@ protected function addProcessLockWarning() */ protected function runCommand(): void { - $additional_params = $this->getAdditionalParams(); + $additionalParams = $this->getAdditionalParams(); $baseDir = $this->directoryList->getRoot(); $cliCommand = $this->getCliCommand(); - $cmd = "nohup {$baseDir}/bin/magento {$cliCommand}{$additional_params}>/dev/null 2>&1 &"; + $cmd = "nohup {$baseDir}/bin/magento {$cliCommand}{$additionalParams}>/dev/null 2>&1 &"; exec($cmd); } @@ -145,7 +164,7 @@ protected function runCommand(): void */ protected function isLocked(): bool { - return $this->varnishPurger->isLocked(); + return $this->varnishActionManager->isLocked(); } /** @@ -154,9 +173,11 @@ protected function isLocked(): bool protected function getAdditionalParams(): string { $additionalParams = ''; + if ($this->getRequest()->getParam(Form::STORE_VIEW_FORM_PARAM)) { $additionalParams .= ' --store=' . $this->getRequest()->getParam(Form::STORE_VIEW_FORM_PARAM); } + return $additionalParams; } } diff --git a/Controller/Adminhtml/Purge/PurgeAll.php b/Controller/Adminhtml/Purge/PurgeAll.php index 6de3127..30764b2 100644 --- a/Controller/Adminhtml/Purge/PurgeAll.php +++ b/Controller/Adminhtml/Purge/PurgeAll.php @@ -1,4 +1,7 @@ isLocked()) { - $this->runCommand(); - $this->addProcessNotification(); - } else { - $this->addProcessLockWarning(); - } - - return $this->getRedirect(); - } - /** * @return string */ diff --git a/Controller/Adminhtml/Purge/PurgeGeneral.php b/Controller/Adminhtml/Purge/PurgeGeneral.php index 928076e..51ae0ed 100644 --- a/Controller/Adminhtml/Purge/PurgeGeneral.php +++ b/Controller/Adminhtml/Purge/PurgeGeneral.php @@ -1,4 +1,7 @@ isLocked()) { - $this->runCommand(); - $this->addProcessNotification(); - } else { - $this->addProcessLockWarning(); - } - - return $this->getRedirect(); - } - /** * @return string */ diff --git a/Controller/Adminhtml/Purge/PurgeHomepage.php b/Controller/Adminhtml/Purge/PurgeHomepage.php index 40282cf..df93b2f 100644 --- a/Controller/Adminhtml/Purge/PurgeHomepage.php +++ b/Controller/Adminhtml/Purge/PurgeHomepage.php @@ -1,4 +1,7 @@ isLocked()) { - $this->runCommand(); - $this->addProcessNotification(); - } else { - $this->addProcessLockWarning(); - } - - return $this->getRedirect(); - } - /** * @return string */ diff --git a/Controller/Adminhtml/Purge/PurgeWildcard.php b/Controller/Adminhtml/Purge/PurgeWildcard.php index 4523897..d009133 100644 --- a/Controller/Adminhtml/Purge/PurgeWildcard.php +++ b/Controller/Adminhtml/Purge/PurgeWildcard.php @@ -1,4 +1,7 @@ isLocked()) { - $this->runCommand(); - $this->addProcessNotification(); - } else { - $this->addProcessLockWarning(); - } - - return $this->getRedirect(); - } - /** * @return string */ diff --git a/Controller/Adminhtml/Purge/PurgeWildcardForce.php b/Controller/Adminhtml/Purge/PurgeWildcardForce.php index bf9785c..4ea2a78 100644 --- a/Controller/Adminhtml/Purge/PurgeWildcardForce.php +++ b/Controller/Adminhtml/Purge/PurgeWildcardForce.php @@ -1,4 +1,7 @@ runCommand(); $this->addProcessNotification(); @@ -29,11 +33,11 @@ public function execute() } /** - * @return null + * @return void */ - protected function addProcessNotification() + protected function addProcessNotification(): void { - $this->messageManager->addNotice( + $this->messageManager->addNoticeMessage( __('LizardMedia: cache is purged in background, it may take up to 20 seconds.') ); } diff --git a/Controller/Adminhtml/PurgeMultiple/Form.php b/Controller/Adminhtml/PurgeMultiple/Form.php index b6d60c8..b3123cc 100644 --- a/Controller/Adminhtml/PurgeMultiple/Form.php +++ b/Controller/Adminhtml/PurgeMultiple/Form.php @@ -1,4 +1,5 @@ initAction(); $resultPage->getConfig()->getTitle()->prepend(__('Varnish: purge group of URLs')); @@ -53,7 +52,7 @@ public function execute() /** * @return Page */ - protected function initAction() + protected function initAction(): Page { /** @var Page $resultPage */ $resultPage = $this->resultPageFactory->create(); diff --git a/Controller/Adminhtml/PurgeMultiple/Run.php b/Controller/Adminhtml/PurgeMultiple/Run.php index 528ccfd..4d041da 100644 --- a/Controller/Adminhtml/PurgeMultiple/Run.php +++ b/Controller/Adminhtml/PurgeMultiple/Run.php @@ -1,4 +1,5 @@ getRequest()->getParam(PurgeMultipleForm::STORE_VIEW_FORM_PARAM); $destinationUrl = $this->getRequest()->getParam(PurgeMultipleForm::PROCESS_URL_FORM_PARAM); - $this->_redirect( + + return $this->_redirect( $destinationUrl, [ PurgeSingleForm::STORE_VIEW_FORM_PARAM => $storeId diff --git a/Controller/Adminhtml/PurgeSingle/Form.php b/Controller/Adminhtml/PurgeSingle/Form.php index 0c9948b..4c65c5a 100644 --- a/Controller/Adminhtml/PurgeSingle/Form.php +++ b/Controller/Adminhtml/PurgeSingle/Form.php @@ -1,4 +1,7 @@ initAction(); $resultPage->getConfig()->getTitle()->prepend(__('Varnish: purge single URL')); @@ -51,7 +54,7 @@ public function execute() /** * @return Page */ - protected function initAction() + protected function initAction(): Page { /** @var Page $resultPage */ $resultPage = $this->resultPageFactory->create(); diff --git a/Controller/Adminhtml/PurgeSingle/Run.php b/Controller/Adminhtml/PurgeSingle/Run.php index 044d7fc..07a6312 100644 --- a/Controller/Adminhtml/PurgeSingle/Run.php +++ b/Controller/Adminhtml/PurgeSingle/Run.php @@ -1,4 +1,7 @@ isForcePurge() || !$this->isLocked()) { $this->runCommand(); @@ -48,7 +50,7 @@ protected function getCliCommand(): string */ protected function getAdditionalParams(): string { - $url = (string)$this->getRequest()->getParam(Form::URL_FORM_PARAM); + $url = (string) $this->getRequest()->getParam(Form::URL_FORM_PARAM); $additionalParams = " \"{$url}\""; $additionalParams .= parent::getAdditionalParams(); return $additionalParams; diff --git a/LICENSE b/LICENSE.md similarity index 100% rename from LICENSE rename to LICENSE.md diff --git a/Logger/Handler/ErrorHandler.php b/Logger/Handler/ErrorHandler.php deleted file mode 100644 index a5598f1..0000000 --- a/Logger/Handler/ErrorHandler.php +++ /dev/null @@ -1,29 +0,0 @@ - - * @copyright Copyright (C) 2019 Lizard Media (http://lizardmedia.pl) - */ - -namespace LizardMedia\VarnishWarmer\Logger\Handler; - -use Magento\Framework\Logger\Handler\Base; -use Monolog\Logger; - -/** - * Class ErrorHandler - * @package LizardMedia\VarnishWarmer\Logger\Handler - */ -class ErrorHandler extends Base -{ - /** - * @var string - */ - protected $fileName = '/var/log/varnish/error.log'; - - /** - * @var int - */ - protected $loggerType = Logger::ERROR; -} diff --git a/Logger/Handler/PurgeHandler.php b/Logger/Handler/PurgeHandler.php deleted file mode 100644 index 78cc6bb..0000000 --- a/Logger/Handler/PurgeHandler.php +++ /dev/null @@ -1,29 +0,0 @@ - - * @copyright Copyright (C) 2019 Lizard Media (http://lizardmedia.pl) - */ - -namespace LizardMedia\VarnishWarmer\Logger\Handler; - -use Magento\Framework\Logger\Handler\Base; -use Monolog\Logger; - -/** - * Class PurgeHandler - * @package LizardMedia\VarnishWarmer\Logger\Handler - */ -class PurgeHandler extends Base -{ - /** - * @var string - */ - protected $fileName = '/var/log/varnish/purge.log'; - - /** - * @var int - */ - protected $loggerType = Logger::DEBUG; -} diff --git a/Logger/Handler/RegenerationHandler.php b/Logger/Handler/RegenerationHandler.php deleted file mode 100644 index d7dad16..0000000 --- a/Logger/Handler/RegenerationHandler.php +++ /dev/null @@ -1,29 +0,0 @@ - - * @copyright Copyright (C) 2019 Lizard Media (http://lizardmedia.pl) - */ - -namespace LizardMedia\VarnishWarmer\Logger\Handler; - -use Magento\Framework\Logger\Handler\Base; -use Monolog\Logger; - -/** - * Class RegenerationHandler - * @package LizardMedia\VarnishWarmer\Logger\Handler - */ -class RegenerationHandler extends Base -{ - /** - * @var string - */ - protected $fileName = '/var/log/varnish/regeneration.log'; - - /** - * @var int - */ - protected $loggerType = Logger::DEBUG; -} diff --git a/Logger/PurgeLogger.php b/Logger/PurgeLogger.php deleted file mode 100644 index dd474eb..0000000 --- a/Logger/PurgeLogger.php +++ /dev/null @@ -1,20 +0,0 @@ - - * @copyright Copyright (C) 2019 Lizard Media (http://lizardmedia.pl) - */ - -namespace LizardMedia\VarnishWarmer\Logger; - -use Monolog\Logger; - -/** - * Class PurgeLogger - * @package LizardMedia\VarnishWarmer\Logger - */ -class PurgeLogger extends Logger -{ - -} diff --git a/Logger/RegenerationLogger.php b/Logger/RegenerationLogger.php deleted file mode 100644 index 735cd60..0000000 --- a/Logger/RegenerationLogger.php +++ /dev/null @@ -1,20 +0,0 @@ - - * @copyright Copyright (C) 2019 Lizard Media (http://lizardmedia.pl) - */ - -namespace LizardMedia\VarnishWarmer\Logger; - -use Monolog\Logger; - -/** - * Class RegenerationLogger - * @package LizardMedia\VarnishWarmer\Logger - */ -class RegenerationLogger extends Logger -{ - -} diff --git a/Model/Config/GeneralConfigProvider.php b/Model/Config/GeneralConfigProvider.php index 0ee33e8..b2d497a 100644 --- a/Model/Config/GeneralConfigProvider.php +++ b/Model/Config/GeneralConfigProvider.php @@ -1,4 +1,7 @@ scopeConfig->getValue(self::XML_PATH_CONCURRENT_REGENERATION); + $configValue = (int) $this->scopeConfig->getValue(self::XML_PATH_CONCURRENT_REGENERATION); return $this->isMaxRegenerationProcessesConfigValid($configValue) ? $configValue : self::REGENERATION_PROCESSES_DEFAULT; @@ -67,7 +70,7 @@ public function getMaxConcurrentRegenerationProcesses(): int */ public function getMaxConcurrentPurgeProcesses(): int { - $configValue = (int)$this->scopeConfig->getValue(self::XML_PATH_CONCURRENT_PURGE); + $configValue = (int) $this->scopeConfig->getValue(self::XML_PATH_CONCURRENT_PURGE); return $this->isMaxPurgeProcessesConfigValid($configValue) ? $configValue : self::PURGE_PROCESSES_DEFAULT; diff --git a/Model/Config/PurgingConfigProvider.php b/Model/Config/PurgingConfigProvider.php index 6b8d1dd..8962da2 100644 --- a/Model/Config/PurgingConfigProvider.php +++ b/Model/Config/PurgingConfigProvider.php @@ -1,4 +1,7 @@ scopeConfig->getValue(self::XML_PATH_USE_CUSTOM_HOST); + return (bool) $this->scopeConfig->getValue(self::XML_PATH_USE_CUSTOM_HOST); } /** @@ -66,6 +69,6 @@ public function getCustomPurgeHosts(): array */ public function getAdditionalHostForHeader(): string { - return (string)$this->scopeConfig->getValue(self::XML_PATH_CUSTOM_HEADER_HOST); + return (string) $this->scopeConfig->getValue(self::XML_PATH_CUSTOM_HEADER_HOST); } } diff --git a/Model/FormDataProvider/MultipleUrlsPurgeCommandsProvider.php b/Model/FormDataProvider/MultipleUrlsPurgeCommandsProvider.php index 40bdd2a..6506589 100644 --- a/Model/FormDataProvider/MultipleUrlsPurgeCommandsProvider.php +++ b/Model/FormDataProvider/MultipleUrlsPurgeCommandsProvider.php @@ -1,4 +1,5 @@ addData($loggedDataArray); } catch (Exception $e) { } + return $progressData; } } diff --git a/Model/ProgressHandler/ProgressBarRenderer.php b/Model/ProgressHandler/ProgressBarRenderer.php index d1cabd0..ca2e87d 100644 --- a/Model/ProgressHandler/ProgressBarRenderer.php +++ b/Model/ProgressHandler/ProgressBarRenderer.php @@ -1,4 +1,7 @@ setData(self::FIELD_CURRENT, $current); } @@ -44,9 +47,9 @@ public function getTotal() /** * @param int $total - * @return null + * @return void */ - public function setTotal(int $total) + public function setTotal(int $total): void { $this->setData(self::FIELD_TOTAL, $total); } @@ -61,9 +64,9 @@ public function getProcessType() /** * @param string $type - * @return null + * @return void */ - public function setProcessType(string $type) + public function setProcessType(string $type): void { $this->setData(self::FIELD_PROCESS_TYPE, $type); } diff --git a/Model/QueueHandler/AbstractQueueHandler.php b/Model/QueueHandler/AbstractQueueHandler.php index 8ed0a4a..fa64ed2 100644 --- a/Model/QueueHandler/AbstractQueueHandler.php +++ b/Model/QueueHandler/AbstractQueueHandler.php @@ -16,8 +16,8 @@ use LizardMedia\VarnishWarmer\Api\ProgressHandler\QueueProgressLoggerInterface; use LizardMedia\VarnishWarmer\Model\Adapter\ReactPHP\ClientFactory; use Psr\Log\LoggerInterface; -use React\EventLoop\LoopInterface; use React\EventLoop\Factory; +use React\EventLoop\LoopInterface; /** * Class AbstractQueueHandler @@ -121,11 +121,18 @@ protected function runQueue(): void /** * @param string $url + * @param int|null $code + * @param array|null $headers * @return void */ - protected function log(string $url): void + protected function log(string $url, ?int $code = null, ?array $headers = []): void { - $this->logger->debug("{$this->counter}/{$this->total}", ['url' => $url]); + $context = ['url' => $url, 'code' => $code, 'headers' => implode(',', $headers)]; + + $this->logger->debug( + "{$this->counter}/{$this->total}", + $context + ); } /** diff --git a/Model/QueueHandler/VarnishUrlPurger.php b/Model/QueueHandler/VarnishUrlPurger.php index 03946f3..125cc5d 100644 --- a/Model/QueueHandler/VarnishUrlPurger.php +++ b/Model/QueueHandler/VarnishUrlPurger.php @@ -25,6 +25,7 @@ /** * Class VarnishUrlPurger * @package LizardMedia\VarnishWarmer\Model\QueueHandler + * @SuppressWarnings(PHPMD.LongVariable) */ class VarnishUrlPurger extends AbstractQueueHandler implements VarnishUrlPurgerInterface { @@ -108,11 +109,14 @@ protected function createRequest(string $url): void }); $request->on('response', function (Response $response) use ($url) { + $responseCode = $response->getCode(); + $responseHeaders = $response->getHeaders(); + $response->on( 'end', - function () use ($url) { + function () use ($url, $responseCode, $responseHeaders) { $this->counter++; - $this->log($url); + $this->log($url, $responseCode, $responseHeaders); $this->logProgress(); } ); diff --git a/Model/UrlProvider/CategoryUrlProvider.php b/Model/UrlProvider/CategoryUrlProvider.php index a929730..4726369 100644 --- a/Model/UrlProvider/CategoryUrlProvider.php +++ b/Model/UrlProvider/CategoryUrlProvider.php @@ -1,4 +1,7 @@ categoryCollectionFactory->create(); $categoryCollection->addFieldToFilter( 'is_active', diff --git a/Model/UrlProvider/ProductUrlProvider.php b/Model/UrlProvider/ProductUrlProvider.php index 45f4fb2..36dbcf4 100644 --- a/Model/UrlProvider/ProductUrlProvider.php +++ b/Model/UrlProvider/ProductUrlProvider.php @@ -1,4 +1,7 @@ productCollectionFactory->create(); $productCollection->addFieldToFilter( ProductInterface::VISIBILITY, diff --git a/Model/VarnishPurger.php b/Model/VarnishActionManager.php similarity index 72% rename from Model/VarnishPurger.php rename to Model/VarnishActionManager.php index e1979b6..6d743c1 100644 --- a/Model/VarnishPurger.php +++ b/Model/VarnishActionManager.php @@ -3,7 +3,7 @@ declare(strict_types=1); /** - * File:VarnishPurger.php + * File:VarnishActionManager.php * * @author Maciej Sławik * @author Bartosz Kubicki @@ -18,72 +18,97 @@ use LizardMedia\VarnishWarmer\Api\QueueHandler\VarnishUrlRegeneratorInterface; use LizardMedia\VarnishWarmer\Api\UrlProvider\CategoryUrlProviderInterface; use LizardMedia\VarnishWarmer\Api\UrlProvider\ProductUrlProviderInterface; -use LizardMedia\VarnishWarmer\Api\VarnishPurgerInterface; +use LizardMedia\VarnishWarmer\Api\VarnishActionManagerInterface; use LizardMedia\VarnishWarmer\Model\QueueHandler\VarnishUrlPurgerFactory; use LizardMedia\VarnishWarmer\Model\QueueHandler\VarnishUrlRegeneratorFactory; use Magento\Catalog\Api\Data\ProductInterface; use Magento\Framework\App\Config\ScopeConfigInterface; +use Magento\Framework\Exception\NoSuchEntityException; +use Magento\Store\Api\Data\StoreInterface; use Magento\Store\Model\ScopeInterface; use Magento\Store\Model\Store; +use Magento\Store\Model\StoreManagerInterface; /** - * Class VarnishPurger + * TODO: Refactor, decouple + * Class VarnishActionManager * @package LizardMedia\VarnishWarmer\Model + * @SuppressWarnings(PHPMD.LongVariable) */ -class VarnishPurger implements VarnishPurgerInterface +class VarnishActionManager implements VarnishActionManagerInterface { + /** + * @var int + */ + private const DEFAULT_FRONTEND_STORE_VIEW_ID = 1; + + /** + * @var array + */ + private $purgeBaseUrls; + + /** + * @var string + */ + private $regenBaseUrl; + + /** + * @var int + */ + private $storeViewId; + + /** + * @var bool + */ + private $isStoreCodeUsedInUrls; + + /** + * @var StoreInterface + */ + private $currentStoreView; + /** * @var VarnishUrlRegeneratorInterface */ - protected $varnishUrlRegenerator; + private $varnishUrlRegenerator; /** * @var VarnishUrlPurgerInterface */ - protected $varnishUrlPurger; + private $varnishUrlPurger; /** * @var LockInterface */ - protected $lockHandler; + private $lockHandler; /** * @var ScopeConfigInterface */ - protected $scopeConfig; + private $scopeConfig; /** * @var ProductUrlProviderInterface */ - protected $productUrlProvider; + private $productUrlProvider; /** * @var CategoryUrlProviderInterface */ - protected $categoryUrlProvider; + private $categoryUrlProvider; /** * @var PurgingConfigProviderInterface */ - protected $purgingConfigProvider; - - /** - * @var array - */ - protected $purgeBaseUrls; - - /** - * @var string - */ - protected $regenBaseUrl; + private $purgingConfigProvider; /** - * @var int + * @var StoreManagerInterface */ - protected $storeViewId; + private $storeManager; /** - * VarnishPurger constructor. + * VarnishActionManager constructor. * @param VarnishUrlRegeneratorFactory $varnishUrlRegeneratorFactory * @param VarnishUrlPurgerFactory $varnishUrlPurgerFactory * @param LockInterface $lockHandler @@ -91,6 +116,9 @@ class VarnishPurger implements VarnishPurgerInterface * @param ProductUrlProviderInterface $productUrlProvider * @param CategoryUrlProviderInterface $categoryUrlProvider * @param PurgingConfigProviderInterface $purgingConfigProvider + * @param StoreManagerInterface $storeManager + * @SuppressWarnings(PHPMD.LongVariable) + * @throws NoSuchEntityException */ public function __construct( VarnishUrlRegeneratorFactory $varnishUrlRegeneratorFactory, @@ -99,7 +127,8 @@ public function __construct( ScopeConfigInterface $scopeConfig, ProductUrlProviderInterface $productUrlProvider, CategoryUrlProviderInterface $categoryUrlProvider, - PurgingConfigProviderInterface $purgingConfigProvider + PurgingConfigProviderInterface $purgingConfigProvider, + StoreManagerInterface $storeManager ) { $this->lockHandler = $lockHandler; $this->scopeConfig = $scopeConfig; @@ -111,12 +140,16 @@ public function __construct( $this->varnishUrlRegenerator = $varnishUrlRegeneratorFactory->create(); /** @var VarnishUrlPurgerInterface varnishUrlPurger */ $this->varnishUrlPurger = $varnishUrlPurgerFactory->create(); + $this->storeManager = $storeManager; + $this->storeViewId = $this->getDefaultStoreViewId(); + $this->isStoreCodeUsedInUrls = $this->isStoreCodeUsedInUrls(); } /** * Purge * * Regen homepage, categories, products * @return void + * @throws NoSuchEntityException */ public function purgeWildcard(): void { @@ -134,6 +167,7 @@ public function purgeWildcard(): void * Purge * without any regeneration * Pass through lock * @return void + * @throws NoSuchEntityException */ public function purgeWildcardWithoutRegen(): void { @@ -145,6 +179,7 @@ public function purgeWildcardWithoutRegen(): void * Purge homepage, categories, products * Regen homepage, categories, products * @return void + * @throws NoSuchEntityException */ public function purgeAll(): void { @@ -162,6 +197,7 @@ public function purgeAll(): void * Purge homepage, categories * Regen homepage, categories * @return void + * @throws NoSuchEntityException */ public function purgeGeneral(): void { @@ -178,6 +214,7 @@ public function purgeGeneral(): void * Purge homepage * Regen homepage * @return void + * @throws NoSuchEntityException */ public function purgeHomepage(): void { @@ -191,6 +228,7 @@ public function purgeHomepage(): void /** * @return void + * @throws NoSuchEntityException */ public function purgeAndRegenerateProducts(): void { @@ -204,6 +242,7 @@ public function purgeAndRegenerateProducts(): void /** * @param string $url * @return void + * @throws NoSuchEntityException */ public function purgeAndRegenerateUrl(string $url): void { @@ -216,6 +255,7 @@ public function purgeAndRegenerateUrl(string $url): void /** * @param ProductInterface $product * @return void + * @throws NoSuchEntityException */ public function purgeProduct(ProductInterface $product): void { @@ -253,16 +293,42 @@ public function getLockMessage(): string return $this->lockHandler->getLockDate(); } + /** + * @return int + * @throws NoSuchEntityException + */ + private function getDefaultStoreViewId(): int + { + $defaultStoreView = $this->storeManager->getStore(self::DEFAULT_FRONTEND_STORE_VIEW_ID); + return $defaultStoreView instanceof StoreInterface + ? (int) $defaultStoreView->getId() + : 1; + } + + /** + * @return bool + */ + private function isStoreCodeUsedInUrls(): bool + { + if (empty($this->isStoreCodeUsedInUrls)) { + $this->isStoreCodeUsedInUrls = $this->scopeConfig->isSetFlag(Store::XML_PATH_STORE_IN_URL); + } + + return $this->isStoreCodeUsedInUrls; + } + /** * @param $relativeUrl * @param bool $autoRegenerate * @return void + * @throws NoSuchEntityException */ private function addUrlToPurge(string $relativeUrl, bool $autoRegenerate = false): void { foreach ($this->getPurgeBaseUrls() as $purgeBaseUrl) { - $url = $purgeBaseUrl . $relativeUrl; + $url = $purgeBaseUrl . $this->buildStoreCodePartIfUsed() . $relativeUrl; $this->varnishUrlPurger->addUrlToPurge($url); + if ($autoRegenerate) { $this->addUrlToRegenerate($relativeUrl); } @@ -272,19 +338,58 @@ private function addUrlToPurge(string $relativeUrl, bool $autoRegenerate = false /** * @param string $relativeUrl * @return void + * @throws NoSuchEntityException */ private function addUrlToRegenerate(string $relativeUrl): void { - $url = $this->getRegenBaseUrl() . $relativeUrl; + $url = $this->getRegenBaseUrl() . $this->buildStoreCodePartIfUsed() . $relativeUrl; $this->varnishUrlRegenerator->addUrlToRegenerate($url); } + /** + * @return string + * @throws NoSuchEntityException + */ + private function buildStoreCodePartIfUsed(): string + { + if ($this->isStoreCodeUsedInUrls) { + return sprintf('%s/', $this->getStoreCode()); + } + + return ''; + } + + /** + * @return string + * @throws NoSuchEntityException + */ + private function getStoreCode(): string + { + $currentStore = $this->getCurrentStoreView(); + return $currentStore->getCode(); + } + + /** + * @return StoreInterface + * @throws NoSuchEntityException + */ + private function getCurrentStoreView(): StoreInterface + { + if (!$this->currentStoreView instanceof StoreInterface) { + $this->currentStoreView = $this->storeManager->getStore($this->storeViewId); + } + + return $this->currentStoreView; + } + /** * @return void + * @throws NoSuchEntityException */ private function regenerateCategories(): void { $categories = $this->getCategories(); + foreach ($categories as $category) { $this->addUrlToRegenerate($category['request_path']); } @@ -292,10 +397,12 @@ private function regenerateCategories(): void /** * @return void + * @throws NoSuchEntityException */ private function processCategoriesPurgeAndRegenerate(): void { $categories = $this->getCategories(); + foreach ($categories as $category) { $this->addUrlToPurge($category['request_path'], true); } @@ -303,22 +410,26 @@ private function processCategoriesPurgeAndRegenerate(): void /** * @return void + * @throws NoSuchEntityException */ private function processProductsRegenerate(): void { $productUrls = $this->getAllProductsUrls(); - foreach ($productUrls as $key => $url) { + + foreach ($productUrls as $url) { $this->addUrlToRegenerate($url['request_path']); } } /** * @return void + * @throws NoSuchEntityException */ private function processProductsPurgeAndRegenerate(): void { $productUrls = $this->getAllProductsUrls(); - foreach ($productUrls as $key => $url) { + + foreach ($productUrls as $url) { $this->addUrlToPurge($url['request_path'], true); } } @@ -373,7 +484,7 @@ private function setPurgeBaseUrls(): void $this->purgeBaseUrls = $this->purgingConfigProvider->getCustomPurgeHosts(); } else { $baseUrl = $this->scopeConfig->getValue( - Store::XML_PATH_UNSECURE_BASE_URL, + Store::XML_PATH_SECURE_BASE_URL, ScopeInterface::SCOPE_STORE, $this->storeViewId ); @@ -393,7 +504,7 @@ private function setPurgeBaseUrls(): void private function setRegenBaseUrl(): void { $this->regenBaseUrl = (string) $this->scopeConfig->getValue( - Store::XML_PATH_UNSECURE_BASE_URL, + Store::XML_PATH_SECURE_BASE_URL, ScopeInterface::SCOPE_STORE, $this->storeViewId ); @@ -411,6 +522,7 @@ private function getPurgeBaseUrls(): array if (!$this->purgeBaseUrls) { $this->setPurgeBaseUrls(); } + return $this->purgeBaseUrls; } @@ -422,6 +534,7 @@ private function getRegenBaseUrl(): string if (!$this->regenBaseUrl) { $this->setRegenBaseUrl(); } + return $this->regenBaseUrl; } } diff --git a/README.md b/README.md index c23a302..95ae9e2 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ # Magento2 Varnish Cache Warmer Magento2 module for handling Varnish Cache cleaning and regenerating using admin panel -and CLI. It uses multiple threads to run the commands to minimize the time required +and CLI. It uses multiple process to run the commands to minimize the time required to run. ## Getting Started @@ -24,6 +24,10 @@ These instructions will get you a copy of the project up and running on your loc * Magento 2.3 * PHP 7.1/7.2 +##### For realease 2.2 +* Magento 2.3 +* PHP 7.1/7.2/7.3 + ### Installing #### Download the module @@ -70,7 +74,7 @@ The commands can be run using Magento built-in CLI: * ``lm-varnish:cache-purge-general`` - purges and regenerates homepage and categories * ``lm-varnish:cache-purge-wildcard`` - purges * and regenerates homepage, categories and products * ``lm-varnish:cache-purge-all`` - purges and regenerates homepage, categories and products -* ``lm-varnish:cache-purge-force`` - purges * without regenerating. Ommits lock check +* ``lm-varnish:cache-purge-force`` - purges * without regenerating. Omits lock check * ``lm-varnish:cache-purge-products`` - purges and regenerates products * ``lm-varnish:cache-refresh-url`` - purges and regenerates single URL given as argument @@ -82,7 +86,7 @@ php bin/magento lm-varnish:cache-refresh-url "*" --store=1 ## For developers -The number of threads used for purging and regenerating Varnish cache can be customized +The number of process used for purging and regenerating Varnish cache can be customized in the admin panel. The max number of processes is specified in ``LizardMedia\VarnishWarmer\Model\Config\GeneralConfigProvider`` If you have a powerful server you can modify those numbers to use more resources. @@ -98,6 +102,7 @@ We use [SemVer](http://semver.org/) for versioning. For the versions available, ## Authors * **Maciej Sławik** - *Initial work* - [Lizard Media](https://github.com/maciejslawik) +* **Bartosz Kubicki** - *Fixes & maintenance* - [Lizard Media](https://github.com/bartoszkubicki) See also the list of [contributors](https://github.com/lizardmedia/varnish-warmer-magento2/contributors) who participated in this project. diff --git a/composer.json b/composer.json index 8a0f1b6..4605b7f 100644 --- a/composer.json +++ b/composer.json @@ -2,12 +2,12 @@ "name": "lizardmedia/module-varnish-warmer", "description": "Varnish Cache Warmer Magento2 module by Lizard Media", "require": { - "php": "~7.1.0|~7.2.0", + "php": "~7.1.0|~7.2.0|~7.3.0", "react/http-client": "^0.5.9", "magento/framework": ">=102.0" }, "type": "magento2-module", - "version": "2.1.0", + "version": "2.2.0", "license": [ "MIT" ], diff --git a/etc/di.xml b/etc/di.xml index e5b9ef8..81c1923 100644 --- a/etc/di.xml +++ b/etc/di.xml @@ -59,55 +59,64 @@ - + - LizardMedia\VarnishWarmer\Logger\PurgeLogger + LizardMedia\VarnishWarmer\Logger\VirtualPurgeLogger - LizardMedia\VarnishWarmer\Logger\RegenerationLogger + LizardMedia\VarnishWarmer\Logger\VirtualRegenerationLogger - + - Magento\Framework\Filesystem\Driver\File + var/log/varnish/purge.log - - + + + - cachePurgeLogger - - LizardMedia\VarnishWarmer\Logger\Handler\PurgeHandler - LizardMedia\VarnishWarmer\Logger\Handler\ErrorHandler - + var/log/varnish/error.log - + - + - Magento\Framework\Filesystem\Driver\File + var/log/varnish/regeneration.log - - + + + - cacheRegenerationLogger - - LizardMedia\VarnishWarmer\Logger\Handler\RegenerationHandler + cachePurgeLogger + + LizardMedia\VarnishWarmer\Logger\Handler\VirtualPurgeHandler + LizardMedia\VarnishWarmer\Logger\Handler\VirtualErrorHandler - + + + + + cachePurgeLogger + + LizardMedia\VarnishWarmer\Logger\Handler\VirtualRegenerationHandler + + + \ No newline at end of file diff --git a/etc/module.xml b/etc/module.xml index 4f80ce3..fcc3182 100644 --- a/etc/module.xml +++ b/etc/module.xml @@ -4,6 +4,6 @@ @copyright Copyright (C) 2019 Lizard Media (http://lizardmedia.pl) --> - + \ No newline at end of file diff --git a/registration.php b/registration.php index aba50f1..9b3cde6 100644 --- a/registration.php +++ b/registration.php @@ -6,8 +6,11 @@ * @author Maciej Sławik * @copyright Copyright (C) 2019 Lizard Media (http://lizardmedia.pl) */ -\Magento\Framework\Component\ComponentRegistrar::register( - \Magento\Framework\Component\ComponentRegistrar::MODULE, + +use Magento\Framework\Component\ComponentRegistrar; + +ComponentRegistrar::register( + ComponentRegistrar::MODULE, 'LizardMedia_VarnishWarmer', __DIR__ );