Commit Graph

37 Commits

Author SHA1 Message Date
hellofromTonya
65d27642af Code Modernization: Fix trigger_error() with E_USER_ERROR deprecation in Text_Diff::_check().
PHP 8.4 deprecates the use of `trigger_errror()` with `E_USER_ERROR` as the error level, as there are a number of gotchas to this way of creating a `Fatal Error` (`finally` blocks not executing, destructors not executing). The recommended replacements are either to use exceptions or to do a hard `exit`.

This is an unmaintained external dependency; thus, the fix is made in the WP specific copy of the dependency.

Now, there were basically three options:
* Silence the deprecation until PHP 9.0 and delay properly solving this until then.
    This would lead to an awkward solution, as prior to PHP 8.0, error silencing would apply to all errors, while, as of PHP 8.0, it will no longer apply to fatal errors.
    It also would only buy us some time and wouldn't actually solve anything.
* Use `exit($status)`.
    This would make the code untestable and would disable handling of these errors via custom error handlers, which makes this an undesirable solution.
* Throw an exception.
    This makes for the most elegant solution with the least BC-breaking impact.

The third option is implemented which:
* Introduces a new `Text_Exception` class.
* Starts using that in the `Text_Diff::_check()` method in all applicable places.
* Adds tests for the first two error conditions.

References:
* https://wiki.php.net/rfc/deprecations_php_8_4#deprecate_passing_e_user_error_to_trigger_error
* https://www.php.net/manual/en/migration80.incompatible.php

Follow-up to [59070], [52978], [7747].

Props jrf.
See #62061.
Built from https://develop.svn.wordpress.org/trunk@59105


git-svn-id: http://core.svn.wordpress.org/trunk@58501 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-09-27 17:53:19 +00:00
Sergey Biryukov
47ed56f38f Code Modernization: Replace dirname( __FILE__ ) calls with __DIR__ magic constant.
This avoids the performance overhead of the function call every time `dirname( __FILE__ )` was used instead of `__DIR__`.

This commit also includes:

* Removing unnecessary parentheses from `include`/`require` statements. These are language constructs, not function calls.
* Replacing `include` statements for several files with `require_once`, for consistency:
 * `wp-admin/admin-header.php`
 * `wp-admin/admin-footer.php`
 * `wp-includes/version.php`

Props ayeshrajans, desrosj, valentinbora, jrf, joostdevalk, netweb.
Fixes #48082.
Built from https://develop.svn.wordpress.org/trunk@47198


git-svn-id: http://core.svn.wordpress.org/trunk@46998 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-02-06 06:33:11 +00:00
Gary Pendergast
aaf99e6913 Code is Poetry.
WordPress' code just... wasn't.
This is now dealt with.

Props jrf, pento, netweb, GaryJ, jdgrimes, westonruter, Greg Sherwood from PHPCS, and everyone who's ever contributed to WPCS and PHPCS.
Fixes #41057.


Built from https://develop.svn.wordpress.org/trunk@42343


git-svn-id: http://core.svn.wordpress.org/trunk@42172 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-11-30 23:11:00 +00:00
Scott Taylor
a3ffebce30 Bootstrap: do not go gentle into that good night r38411, r38412, and parts of r38389.
See #36335.

Built from https://develop.svn.wordpress.org/trunk@38470


git-svn-id: http://core.svn.wordpress.org/trunk@38411 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-08-31 16:31:29 +00:00
Scott Taylor
390ceba6c7 Bootstrap: after r38409 and r38410, revert r38402 which reverted r38399.
This fixes the paths in `wp-vendor/` that were including `src`. I want to drop this in so we can find out what else will break.

See #36335.

Built from https://develop.svn.wordpress.org/trunk@38411


git-svn-id: http://core.svn.wordpress.org/trunk@38352 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-08-27 22:32:37 +00:00
Dion Hulse
0e31a46161 Bootstrap: Revert [38399] as it's broken /build/ and subsequently core.svn.wordpress.org.
The generated classmaps reference `/src/` files and operates in the assumption that the base directory is one level above `wp-settings.php`, which it isn't after our build processes are run.

See #36335

Built from https://develop.svn.wordpress.org/trunk@38402


git-svn-id: http://core.svn.wordpress.org/trunk@38343 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-08-27 14:37:32 +00:00
Scott Taylor
6a529648cf Bootstrap: Autoload classes using a Composer-generated PHP 5.2-compatible Autoloader.
* `wp-admin` and `wp-includes` are scanned for classes to autoload
* Several 3rd-party and Ryan McCue-shaped libraries are excluded when the classmap is generated, see `composer.json`: `autoload.exclude-from-classmap`
* `wp-vendor/autoload_52.php` is included at the top of `wp-settings.php` - no changes need to be made to unit tests to include the autoloader
* An avalanche of `require()` and `require_once()` calls that loaded class files have been removed from the codebase.

The following files have been added to `svn:ignore` - they are not 5.2-compatible and fail during pre-commit:
* src/wp-vendor/autoload.php
* src/wp-vendor/composer/autoload_real.php
* src/wp-vendor/composer/autoload_static.php
* src/wp-vendor/composer/ClassLoader.php

We favor these files instead:
* src/wp-vendor/autoload_52.php
* src/wp-vendor/composer/autoload_real_52.php
* src/wp-vendor/composer/ClassLoader52.php

When new PHP classes are added to the codebase, simply run `composer install` or `composer update` from the project root to update the autoloader.

The future is now.

See #36335.

Built from https://develop.svn.wordpress.org/trunk@38399


git-svn-id: http://core.svn.wordpress.org/trunk@38340 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-08-27 09:15:29 +00:00
Scott Taylor
6620e0b3cc Diff: move WP_Text_Diff_Renderer_inline (behold that lowercase "i") and WP_Text_Diff_Renderer_Table into their own files via svn cp.
See #37827.

Built from https://develop.svn.wordpress.org/trunk@38352


git-svn-id: http://core.svn.wordpress.org/trunk@38293 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-08-25 17:37:30 +00:00
Drew Jaynes
9193013158 Docs: Apply inline @see tags to hooks referenced in DocBlocks in a variety of wp-includes/* files.
Applying these specially-crafted `@see` tags allows the Code Reference parser to recognize and link these elements as actions and filters.

Fixes #36921.

Built from https://develop.svn.wordpress.org/trunk@37544


git-svn-id: http://core.svn.wordpress.org/trunk@37512 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-05-23 19:02:28 +00:00
Drew Jaynes
b1804afeaf Docs: Standardize on 'backward compatibility/compatible' nomenclature in core inline docs.
Also use 'back-compat' in some inline comments where backward compatibility is the subject and shorthand feels more natural.

Note: 'backwards compatibility/compatibile' can also be considered correct, though it's primary seen in regular use in British English.

Props ocean90.
Fixes #36835.

Built from https://develop.svn.wordpress.org/trunk@37431


git-svn-id: http://core.svn.wordpress.org/trunk@37397 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-05-13 18:41:31 +00:00
Scott Taylor
84da11d918 Pass false as the 2nd argument to class_exists() to disable autoloading and to not cause problems for those who define __autoload().
Fixes #20523.

Built from https://develop.svn.wordpress.org/trunk@34348


git-svn-id: http://core.svn.wordpress.org/trunk@34312 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-20 03:52:25 +00:00
Drew Jaynes
db993f6598 Add a missing description for the $_diff_threshold property in the WP_Text_Diff_Renderer_Table class.
Props ipm-frommen.
Fixes #31008.

Built from https://develop.svn.wordpress.org/trunk@31295


git-svn-id: http://core.svn.wordpress.org/trunk@31276 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-29 11:36:22 +00:00
Scott Taylor
0f6d0b84d1 Remove unused local vars in delete_plugins(), delete_theme(), WP_Date_Query->validate_date_values(), global_terms(), and WP_Text_Diff_Renderer_Table->_changed().
This will clear out the "Unused Code" label in the next Scrutinizer report.

See #30799.

Built from https://develop.svn.wordpress.org/trunk@31217


git-svn-id: http://core.svn.wordpress.org/trunk@31198 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-16 21:19:22 +00:00
Scott Taylor
65a459b34f In WP_Text_Diff_Renderer_Table:
* In [28525], `$_diff_threshold`, `$inline_diff_renderer`, and `$_show_split_view` were marked `protected`; magic methods were also added.
* The magic methods should only perform operations on a whitelisted set of properties, now specified in `$compat_fields`
* Remove `__call()`, is unnecessary and can wreak havoc on the parent class.

This class is used in one place: `wp_text_diff()`.

See #30891.

Built from https://develop.svn.wordpress.org/trunk@31135


git-svn-id: http://core.svn.wordpress.org/trunk@31116 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-10 22:58:24 +00:00
Drew Jaynes
a6fc2d610b Minor syntactical adjustments to the inline documentation for the revision_text_diff_options hook.
Converts backticked-inline-code to inline `@see` tags (for the full benefit of Code Reference automagical behavior).

See [30396]. See #24908.

Built from https://develop.svn.wordpress.org/trunk@30497


git-svn-id: http://core.svn.wordpress.org/trunk@30486 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-11-21 03:50:24 +00:00
John Blackbourn
3e3c383e79 Introduce two new filters to the post revisions screen:
* `process_text_diff_html` for contextually filtering a diffed line. Allows for the line to be processed in a different manner to the default `htmlspecialchars`.
 * `revision_text_diff_options` for filtering the options passed to `wp_text_diff()` when viewing a post revision.

Fixes #24908
Props adamsilverstein

Built from https://develop.svn.wordpress.org/trunk@30396


git-svn-id: http://core.svn.wordpress.org/trunk@30392 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-11-19 23:21:23 +00:00
Scott Taylor
150b4e5157 Fill in the @param types for the args in WP_Text_Diff_Renderer_Table->interleave_changed_lines().
See #30224.

Built from https://develop.svn.wordpress.org/trunk@30192


git-svn-id: http://core.svn.wordpress.org/trunk@30192 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-11-03 05:39:22 +00:00
Drew Jaynes
d33c807723 Fix some documentation typos in various core files.
Props vlajos.
Fixes #29199.

Built from https://develop.svn.wordpress.org/trunk@29479


git-svn-id: http://core.svn.wordpress.org/trunk@29257 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-08-13 03:56:17 +00:00
Drew Jaynes
a8583d5f19 Fix some words that aren't words.
See #28885.

Built from https://develop.svn.wordpress.org/trunk@29454


git-svn-id: http://core.svn.wordpress.org/trunk@29232 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-08-09 19:30:17 +00:00
Drew Jaynes
4a9fd801f3 Fill out inline documentation for magic methods added to the WP_Text_Diff_Renderer_Table class in [28525].
See #27881, #22234 and #28885.

Built from https://develop.svn.wordpress.org/trunk@29139


git-svn-id: http://core.svn.wordpress.org/trunk@28923 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-07-13 23:32:14 +00:00
Scott Taylor
e8812f9d8a Add access modifiers to WP_Text_Diff_Renderer_Table that are compatible with its parent class. Some of the inline docs suggest access that, if implemented, would produce fatal errors.
Add magic methods for BC: __get(), __set(), __isset(), __unset(), and __call().

See #27881, #22234.

Built from https://develop.svn.wordpress.org/trunk@28525


git-svn-id: http://core.svn.wordpress.org/trunk@28351 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-05-19 15:23:14 +00:00
Sergey Biryukov
6bf2d27c98 Remove old debug comment. props nofearinc. fixes #25865.
Built from https://develop.svn.wordpress.org/trunk@26051


git-svn-id: http://core.svn.wordpress.org/trunk@25976 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-11-08 22:24:09 +00:00
Mark Jaquith
57b1dd212b Go back to plain text diffs between revisions instead of attempting partial rendering.
fixes #24254

git-svn-id: http://core.svn.wordpress.org/trunk@24192 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-05-07 20:34:58 +00:00
Peter Westwood
9bd192fab3 Revisions: First pass an implementing a new UI/UX for reviewing the revisions of posts. See #23497 props adamsilverstein for the initial patch.
This implements a new revisions ui using Backbone and preserves all the old methods of "integration" so the change should be transparent to plugins using revisi
ons with CPTs.

This is the first pass and so there are a number of things still to be resolved, more details in the ticket. Feedback welcomed.


git-svn-id: http://core.svn.wordpress.org/trunk@23506 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-02-28 15:14:34 +00:00
Ryan Boren
77518e9c71 Objects no longer need to be explicitly passed by ref to call_user_func*() to be callable. Props wonderboymusic. fixes #21865
git-svn-id: http://core.svn.wordpress.org/trunk@22118 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-10-04 20:00:16 +00:00
ryan
e3b46b25d3 Lose EOF ?>. Clean up EOF newlines. fixes #12307
git-svn-id: http://svn.automattic.com/wordpress/trunk@19712 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-01-08 17:01:11 +00:00
ryan
616c35e71c One newline is enough.
git-svn-id: http://svn.automattic.com/wordpress/trunk@19684 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-01-05 20:10:39 +00:00
ryan
07ff8b216b Use one space, not two, after trailing punctuation. fixes #19537
git-svn-id: http://svn.automattic.com/wordpress/trunk@19593 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2011-12-13 23:45:31 +00:00
markjaquith
ddafa3c6d7 More constructor cleanup. Props ampt. see #16768
git-svn-id: http://svn.automattic.com/wordpress/trunk@17781 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2011-04-30 17:18:39 +00:00
ryan
04487fc268 Constructor cleanup. Props ocean90. fixes #16768
git-svn-id: http://svn.automattic.com/wordpress/trunk@17771 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2011-04-29 20:05:12 +00:00
ryan
3f72e340d6 Update since phpdoc. Props demetris. fixes #15445
git-svn-id: http://svn.automattic.com/wordpress/trunk@16660 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2010-12-01 19:24:38 +00:00
ryan
15bbb301b4 Remove trailing whites
git-svn-id: http://svn.automattic.com/wordpress/trunk@15259 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2010-06-14 23:39:35 +00:00
dd32
0122124ee0 Fix PHP Notice in Revisions comparison. Props filosofo. Fixes #13853
git-svn-id: http://svn.automattic.com/wordpress/trunk@15246 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2010-06-14 01:34:18 +00:00
ryan
68f9ff53b9 Inline docs for wp-diff.php. Props jacobsantos. fixes #7662
git-svn-id: http://svn.automattic.com/wordpress/trunk@8866 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-09-11 17:46:42 +00:00
ryan
642c8d9b54 Fix Text/Diff includes. Props codestyling. fixes #7391 for trunk
git-svn-id: http://svn.automattic.com/wordpress/trunk@8581 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-08-07 21:02:07 +00:00
ryan
0f48fa0124 Don't split in the middle of a UTF-8 character. Props nbachiyski. fixes #7254
git-svn-id: http://svn.automattic.com/wordpress/trunk@8264 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-07-06 21:14:47 +00:00
ryan
35086b850f Post revisions from mdawaffe. see #6775
git-svn-id: http://svn.automattic.com/wordpress/trunk@7747 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-18 23:38:21 +00:00