PluginProbe
Yoast SEO – Advanced SEO with real-time guidance and built-in AI / trunk
Yoast SEO – Advanced SEO with real-time guidance and built-in AI vtrunk
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
← All changes | src/surfaces/twitter-helpers-surface.php +53 -2 18.1 → trunk View file →
@@ -1,8 +1,9 @@
1 1 <?php
2 2
3 3 namespace Yoast\WP\SEO\Surfaces;
4 4
5 +use Yoast\WP\SEO\Exceptions\Forbidden_Property_Mutation_Exception;
5 6 use Yoast\WP\SEO\Helpers\Twitter;
6 7 use YoastSEO_Vendor\Symfony\Component\DependencyInjection\ContainerInterface;
7 8
8 9 /**
@@ -37,9 +38,59 @@
37 38 *
38 39 * @return mixed The helper class.
39 40 */
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 ) {
41 93 $helper = \implode( '_', \array_map( 'ucfirst', \explode( '_', $helper ) ) );
42 - $class = "Yoast\WP\SEO\Helpers\Twitter\\{$helper}_Helper";
43 - return $this->container->get( $class );
94 + return "Yoast\WP\SEO\Helpers\Twitter\\{$helper}_Helper";
44 95 }
45 96 }