* @copyright Copyright (c) 2024 Samuel Marshall / JCH Optimize * @license GNU/GPLv3, or later. See LICENSE file * * If LICENSE file missing, see . */ namespace JchOptimize\WordPress\Service; use _JchOptimizeVendor\V91\Joomla\DI\Container; use _JchOptimizeVendor\V91\Joomla\DI\ServiceProviderInterface; use _JchOptimizeVendor\V91\Joomla\Input\Input; use _JchOptimizeVendor\V91\Joomla\Renderer\RendererInterface; use JchOptimize\Core\Admin\HtmlCrawler; use JchOptimize\Core\Html\HtmlProcessor; use JchOptimize\Core\Mvc\View; use JchOptimize\Core\Registry; use JchOptimize\WordPress\Controller\CriticalJsAutoSave; use JchOptimize\WordPress\Controller\CriticalJsTableBody; use JchOptimize\WordPress\Model\CriticalJsConfigureHelper; use JchOptimize\WordPress\Model\PopulateModalBody; class CriticalJsConfigureHelperProvider implements ServiceProviderInterface { public function register(Container $container): void { $container->alias(CriticalJsAutoSave::class, 'criticaljsautosave') ->share('criticaljsautosave', [$this, 'getControllerCriticalJsAutoSaveService']); $container->alias(CriticalJsTableBody::class, 'criticaljstablebody') ->share('criticaljstablebody', [$this, 'getControllerCriticalJsTableBodyService']); $container->share(CriticalJsConfigureHelper::class, [$this, 'getModelCriticalJsConfigureHelperService']); $container->share(PopulateModalBody::class, [$this, 'getModelPopulateModalBodyService']); $container->share('configurejsview', [$this, 'getViewConfigureJsService']); } public function getControllerCriticalJsAutoSaveService(Container $container): CriticalJsAutoSave { return new CriticalJsAutoSave( $container->get(CriticalJsConfigureHelper::class), $container->get(Input::class) ); } public function getControllerCriticalJsTableBodyService(Container $container): CriticalJsTableBody { return new CriticalJsTableBody( $container->get(PopulateModalBody::class), $container->get('configurejsview'), $container->get(Input::class) ); } public function getModelCriticalJsConfigureHelperService(Container $container): CriticalJsConfigureHelper { $model = new CriticalJsConfigureHelper(); $model->setState($container->get(Registry::class)); return $model; } public function getModelPopulateModalBodyService(Container $container): PopulateModalBody { $model = new PopulateModalBody( $container->get(HtmlCrawler::class), $container->get(HtmlProcessor::class), ); $model->setState($container->get(Registry::class)); $model->setContainer($container); return $model; } public function getViewConfigureJsService(Container $container): View { $renderer = clone $container->getNewInstance(RendererInterface::class); $renderer->getRenderer()->setLayout(''); return new View($renderer); } }