1- <?php declare ( strict_types = 1 );
2-
1+ <?php
32/**
43 * Abilities API
54 *
109 * @since 0.1.0
1110 */
1211
12+ declare ( strict_types = 1 );
13+
1314/**
1415 * Manages the registration and lookup of abilities.
1516 *
@@ -21,15 +22,15 @@ final class WP_Abilities_Registry {
2122 * Holds the registered abilities.
2223 *
2324 * @since 0.1.0
24- * @var WP_Ability[]
25+ * @var \ WP_Ability[]
2526 */
2627 private $ registered_abilities = array ();
2728
2829 /**
2930 * Container for the main instance of the class.
3031 *
3132 * @since 0.1.0
32- * @var ?WP_Abilities_Registry
33+ * @var ?\ WP_Abilities_Registry
3334 */
3435 private static $ instance = null ;
3536
@@ -42,13 +43,13 @@ final class WP_Abilities_Registry {
4243 *
4344 * @since 0.1.0
4445 *
45- * @param string|WP_Ability $name The name of the ability, or WP_Ability instance. The name must be a string
46- * containing a namespace prefix, i.e. `my-plugin/my-ability`. It can only
47- * contain lowercase alphanumeric characters, dashes and the forward slash.
48- * @param array $properties Optional. An associative array of properties for the ability. This should
49- * include `label`, `description`, `input_schema`, `output_schema`,
50- * `execute_callback`, `permission_callback`, and `meta`.
51- * @return ?WP_Ability The registered ability instance on success, null on failure.
46+ * @param string|\ WP_Ability $name The name of the ability, or WP_Ability instance. The name must be a string
47+ * containing a namespace prefix, i.e. `my-plugin/my-ability`. It can only
48+ * contain lowercase alphanumeric characters, dashes and the forward slash.
49+ * @param array<string,mixed> $properties Optional. An associative array of properties for the ability. This should
50+ * include `label`, `description`, `input_schema`, `output_schema`,
51+ * `execute_callback`, `permission_callback`, and `meta`.
52+ * @return ?\ WP_Ability The registered ability instance on success, null on failure.
5253 */
5354 public function register ( $ name , array $ properties = array () ): ?WP_Ability {
5455 $ ability = null ;
@@ -159,6 +160,7 @@ public function register( $name, array $properties = array() ): ?WP_Ability {
159160 'meta ' => $ properties ['meta ' ] ?? array (),
160161 )
161162 );
163+
162164 $ this ->registered_abilities [ $ name ] = $ ability ;
163165 return $ ability ;
164166 }
@@ -173,9 +175,9 @@ public function register( $name, array $properties = array() ): ?WP_Ability {
173175 * @since 0.1.0
174176 *
175177 * @param string $name The name of the registered ability, with its namespace.
176- * @return ?WP_Ability The unregistered ability instance on success, null on failure.
178+ * @return ?\ WP_Ability The unregistered ability instance on success, null on failure.
177179 */
178- public function unregister ( $ name ): ?WP_Ability {
180+ public function unregister ( string $ name ): ?WP_Ability {
179181 if ( ! $ this ->is_registered ( $ name ) ) {
180182 _doing_it_wrong (
181183 __METHOD__ ,
@@ -201,7 +203,7 @@ public function unregister( $name ): ?WP_Ability {
201203 *
202204 * @since 0.1.0
203205 *
204- * @return WP_Ability[] The array of registered abilities.
206+ * @return \ WP_Ability[] The array of registered abilities.
205207 */
206208 public function get_all_registered (): array {
207209 return $ this ->registered_abilities ;
@@ -215,7 +217,7 @@ public function get_all_registered(): array {
215217 * @param string $name The name of the registered ability, with its namespace.
216218 * @return bool True if the ability is registered, false otherwise.
217219 */
218- public function is_registered ( $ name ): bool {
220+ public function is_registered ( string $ name ): bool {
219221 return isset ( $ this ->registered_abilities [ $ name ] );
220222 }
221223
@@ -229,9 +231,9 @@ public function is_registered( $name ): bool {
229231 * @since 0.1.0
230232 *
231233 * @param string $name The name of the registered ability, with its namespace.
232- * @return ?WP_Ability The registered ability instance, or null if it is not registered.
234+ * @return ?\ WP_Ability The registered ability instance, or null if it is not registered.
233235 */
234- public function get_registered ( $ name ): ?WP_Ability {
236+ public function get_registered ( string $ name ): ?WP_Ability {
235237 if ( ! $ this ->is_registered ( $ name ) ) {
236238 _doing_it_wrong (
237239 __METHOD__ ,
@@ -251,10 +253,10 @@ public function get_registered( $name ): ?WP_Ability {
251253 *
252254 * @since 0.1.0
253255 *
254- * @return WP_Abilities_Registry The main registry instance.
256+ * @return \ WP_Abilities_Registry The main registry instance.
255257 */
256- public static function get_instance (): WP_Abilities_Registry {
257- /* @var WP_Abilities_Registry $wp_abilities */
258+ public static function get_instance (): self {
259+ /** @var \ WP_Abilities_Registry $wp_abilities */
258260 global $ wp_abilities ;
259261
260262 if ( empty ( $ wp_abilities ) ) {
@@ -267,7 +269,7 @@ public static function get_instance(): WP_Abilities_Registry {
267269 *
268270 * @since 0.1.0
269271 *
270- * @param WP_Abilities_Registry $instance Abilities registry object.
272+ * @param \ WP_Abilities_Registry $instance Abilities registry object.
271273 */
272274 do_action ( 'abilities_api_init ' , $ wp_abilities );
273275 }
@@ -279,15 +281,12 @@ public static function get_instance(): WP_Abilities_Registry {
279281 * Wakeup magic method.
280282 *
281283 * @since 0.1.0
284+ * @throws \UnexpectedValueException If any of the registered abilities is not an instance of WP_Ability.
282285 */
283286 public function __wakeup (): void {
284- if ( empty ( $ this ->registered_abilities ) ) {
285- return ;
286- }
287-
288287 foreach ( $ this ->registered_abilities as $ ability ) {
289288 if ( ! $ ability instanceof WP_Ability ) {
290- throw new UnexpectedValueException ();
289+ throw new \ UnexpectedValueException ();
291290 }
292291 }
293292 }
0 commit comments