PluginProbe
Yoast SEO – Advanced SEO with real-time guidance and built-in AI / 27.5
Yoast SEO – Advanced SEO with real-time guidance and built-in AI v27.5
28.5 28.4 28.3 28.2 28.1 28.0 27.9 27.8 27.7 27.6 27.5 trunk 18.0 18.1 18.2 18.3 18.4 18.4.1 18.5 18.5.1 18.6 18.7 18.8 18.9 19.0 All 129 releases
wordpress-seo / src / surfaces / open-graph-helpers-surface.php

open-graph-helpers-surface.php in Yoast SEO – Advanced SEO with real-time guidance and built-in AI 27.5, at src/surfaces/open-graph-helpers-surface.php

97 lines 2.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Yoast\WP\SEO\Surfaces;
4
5 use Yoast\WP\SEO\Exceptions\Forbidden_Property_Mutation_Exception;
6 use Yoast\WP\SEO\Helpers\Open_Graph;
7 use YoastSEO_Vendor\Symfony\Component\DependencyInjection\ContainerInterface;
8
9 /**
10 * Class Open_Graph_Helpers_Surface.
11 *
12 * Surface for the indexables.
13 *
14 * @property Open_Graph\Image_Helper $image
15 */
16 class Open_Graph_Helpers_Surface {
17
18 /**
19 * The DI container.
20 *
21 * @var ContainerInterface
22 */
23 private $container;
24
25 /**
26 * Loader constructor.
27 *
28 * @param ContainerInterface $container The dependency injection container.
29 */
30 public function __construct( ContainerInterface $container ) {
31 $this->container = $container;
32 }
33
34 /**
35 * Magic getter for getting helper classes.
36 *
37 * @param string $helper The helper to get.
38 *
39 * @return mixed The helper class.
40 */
41 public function __get( $helper ) {
42 return $this->container->get( $this->get_helper_class( $helper ) );
43 }
44
45 /**
46 * Magic isset for ensuring helper exists.
47 *
48 * @param string $helper The helper to get.
49 *
50 * @return bool Whether the helper exists.
51 */
52 public function __isset( $helper ) {
53 return $this->container->has( $this->get_helper_class( $helper ) );
54 }
55
56 /**
57 * Prevents setting dynamic properties and unsetting declared properties
58 * from an inaccessible context.
59 *
60 * @param string $name The property name.
61 * @param mixed $value The property value.
62 *
63 * @return void
64 *
65 * @throws Forbidden_Property_Mutation_Exception Set is never meant to be called.
66 */
67 public function __set( $name, $value ) { // @phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed -- __set must have a name and value - PHPCS #3715.
68 throw Forbidden_Property_Mutation_Exception::cannot_set_because_property_is_immutable( $name );
69 }
70
71 /**
72 * Prevents unsetting dynamic properties and unsetting declared properties
73 * from an inaccessible context.
74 *
75 * @param string $name The property name.
76 *
77 * @return void
78 *
79 * @throws Forbidden_Property_Mutation_Exception Unset is never meant to be called.
80 */
81 public function __unset( $name ) {
82 throw Forbidden_Property_Mutation_Exception::cannot_unset_because_property_is_immutable( $name );
83 }
84
85 /**
86 * Get the class name from a helper slug
87 *
88 * @param string $helper The name of the helper.
89 *
90 * @return string
91 */
92 protected function get_helper_class( $helper ) {
93 $helper = \implode( '_', \array_map( 'ucfirst', \explode( '_', $helper ) ) );
94 return "Yoast\WP\SEO\Helpers\Open_Graph\\{$helper}_Helper";
95 }
96 }
97