Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Code modernization: Replace usage of substr with str_starts_with and str_ends_with #32864

Closed
Tracked by #32865
jeherve opened this issue Sep 5, 2023 · 1 comment · Fixed by #34207
Closed
Tracked by #32865

Comments

@jeherve
Copy link
Member

jeherve commented Sep 5, 2023

Source: https://core.trac.wordpress.org/ticket/58220

Let's follow Core's lead once Jetpack requires WordPress 6.3.

Primary issue: #32865

@jeherve jeherve changed the title Code modernization: Replace usage of substr with str_starts_with and str_ends_with https://core.trac.wordpress.org/ticket/58220 Code modernization: Replace usage of substr with str_starts_with and str_ends_with Sep 5, 2023
@anomiex
Copy link
Contributor

anomiex commented Sep 5, 2023

Note we can only do that in contexts that run under WordPress. Code that is intended to be useful outside of WordPress won't have WordPress's polyfill.

@jeherve jeherve self-assigned this Nov 13, 2023
jeherve added a commit that referenced this issue Nov 20, 2023
Fixes #32864

str_starts_with() and str_ends_with() were introduced in PHP 8.0 to perform a case-sensitive check indicating if the string to search in (haystack) begins or ends with the given substring (needle).

WordPress core includes a polyfill for these functions on PHP < 8.0 as of WordPress 5.9.

This commit uses str_starts_with() and str_ends_with() where appropriate.

This aims to make the code more readable and consistent, as well as better aligned with modern development practices.

Note: this doesn't update uses in a few places, like the autoloader since it can be used outside of WordPress.

Matching core change: https://core.trac.wordpress.org/changeset/55990
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants