custom/plugins/P2LabProductVideo/src/P2LabProductVideo.php line 19

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace P2Lab\ProductVideo;
  3. use P2Lab\ProductVideo\Bootstrap\Lifecycle;
  4. use P2Lab\ProductVideo\Compatibility\DependencyLoader;
  5. use Shopware\Core\Framework\Plugin;
  6. use Shopware\Core\Framework\Plugin\Context\ActivateContext;
  7. use Shopware\Core\Framework\Plugin\Context\DeactivateContext;
  8. use Shopware\Core\Framework\Plugin\Context\InstallContext;
  9. use Shopware\Core\Framework\Plugin\Context\UpdateContext;
  10. use Shopware\Core\Framework\Plugin\Context\UninstallContext;
  11. use Symfony\Component\DependencyInjection\ContainerBuilder;
  12. use Symfony\Component\Routing\Loader\Configurator\RoutingConfigurator;
  13. use Symfony\Component\Filesystem\Filesystem;
  14. use Shopware\Core\Kernel;
  15. class P2LabProductVideo extends Plugin
  16. {
  17.     public const PLUGIN_NAME 'P2LabProductVideo';
  18.     public function install(InstallContext $context): void
  19.     {
  20.         parent::install($context);
  21.         $this->lifecycle()->install($context);
  22.     }
  23.     public function postInstall(InstallContext $context): void
  24.     {
  25.         parent::postInstall($context);
  26.         $this->lifecycle()->postInstall$context );
  27.     }
  28.     public function update(UpdateContext $context): void
  29.     {
  30.         parent::update($context);
  31.         $this->lifecycle()->update$context );
  32.     }
  33.     public function activate(ActivateContext $context): void
  34.     {
  35.         parent::activate($context);
  36.         $this->lifecycle()->activate$context );
  37.     }
  38.     public function deactivate(DeactivateContext $context): void
  39.     {
  40.         parent::deactivate($context);
  41.         $this->lifecycle()->deactivate$context );
  42.     }
  43.     public function uninstall(UninstallContext $context): void
  44.     {
  45.         parent::uninstall($context);
  46.         if ( $context->keepUserData() ) {
  47.             return;
  48.         }
  49.         
  50.         $this->lifecycle()->uninstall$context );
  51.     }
  52.     public function build(ContainerBuilder $container): void
  53.     {
  54.         parent::build($container);
  55.         $this->container $container;
  56.         $this->dependencyLoader()->loadServices();
  57.     }
  58.     public function configureRoutes(RoutingConfigurator $routesstring $environment): void
  59.     {
  60.         if (!$this->isActive()) {
  61.             return;
  62.         }
  63.         /** @var string $routesPath */
  64.         $routesPath $this->dependencyLoader()->getRoutesPath($this->getPath());
  65.         /** @var Filesystem $fileSystem */
  66.         $fileSystem = new Filesystem();
  67.         if ($fileSystem->exists($routesPath)) {
  68.             $routesPath .= '/{routes}';
  69.             $routes->import($routesPath Kernel::CONFIG_EXTS'glob');
  70.         }
  71.     }
  72.     private function lifecycle() {        
  73.         return new Lifecycle$this->container );
  74.     }
  75.     private function dependencyLoader() {
  76.         return new DependencyLoader$this->container );
  77.     }
  78. }