PluginProbe
ActivityPub / 3.2.5
ActivityPub v3.2.5
9.3.1 9.3.0 9.2.2 9.2.1 9.2.0 9.1.0 9.0.2 9.0.1 9.0.0 8.3.0 8.2.1 8.2.0 8.1.1 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.2.0 1.3.0 2.0.0 2.0.1 2.1.0 2.1.1 All 160 releases
← All changes | includes/compat.php +24 -27 8.2.03.2.5 View file →
@@ -1,9 +1,7 @@
1 1 <?php
2 2 /**
3 3 * ActivityPub implementation for WordPress/PHP functions either missing from older WordPress/PHP versions or not included by default.
4 - *
5 - * @package Activitypub
6 4 */
7 5
8 6 if ( ! function_exists( 'str_starts_with' ) ) {
9 7 /**
@@ -24,27 +22,35 @@
24 22 return 0 === strpos( $haystack, $needle );
25 23 }
26 24 }
27 25
28 -if ( ! function_exists( 'str_ends_with' ) ) {
26 +if ( ! function_exists( 'get_self_link' ) ) {
29 27 /**
30 - * Polyfill for `str_ends_with()` function added in PHP 8.0.
28 + * Returns the link for the currently displayed feed.
31 29 *
32 - * Performs a case-sensitive check indicating if
33 - * the haystack ends with needle.
30 + * @return string Correct link for the atom:self element.
31 + */
32 + function get_self_link() {
33 + $host = wp_parse_url( home_url() );
34 + $path = isset( $_SERVER['REQUEST_URI'] ) ? sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ) ) : '';
35 + return esc_url( apply_filters( 'self_link', set_url_scheme( 'http://' . $host['host'] . $path ) ) );
36 + }
37 +}
38 +
39 +if ( ! function_exists( 'is_countable' ) ) {
40 + /**
41 + * Polyfill for `is_countable()` function added in PHP 7.3.
34 42 *
35 - * @param string $haystack The string to search in.
36 - * @param string $needle The substring to search for in the `$haystack`.
37 - *
38 - * @return bool True if `$haystack` ends with `$needle`, otherwise false.
43 + * @param mixed $value The value to check.
44 + * @return bool True if `$value` is countable, otherwise false.
39 45 */
40 - function str_ends_with( $haystack, $needle ) {
41 - return strlen( $needle ) === 0 || substr( $haystack, - strlen( $needle ) ) === $needle;
46 + function is_countable( $value ) {
47 + return is_array( $value ) || $value instanceof \Countable;
42 48 }
43 49 }
44 50
45 51 /**
46 - * Polyfill for `array_is_list()` function added in PHP 8.1.
52 + * Polyfill for `array_is_list()` function added in PHP 7.3.
47 53 *
48 54 * @param array $array The array to check.
49 55 *
50 56 * @return bool True if `$array` is a list, otherwise false.
@@ -49,30 +55,21 @@
49 55 *
50 56 * @return bool True if `$array` is a list, otherwise false.
51 57 */
52 58 if ( ! function_exists( 'array_is_list' ) ) {
53 - /**
54 - * Check if an array is a list.
55 - *
56 - * An array is considered a list if its keys are a range of numbers
57 - * starting from 0 and ending at count( $array ) - 1.
58 - *
59 - * @param array $input The array to check.
60 - *
61 - * @return bool True if `$input` is a list, otherwise false.
62 - */
63 - function array_is_list( $input ) {
64 - if ( ! is_array( $input ) ) {
59 + // phpcs:disable Universal.NamingConventions.NoReservedKeywordParameterNames.arrayFound
60 + function array_is_list( $array ) {
61 + if ( ! is_array( $array ) ) {
65 62 return false;
66 63 }
67 64
68 - if ( array_values( $input ) === $input ) {
65 + if ( array_values( $array ) === $array ) {
69 66 return true;
70 67 }
71 68
72 69 $next_key = -1;
73 70
74 - foreach ( $input as $k => $v ) {
71 + foreach ( $array as $k => $v ) {
75 72 if ( ++$next_key !== $k ) {
76 73 return false;
77 74 }
78 75 }