PluginProbe
Polylang / trunk
Polylang vtrunk
3.8.9 3.8.8 3.8.7 3.8.6 3.8.5 3.8.4 3.8.3 2.7 2.7.0.1 2.7.1 2.7.2 2.7.3 2.7.4 2.8 2.8.1 2.8.2 2.8.3 2.8.4 2.9 2.9.1 2.9.2 3.0 3.0.1 3.0.2 3.0.3 All 233 releases
← All changes | src/Model/Languages.php +35 -33 3.8.9 → trunk View file →
@@ -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(