PluginProbe
JCH Optimize / trunk
JCH Optimize vtrunk
6.0.2 6.0.1 trunk 1.0.1 1.0.2 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.2.0 1.2.1 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.1.0 2.10.0 2.2.0 2.2.1 All 58 releases
jch-optimize / src / Service / CriticalJsConfigureHelperProvider.php

CriticalJsConfigureHelperProvider.php in JCH Optimize trunk, at src/Service/CriticalJsConfigureHelperProvider.php

89 lines 3.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * JCH Optimize - Performs several front-end optimizations for fast downloads
5 *
6 * @package jchoptimize/wordpress-platform
7 * @author Samuel Marshall <samuel@jch-optimize.net>
8 * @copyright Copyright (c) 2024 Samuel Marshall / JCH Optimize
9 * @license GNU/GPLv3, or later. See LICENSE file
10 *
11 * If LICENSE file missing, see <http://www.gnu.org/licenses/>.
12 */
13
14 namespace JchOptimize\WordPress\Service;
15
16 use _JchOptimizeVendor\V91\Joomla\DI\Container;
17 use _JchOptimizeVendor\V91\Joomla\DI\ServiceProviderInterface;
18 use _JchOptimizeVendor\V91\Joomla\Input\Input;
19 use _JchOptimizeVendor\V91\Joomla\Renderer\RendererInterface;
20 use JchOptimize\Core\Admin\HtmlCrawler;
21 use JchOptimize\Core\Html\HtmlProcessor;
22 use JchOptimize\Core\Mvc\View;
23 use JchOptimize\Core\Registry;
24 use JchOptimize\WordPress\Controller\CriticalJsAutoSave;
25 use JchOptimize\WordPress\Controller\CriticalJsTableBody;
26 use JchOptimize\WordPress\Model\CriticalJsConfigureHelper;
27 use JchOptimize\WordPress\Model\PopulateModalBody;
28
29 class CriticalJsConfigureHelperProvider implements ServiceProviderInterface
30 {
31 public function register(Container $container): void
32 {
33 $container->alias(CriticalJsAutoSave::class, 'criticaljsautosave')
34 ->share('criticaljsautosave', [$this, 'getControllerCriticalJsAutoSaveService']);
35 $container->alias(CriticalJsTableBody::class, 'criticaljstablebody')
36 ->share('criticaljstablebody', [$this, 'getControllerCriticalJsTableBodyService']);
37
38 $container->share(CriticalJsConfigureHelper::class, [$this, 'getModelCriticalJsConfigureHelperService']);
39 $container->share(PopulateModalBody::class, [$this, 'getModelPopulateModalBodyService']);
40
41 $container->share('configurejsview', [$this, 'getViewConfigureJsService']);
42 }
43
44 public function getControllerCriticalJsAutoSaveService(Container $container): CriticalJsAutoSave
45 {
46 return new CriticalJsAutoSave(
47 $container->get(CriticalJsConfigureHelper::class),
48 $container->get(Input::class)
49 );
50 }
51
52 public function getControllerCriticalJsTableBodyService(Container $container): CriticalJsTableBody
53 {
54 return new CriticalJsTableBody(
55 $container->get(PopulateModalBody::class),
56 $container->get('configurejsview'),
57 $container->get(Input::class)
58 );
59 }
60
61 public function getModelCriticalJsConfigureHelperService(Container $container): CriticalJsConfigureHelper
62 {
63 $model = new CriticalJsConfigureHelper();
64 $model->setState($container->get(Registry::class));
65
66 return $model;
67 }
68
69 public function getModelPopulateModalBodyService(Container $container): PopulateModalBody
70 {
71 $model = new PopulateModalBody(
72 $container->get(HtmlCrawler::class),
73 $container->get(HtmlProcessor::class),
74 );
75 $model->setState($container->get(Registry::class));
76 $model->setContainer($container);
77
78 return $model;
79 }
80
81 public function getViewConfigureJsService(Container $container): View
82 {
83 $renderer = clone $container->getNewInstance(RendererInterface::class);
84 $renderer->getRenderer()->setLayout('');
85
86 return new View($renderer);
87 }
88 }
89