| @@ -4,14 +4,14 @@ | ||
| 4 | 4 | */ |
| 5 | 5 | |
| 6 | 6 | namespace WP_Syntex\Polylang\Model; |
| 7 | 7 | |
| 8 | +use WP_Term; | |
| 9 | +use WP_Error; | |
| 8 | 10 | use PLL_Cache; |
| 9 | 11 | use PLL_Language; |
| 10 | 12 | use PLL_Language_Factory; |
| 11 | 13 | use PLL_Translatable_Objects; |
| 12 | -use WP_Error; | |
| 13 | -use WP_Term; | |
| 14 | 14 | use WP_Syntex\Polylang\Options\Options; |
| 15 | 15 | |
| 16 | 16 | defined( 'ABSPATH' ) || exit; |
| 17 | 17 | |
| @@ -34,9 +34,9 @@ | ||
| 34 | 34 | * Polylang's options. |
| 35 | 35 | * |
| 36 | 36 | * @var Options |
| 37 | 37 | */ |
| 38 | - private $options; | |
| 38 | + private Options $options; | |
| 39 | 39 | |
| 40 | 40 | /** |
| 41 | 41 | * Translatable objects registry. |
| 42 | 42 | * |
| @@ -41,16 +41,18 @@ | ||
| 41 | 41 | * Translatable objects registry. |
| 42 | 42 | * |
| 43 | 43 | * @var PLL_Translatable_Objects |
| 44 | 44 | */ |
| 45 | - private $translatable_objects; | |
| 45 | + private PLL_Translatable_Objects $translatable_objects; | |
| 46 | 46 | |
| 47 | 47 | /** |
| 48 | 48 | * Internal non persistent cache object. |
| 49 | 49 | * |
| 50 | - * @var PLL_Cache<mixed> | |
| 50 | + * @var PLL_Cache | |
| 51 | + * | |
| 52 | + * @phpstan-var PLL_Cache<mixed> | |
| 51 | 53 | */ |
| 52 | - private $cache; | |
| 54 | + private PLL_Cache $cache; | |
| 53 | 55 | |
| 54 | 56 | /** |
| 55 | 57 | * Flag set to true during the language objects creation. |
| 56 | 58 | * |
| @@ -55,9 +57,9 @@ | ||
| 55 | 57 | * Flag set to true during the language objects creation. |
| 56 | 58 | * |
| 57 | 59 | * @var bool |
| 58 | 60 | */ |
| 59 | - private $is_creating_list = false; | |
| 61 | + private bool $is_creating_list = false; | |
| 60 | 62 | |
| 61 | 63 | /** |
| 62 | 64 | * Tells if {@see WP_Syntex\Polylang\Model\Languages::get_list()} can be used. |
| 63 | 65 | * |
| @@ -62,9 +64,9 @@ | ||
| 62 | 64 | * Tells if {@see WP_Syntex\Polylang\Model\Languages::get_list()} can be used. |
| 63 | 65 | * |
| 64 | 66 | * @var bool |
| 65 | 67 | */ |
| 66 | - private $languages_ready = false; | |
| 68 | + private bool $languages_ready = false; | |
| 67 | 69 | |
| 68 | 70 | /** |
| 69 | 71 | * List of automatic language proxies. |
| 70 | 72 | * |
| @@ -71,9 +73,9 @@ | ||
| 71 | 73 | * @var Languages_Proxy_Interface[] |
| 72 | 74 | * |
| 73 | 75 | * @phpstan-var array<non-falsy-string, Languages_Proxy_Interface> |
| 74 | 76 | */ |
| 75 | - private $automatic_proxies = array(); | |
| 77 | + private array $automatic_proxies = array(); | |
| 76 | 78 | |
| 77 | 79 | /** |
| 78 | 80 | * List of language proxies. |
| 79 | 81 | * |
| @@ -80,9 +82,9 @@ | ||
| 80 | 82 | * @var Languages_Proxy_Interface[] |
| 81 | 83 | * |
| 82 | 84 | * @phpstan-var array<non-falsy-string, Languages_Proxy_Interface> |
| 83 | 85 | */ |
| 84 | - private $proxies = array(); | |
| 86 | + private array $proxies = array(); | |
| 85 | 87 | |
| 86 | 88 | /** |
| 87 | 89 | * Constructor. |
| 88 | 90 | * |
| @@ -110,11 +112,11 @@ | ||
| 110 | 112 | * @param mixed $value `term_id`, `term_taxonomy_id`, `slug`, `locale`, or `w3c` of the queried language. |
| 111 | 113 | * `term_id` and `term_taxonomy_id` can be fetched for any language taxonomy. |
| 112 | 114 | * /!\ For the `term_taxonomy_id`, prefix the ID by `tt:` (ex: `"tt:{$tt_id}"`), |
| 113 | 115 | * this is to prevent confusion between `term_id` and `term_taxonomy_id`. |
| 114 | - * @return PLL_Language|false Language object, false if no language found. | |
| 116 | + * @return \PLL_Language|false Language object, false if no language found. | |
| 115 | 117 | * |
| 116 | - * @phpstan-param PLL_Language|WP_Term|int|string $value | |
| 118 | + * @phpstan-param \PLL_Language|\WP_Term|int|string $value | |
| 117 | 119 | */ |
| 118 | 120 | public function get( $value ) { |
| 119 | 121 | if ( $value instanceof PLL_Language ) { |
| 120 | 122 | return $value; |
| @@ -140,9 +142,9 @@ | ||
| 140 | 142 | $this->cache->set( 'language:' . $lang->locale, $lang ); |
| 141 | 143 | $this->cache->set( 'language:' . $lang->w3c, $lang ); |
| 142 | 144 | } |
| 143 | 145 | |
| 144 | - /** @var PLL_Language|false */ | |
| 146 | + /** @var \PLL_Language|false */ | |
| 145 | 147 | return $this->cache->get( 'language:' . $value ); |
| 146 | 148 | } |
| 147 | 149 | |
| 148 | 150 | /** |
| @@ -165,9 +167,9 @@ | ||
| 165 | 167 | * @type string $flag Optional. Country code, {@see src/settings/flags.php}. |
| 166 | 168 | * @type string $flag_code Optional. Country code, {@see src/settings/flags.php}. Will be converted to flag. |
| 167 | 169 | * @type bool $no_default_cat Optional. If set, no default category will be created for this language. Default is false. |
| 168 | 170 | * } |
| 169 | - * @return PLL_Language|WP_Error The object language on success, a `WP_Error` otherwise. | |
| 171 | + * @return \PLL_Language|\WP_Error The object language on success, a `WP_Error` otherwise. | |
| 170 | 172 | * |
| 171 | 173 | * @phpstan-param array{ |
| 172 | 174 | * name?: string, |
| 173 | 175 | * slug?: string, |
| @@ -296,9 +298,9 @@ | ||
| 296 | 298 | * @type int $term_group Optional. Language order when displayed. |
| 297 | 299 | * @type string $flag Optional, country code, {@see src/settings/flags.php}. |
| 298 | 300 | * @type string $flag_code Optional. Country code, {@see src/settings/flags.php}. Will be converted to flag. |
| 299 | 301 | * } |
| 300 | - * @return PLL_Language|WP_Error The updated object language on success, a `WP_Error` otherwise. | |
| 302 | + * @return \PLL_Language|\WP_Error The updated object language on success, a `WP_Error` otherwise. | |
| 301 | 303 | * |
| 302 | 304 | * @phpstan-param array{ |
| 303 | 305 | * lang_id: int|numeric-string, |
| 304 | 306 | * name?: string, |
| @@ -452,9 +454,9 @@ | ||
| 452 | 454 | * @type int $term_group Language order when displayed. |
| 453 | 455 | * @type string $no_default_cat Optional, if set, no default category has been created for this language. |
| 454 | 456 | * @type string $flag Optional, country code, @see src/settings/flags.php. |
| 455 | 457 | * } |
| 456 | - * @param PLL_Language $lang Previous value of the language being edited. | |
| 458 | + * @param \PLL_Language $lang Previous value of the language being edited. | |
| 457 | 459 | */ |
| 458 | 460 | do_action( 'pll_update_language', $args, $lang ); |
| 459 | 461 | |
| 460 | 462 | return $updated_language; |
| @@ -660,9 +662,9 @@ | ||
| 660 | 662 | * @since 1.8 |
| 661 | 663 | * @since 3.4 Deprecated. If you used this hook to filter URLs, you may hook `'site_url'` instead. |
| 662 | 664 | * @deprecated |
| 663 | 665 | * |
| 664 | - * @param PLL_Language[] $languages The list of language objects. | |
| 666 | + * @param \PLL_Language[] $languages The list of language objects. | |
| 665 | 667 | */ |
| 666 | 668 | $languages = apply_filters_deprecated( 'pll_after_languages_cache', array( $languages ), '3.4' ); |
| 667 | 669 | |
| 668 | 670 | foreach ( $this->automatic_proxies as $proxy ) { |
| @@ -719,9 +721,9 @@ | ||
| 719 | 721 | * |
| 720 | 722 | * @since 3.4 |
| 721 | 723 | * @since 3.7 Moved from `PLL_Model::get_default_language()` to `WP_Syntex\Polylang\Model\Languages::get_default()`. |
| 722 | 724 | * |
| 723 | - * @return PLL_Language|false Default language object, `false` if no language found. | |
| 725 | + * @return \PLL_Language|false Default language object, `false` if no language found. | |
| 724 | 726 | */ |
| 725 | 727 | public function get_default() { |
| 726 | 728 | if ( ! empty( $this->options['default_lang'] ) ) { |
| 727 | 729 | return $this->get( $this->options['default_lang'] ); |
| @@ -879,10 +881,10 @@ | ||
| 879 | 881 | * Applies arguments that change the type of the elements of the given list of languages. |
| 880 | 882 | * |
| 881 | 883 | * @since 3.8 |
| 882 | 884 | * |
| 883 | - * @param PLL_Language[] $languages The list of language objects. | |
| 884 | - * @param array $args { | |
| 885 | + * @param \PLL_Language[] $languages The list of language objects. | |
| 886 | + * @param array $args { | |
| 885 | 887 | * @type string $fields Optional. Returns only that field if set; {@see PLL_Language} for a list of fields. |
| 886 | 888 | * } |
| 887 | 889 | * @return array List of `PLL_Language` objects or `PLL_Language` object properties. |
| 888 | 890 | */ |
| @@ -1022,9 +1024,9 @@ | ||
| 1022 | 1024 | $add_data = apply_filters( 'pll_language_metas', array(), $args, $new_data, $old_data ); |
| 1023 | 1025 | // Don't allow to overwrite `$locale`, `$rtl`, and `$flag_code`. |
| 1024 | 1026 | $new_data = array_merge( $old_data, $add_data, $new_data ); |
| 1025 | 1027 | |
| 1026 | - /** @var non-empty-string $serialized maybe_serialize() cannot return anything else than a string when fed by an array. */ | |
| 1028 | + /** @phpstan-var non-empty-string $serialized maybe_serialize() cannot return anything else than a string when fed by an array. */ | |
| 1027 | 1029 | $serialized = maybe_serialize( $new_data ); |
| 1028 | 1030 | return $serialized; |
| 1029 | 1031 | } |
| 1030 | 1032 | |
| @@ -1071,9 +1073,9 @@ | ||
| 1071 | 1073 | $errors->add( 'pll_invalid_name', __( 'The language must have a name', 'polylang' ) ); |
| 1072 | 1074 | } |
| 1073 | 1075 | |
| 1074 | 1076 | // Validate flag. |
| 1075 | - if ( ! empty( $args['flag'] ) && ! is_readable( POLYLANG_DIR . '/flags/' . $args['flag'] . '.png' ) ) { | |
| 1077 | + if ( ! empty( $args['flag'] ) && ! is_readable( POLYLANG_ROOT_DIR . '/vendor/wpsyntex/flags/' . $args['flag'] . '.svg' ) ) { | |
| 1076 | 1078 | $flag = PLL_Language::get_flag_information( $args['flag'] ); |
| 1077 | 1079 | |
| 1078 | 1080 | if ( ! empty( $flag['url'] ) ) { |
| 1079 | 1081 | $response = function_exists( 'vip_safe_wp_remote_get' ) ? vip_safe_wp_remote_get( sanitize_url( $flag['url'] ) ) : wp_remote_get( sanitize_url( $flag['url'] ) ); |
| @@ -1133,9 +1135,9 @@ | ||
| 1133 | 1135 | * @type string[] $sync List of synchronized translations with lang codes as array keys and array values. |
| 1134 | 1136 | * } |
| 1135 | 1137 | * @param string $old_slug The old language slug. |
| 1136 | 1138 | * @param string $new_slug The new language slug. |
| 1137 | - * @param WP_Term $term The term containing the post or term translation group. | |
| 1139 | + * @param \WP_Term $term The term containing the post or term translation group. | |
| 1138 | 1140 | */ |
| 1139 | 1141 | $tr = apply_filters( 'update_translation_group', $tr, $old_slug, $new_slug, $term ); |
| 1140 | 1142 | |
| 1141 | 1143 | if ( ! empty( $tr[ $old_slug ] ) ) { |
| @@ -1299,11 +1301,11 @@ | ||
| 1299 | 1301 | * |
| 1300 | 1302 | * @since 3.4 |
| 1301 | 1303 | * @since 3.7 Moved from `PLL_Model::get_languages_from_taxonomies()` to `WP_Syntex\Polylang\Model\Languages::get_from_taxonomies()`. |
| 1302 | 1304 | * |
| 1303 | - * @return PLL_Language[] An array of `PLL_Language` objects, array keys are the type. | |
| 1305 | + * @return \PLL_Language[] An array of `PLL_Language` objects, array keys are the type. | |
| 1304 | 1306 | * |
| 1305 | - * @phpstan-return list<PLL_Language> | |
| 1307 | + * @phpstan-return list<\PLL_Language> | |
| 1306 | 1308 | */ |
| 1307 | 1309 | protected function get_from_taxonomies(): array { |
| 1308 | 1310 | $terms_by_slug = array(); |
| 1309 | 1311 | |
| @@ -1313,13 +1315,13 @@ | ||
| 1313 | 1315 | $terms_by_slug[ $key ][ $term->taxonomy ] = $term; |
| 1314 | 1316 | } |
| 1315 | 1317 | |
| 1316 | 1318 | /** |
| 1317 | - * @var ( | |
| 1319 | + * @phpstan-var ( | |
| 1318 | 1320 | * array{ |
| 1319 | 1321 | * string: array{ |
| 1320 | - * language: WP_Term, | |
| 1321 | - * }&array<non-empty-string, WP_Term> | |
| 1322 | + * language: \WP_Term, | |
| 1323 | + * }&array<non-empty-string, \WP_Term> | |
| 1322 | 1324 | * } |
| 1323 | 1325 | * ) $terms_by_slug |
| 1324 | 1326 | */ |
| 1325 | 1327 | $languages = array_filter( |
| @@ -1336,16 +1338,16 @@ | ||
| 1336 | 1338 | * @since 1.7.5 |
| 1337 | 1339 | * @since 3.4 Deprecated. |
| 1338 | 1340 | * @deprecated |
| 1339 | 1341 | * |
| 1340 | - * @param PLL_Language[] $languages The list of language objects. | |
| 1341 | - * @param Language $model `Language` object. | |
| 1342 | + * @param \PLL_Language[] $languages The list of language objects. | |
| 1343 | + * @param \Languages $model `Languages` object. | |
| 1342 | 1344 | */ |
| 1343 | 1345 | $languages = apply_filters_deprecated( 'pll_languages_list', array( $languages, $this ), '3.4', 'pll_additional_language_data' ); |
| 1344 | 1346 | |
| 1345 | 1347 | if ( ! $this->are_ready() ) { |
| 1346 | 1348 | // Do not cache an incomplete list. |
| 1347 | - /** @var list<PLL_Language> $languages */ | |
| 1349 | + /** @phpstan-var list<\PLL_Language> $languages */ | |
| 1348 | 1350 | return $languages; |
| 1349 | 1351 | } |
| 1350 | 1352 | |
| 1351 | 1353 | /* |
| @@ -1362,9 +1364,9 @@ | ||
| 1362 | 1364 | ); |
| 1363 | 1365 | |
| 1364 | 1366 | set_transient( self::TRANSIENT_NAME, $languages_data ); |
| 1365 | 1367 | |
| 1366 | - /** @var list<PLL_Language> $languages */ | |
| 1368 | + /** @phpstan-var list<\PLL_Language> $languages */ | |
| 1367 | 1369 | return $languages; |
| 1368 | 1370 | } |
| 1369 | 1371 | |
| 1370 | 1372 | /** |
| @@ -1374,9 +1376,9 @@ | ||
| 1374 | 1376 | * |
| 1375 | 1377 | * @since 3.2.3 |
| 1376 | 1378 | * @since 3.7 Moved from `PLL_Model::get_language_terms()` to `WP_Syntex\Polylang\Model\Languages::get_terms()`. |
| 1377 | 1379 | * |
| 1378 | - * @return WP_Term[] | |
| 1380 | + * @return \WP_Term[] | |
| 1379 | 1381 | */ |
| 1380 | 1382 | protected function get_terms(): array { |
| 1381 | 1383 | $terms = get_terms( |
| 1382 | 1384 | array( |