PluginProbe
ActivityPub / 8.0.2
ActivityPub v8.0.2
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 +27 -23 2.1.08.0.2 View file →
@@ -1,7 +1,9 @@
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
4 6 */
5 7
6 8 if ( ! function_exists( 'str_starts_with' ) ) {
7 9 /**
@@ -22,35 +24,27 @@
22 24 return 0 === strpos( $haystack, $needle );
23 25 }
24 26 }
25 27
26 -if ( ! function_exists( 'get_self_link' ) ) {
28 +if ( ! function_exists( 'str_ends_with' ) ) {
27 29 /**
28 - * Returns the link for the currently displayed feed.
30 + * Polyfill for `str_ends_with()` function added in PHP 8.0.
29 31 *
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.
32 + * Performs a case-sensitive check indicating if
33 + * the haystack ends with needle.
42 34 *
43 - * @param mixed $value The value to check.
44 - * @return bool True if `$value` is countable, otherwise false.
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.
45 39 */
46 - function is_countable( $value ) {
47 - return is_array( $value ) || $value instanceof \Countable;
40 + function str_ends_with( $haystack, $needle ) {
41 + return strlen( $needle ) === 0 || substr( $haystack, - strlen( $needle ) ) === $needle;
48 42 }
49 43 }
50 44
51 45 /**
52 - * Polyfill for `array_is_list()` function added in PHP 7.3.
46 + * Polyfill for `array_is_list()` function added in PHP 8.1.
53 47 *
54 48 * @param array $array The array to check.
55 49 *
56 50 * @return bool True if `$array` is a list, otherwise false.
@@ -55,20 +49,30 @@
55 49 *
56 50 * @return bool True if `$array` is a list, otherwise false.
57 51 */
58 52 if ( ! function_exists( 'array_is_list' ) ) {
59 - function array_is_list( $array ) {
60 - if ( ! is_array( $array ) ) {
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 ) ) {
61 65 return false;
62 66 }
63 67
64 - if ( array_values( $array ) === $array ) {
68 + if ( array_values( $input ) === $input ) {
65 69 return true;
66 70 }
67 71
68 72 $next_key = -1;
69 73
70 - foreach ( $array as $k => $v ) {
74 + foreach ( $input as $k => $v ) {
71 75 if ( ++$next_key !== $k ) {
72 76 return false;
73 77 }
74 78 }