Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
0.00% |
0 / 25 |
|
0.00% |
0 / 10 |
CRAP | |
0.00% |
0 / 1 |
ImageManager | |
0.00% |
0 / 25 |
|
0.00% |
0 / 10 |
462 | |
0.00% |
0 / 1 |
__construct | |
0.00% |
0 / 2 |
|
0.00% |
0 / 1 |
2 | |||
initialize_settings | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
initialize_services | |
0.00% |
0 / 7 |
|
0.00% |
0 / 1 |
2 | |||
initialize_upload_listener | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
maybe_initialize_lazy_loader | |
0.00% |
0 / 2 |
|
0.00% |
0 / 1 |
12 | |||
maybe_initialize_bulk_optimizer | |
0.00% |
0 / 2 |
|
0.00% |
0 / 1 |
12 | |||
maybe_initialize_rest_api | |
0.00% |
0 / 2 |
|
0.00% |
0 / 1 |
6 | |||
maybe_initialize_marker | |
0.00% |
0 / 2 |
|
0.00% |
0 / 1 |
6 | |||
maybe_initialize_image_rewrite_handler | |
0.00% |
0 / 4 |
|
0.00% |
0 / 1 |
20 | |||
maybe_initialize_image_limit_banner | |
0.00% |
0 / 2 |
|
0.00% |
0 / 1 |
12 |
1 | <?php |
2 | |
3 | namespace NewfoldLabs\WP\Module\Performance\Images; |
4 | |
5 | use NewfoldLabs\WP\ModuleLoader\Container; |
6 | use NewfoldLabs\WP\Module\Performance\Permissions; |
7 | use NewfoldLabs\WP\Module\Performance\Images\RestApi\RestApi; |
8 | use NewfoldLabs\WP\Module\Performance\Images\ImageRewriteHandler; |
9 | |
10 | /** |
11 | * Manages the initialization of image optimization settings and listeners. |
12 | */ |
13 | class ImageManager { |
14 | |
15 | /** |
16 | * Constructor to initialize the ImageManager. |
17 | * |
18 | * Registers settings and conditionally initializes related services. |
19 | * |
20 | * @param Container $container Dependency injection container. |
21 | */ |
22 | public function __construct( Container $container ) { |
23 | $this->initialize_settings( $container ); |
24 | $this->initialize_services( $container ); |
25 | } |
26 | |
27 | /** |
28 | * Initializes the ImageSettings class to register settings. |
29 | * |
30 | * @param Container $container Dependency injection container. |
31 | */ |
32 | private function initialize_settings( Container $container ) { |
33 | new ImageSettings( $container ); |
34 | } |
35 | |
36 | /** |
37 | * Initializes conditional services based on settings and environment. |
38 | * |
39 | * @param Container $container Dependency injection container. |
40 | */ |
41 | private function initialize_services( Container $container ) { |
42 | $this->initialize_upload_listener( $container ); |
43 | $this->maybe_initialize_lazy_loader(); |
44 | $this->maybe_initialize_bulk_optimizer(); |
45 | $this->maybe_initialize_rest_api( $container ); |
46 | $this->maybe_initialize_marker(); |
47 | $this->maybe_initialize_image_rewrite_handler( $container ); |
48 | $this->maybe_initialize_image_limit_banner( $container ); |
49 | } |
50 | |
51 | /** |
52 | * Initializes the ImageUploadListener if auto-optimization is enabled. |
53 | * |
54 | * @param \NewfoldLabs\WP\Container\Container $container Dependency injection container. |
55 | */ |
56 | private function initialize_upload_listener( $container ) { |
57 | new ImageUploadListener( $container, ImageSettings::is_auto_delete_enabled() ); |
58 | } |
59 | |
60 | /** |
61 | * Initializes the ImageLazyLoader if lazy loading is enabled. |
62 | */ |
63 | private function maybe_initialize_lazy_loader() { |
64 | if ( ImageSettings::is_optimization_enabled() && ImageSettings::is_lazy_loading_enabled() ) { |
65 | new ImageLazyLoader(); |
66 | } |
67 | } |
68 | |
69 | /** |
70 | * Initializes the ImageBulkOptimizer if bulk optimization is enabled and user is an admin. |
71 | */ |
72 | private function maybe_initialize_bulk_optimizer() { |
73 | if ( Permissions::is_authorized_admin() && ImageSettings::is_bulk_optimization_enabled() ) { |
74 | new ImageBulkOptimizer(); |
75 | } |
76 | } |
77 | |
78 | /** |
79 | * Initializes the REST API routes if accessed via REST and user is an admin. |
80 | * |
81 | * @param \NewfoldLabs\WP\Container\Container $container Dependency injection container. |
82 | */ |
83 | private function maybe_initialize_rest_api( $container ) { |
84 | if ( Permissions::rest_is_authorized_admin() ) { |
85 | new RestApi( $container ); |
86 | } |
87 | } |
88 | |
89 | /** |
90 | * Initializes the ImageOptimizedMarker if image optimization is enabled. |
91 | */ |
92 | private function maybe_initialize_marker() { |
93 | if ( ImageSettings::is_optimization_enabled() ) { |
94 | new ImageOptimizedMarker(); |
95 | } |
96 | } |
97 | |
98 | /** |
99 | * Initializes the ImageRewriteHandler for managing WebP redirects if the server is Apache. |
100 | * |
101 | * @param Container $container Dependency injection container. |
102 | */ |
103 | private function maybe_initialize_image_rewrite_handler( Container $container ) { |
104 | if ( Permissions::rest_is_authorized_admin() |
105 | && $container->has( 'isApache' ) |
106 | && $container->get( 'isApache' ) ) { |
107 | new ImageRewriteHandler(); |
108 | } |
109 | } |
110 | |
111 | /** |
112 | * Conditionally initializes the Image Limit Banner in the WordPress admin area. |
113 | * |
114 | * @param Container $container Dependency injection container. |
115 | */ |
116 | private function maybe_initialize_image_limit_banner( $container ) { |
117 | if ( ImageSettings::is_optimization_enabled() && Permissions::is_authorized_admin() ) { |
118 | new ImageLimitBanner( $container ); |
119 | } |
120 | } |
121 | } |