Commit Graph

18 Commits

Author SHA1 Message Date
Sergey Biryukov
8604838832 Docs: Document the inserter property in WP_Block_Patterns_Registry::register().
Follow-up to [53152], [55173].

See #56792.

git-svn-id: https://develop.svn.wordpress.org/trunk@55174 602fd350-edb4-49c9-b593-d223f7449a82
2023-02-01 15:27:14 +00:00
Sergey Biryukov
d2f6c417ff Docs: Improve documentation for block pattern properties.
Includes:
* Adding the `templateTypes` property to the `WP_Block_Patterns_Registry::register()` DocBlock.
* Adding `@since` notes for the `postTypes` and `templateTypes` properties to:
 * `_register_theme_block_patterns()`
 * `WP_Block_Patterns_Registry::register()`
* Bringing some consistency to the order of properties between:
 * `_register_theme_block_patterns()`
 * `WP_Block_Patterns_Registry::register()`
 * `WP_REST_Block_Patterns_Controller::prepare_item_for_response()`
 * `WP_REST_Block_Patterns_Controller::get_item_schema()`

Follow-up to [52943], [53152], [54263], [55168].

See #56792.

git-svn-id: https://develop.svn.wordpress.org/trunk@55173 602fd350-edb4-49c9-b593-d223f7449a82
2023-02-01 15:00:19 +00:00
Jorge Costa
66706c996c Add: Documentation for postTypes pattern property.
This commit documents the postTypes property part of the block pattern registration added in WordPress/gutenberg#41791, and meanwhile backported into core.

Props mcsf, ntsekouras.

git-svn-id: https://develop.svn.wordpress.org/trunk@54850 602fd350-edb4-49c9-b593-d223f7449a82
2022-11-16 16:34:29 +00:00
Sergey Biryukov
5ebe28966e Code Modernization: Add AllowDynamicProperties attribute to all (parent) classes.
Dynamic (non-explicitly declared) properties are deprecated as of PHP 8.2 and are expected to become a fatal error in PHP 9.0.

There are a number of ways to mitigate this:
* If it is an accidental typo for a declared property: fix the typo.
* For known properties: declare them on the class.
* For unknown properties: add the magic `__get()`, `__set()`, et al. methods to the class or let the class extend `stdClass` which has highly optimized versions of these magic methods built in.
* For unknown ''use'' of dynamic properties, the `#[AllowDynamicProperties]` attribute can be added to the class. The attribute will automatically be inherited by child classes.

Trac ticket #56034 is open to investigate and handle the third and fourth type of situations, however it has become clear this will need more time and will not be ready in time for WP 6.1.

To reduce “noise” in the meantime, both in the error logs of WP users moving onto PHP 8.2, in the test run logs of WP itself, in test runs of plugins and themes, as well as to prevent duplicate tickets from being opened for the same issue, this commit adds the `#[AllowDynamicProperties]` attribute to all “parent” classes in WP.

The logic used for this commit is as follows:
* If a class already has the attribute: no action needed.
* If a class does not `extend`: add the attribute.
* If a class does `extend`:
 - If it extends `stdClass`: no action needed (as `stdClass` supports dynamic properties).
 - If it extends a PHP native class: add the attribute.
 - If it extends a class from one of WP's external dependencies: add the attribute.
* In all other cases: no action — the attribute should not be needed as child classes inherit from the parent.

Whether or not a class contains magic methods has not been taken into account, as a review of the currently existing magic methods has shown that those are generally not sturdy enough and often even set dynamic properties (which they should not). See the [https://www.youtube.com/watch?v=vDZWepDQQVE live stream from August 16, 2022] for more details.

This commit only affects classes in the `src` directory of WordPress core.
* Tests should not get this attribute, but should be fixed to not use dynamic properties instead. Patches for this are already being committed under ticket #56033.
* While a number bundled themes (2014, 2019, 2020, 2021) contain classes, they are not a part of this commit and may be updated separately.

Reference: [https://wiki.php.net/rfc/deprecate_dynamic_properties PHP RFC: Deprecate dynamic properties].

Follow-up to [53922].

Props jrf, hellofromTonya, markjaquith, peterwilsoncc, costdev, knutsp, aristath.
See #56513, #56034.

git-svn-id: https://develop.svn.wordpress.org/trunk@54133 602fd350-edb4-49c9-b593-d223f7449a82
2022-09-12 15:45:36 +00:00
Sergey Biryukov
ad4a3ad33e Coding Standards: Correct alignment in various files.
This fixes an `Equals sign not aligned correctly` WPCS warning.

Additionally, this commit sets the `svn:eol-style` property for the `phpunit/tests/ajax/wpAjaxCropImage.php` file and corrects line endings, so that the output of `composer format` is clean.

Follow-up to [53027], [53217], [53404].

Props hellofromTonya, SergeyBiryukov.
See #55647.

git-svn-id: https://develop.svn.wordpress.org/trunk@53441 602fd350-edb4-49c9-b593-d223f7449a82
2022-05-23 20:38:02 +00:00
Greg Ziółkowski
f6775703e1 Editor: Return additional block patterns to server-generated settings
Reverts changes from [53155] to ensure backward compatibility.

Companion to Gutenberg changes https://github.com/WordPress/gutenberg/pull/40818. That makes sure that patterns registered with `admin_init` or `current_screen` hooks are not lost.

Props jsnajdr, zieladam, peterwilsoncc, johnstonphilip.
See #55567.



git-svn-id: https://develop.svn.wordpress.org/trunk@53404 602fd350-edb4-49c9-b593-d223f7449a82
2022-05-17 14:36:22 +00:00
John Blackbourn
33c08f16d1 Docs: Various docblock improvements.
See #54729


git-svn-id: https://develop.svn.wordpress.org/trunk@53299 602fd350-edb4-49c9-b593-d223f7449a82
2022-04-28 09:44:12 +00:00
Peter Wilson
9d1466908b Editor/Docs: Add blockTypes argument to WP_Block_Patterns_Registry::register() docblock.
Add the optional `blockTypes` argument in the patten properties for `WP_Block_Patterns_Registry::register()`.

Props vlad.olaru.
Fixes #55303.
See #54729.


git-svn-id: https://develop.svn.wordpress.org/trunk@52943 602fd350-edb4-49c9-b593-d223f7449a82
2022-03-17 04:11:27 +00:00
John Blackbourn
7723214065 Docs: Various docblock corrections and improvements.
See #53399


git-svn-id: https://develop.svn.wordpress.org/trunk@52236 602fd350-edb4-49c9-b593-d223f7449a82
2021-11-23 21:35:57 +00:00
desrosj
a478079de9 Docs: Improve the documentation for registering block patterns and block pattern categories.
This expands the `@param` tag for the property argument available for the `register()` method in `WP_Block_Patterns_Registry` and `WP_Block_Pattern_Cattegories_Registry`.

See #53399.

git-svn-id: https://develop.svn.wordpress.org/trunk@52219 602fd350-edb4-49c9-b593-d223f7449a82
2021-11-19 19:04:01 +00:00
Sergey Biryukov
f04ebe2daf Coding Standards: Remove a one-time $message variable in some _doing_it_wrong() calls.
This brings some consistency with most other calls.

Follow-up to [23378], [25605], [34745], [36219], [44108], [46111], [48156].

See #52627.

git-svn-id: https://develop.svn.wordpress.org/trunk@51154 602fd350-edb4-49c9-b593-d223f7449a82
2021-06-15 15:21:50 +00:00
Sergey Biryukov
1f993de977 Docs: Synchronize $category_name description in WP_Block_Pattern_Categories_Registry methods.
Follow-up to [48156].

See #52628.

git-svn-id: https://develop.svn.wordpress.org/trunk@50532 602fd350-edb4-49c9-b593-d223f7449a82
2021-03-13 11:15:14 +00:00
Sergey Biryukov
ef0a312dc1 I18N: Use the actual placeholder instead of a number in translator comments if the corresponding string does not use numbered placeholders.
Adjust some newly introduced strings to remove unnecessary numbered placeholders for consistency.

Follow-up to [42827].

See #51800.

git-svn-id: https://develop.svn.wordpress.org/trunk@50234 602fd350-edb4-49c9-b593-d223f7449a82
2021-02-07 12:42:06 +00:00
Sergey Biryukov
f09b69c410 Docs: Add missing @since tags for properties in some block editor classes:
* `WP_Block_Pattern_Categories_Registry`
* `WP_Block_Patterns_Registry`
* `WP_Block_Supports`

Follow-up to [48156], [49226].

See #50768.

git-svn-id: https://develop.svn.wordpress.org/trunk@49311 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-26 21:49:26 +00:00
Sergey Biryukov
b88a906e5e Docs: Miscellaneous DocBlock corrections.
See #49572.

git-svn-id: https://develop.svn.wordpress.org/trunk@48365 602fd350-edb4-49c9-b593-d223f7449a82
2020-07-07 09:28:19 +00:00
Riad Benguella
46971a83ec Block Editor: Requires title and content when registering block patterns.
Props poena.
See #50550.


git-svn-id: https://develop.svn.wordpress.org/trunk@48336 602fd350-edb4-49c9-b593-d223f7449a82
2020-07-06 12:02:45 +00:00
Riad Benguella
388dd08736 Block Editor: Add the initial set of block patterns.
Included patterns:

text-two-columns
two-buttons
two-images
text-two-columns-with-images
text-three-columns-buttons
large-header
large-header-paragraph
three-buttons
quote
testimonials

Props mcsf, nrqsnchz.
See #50550.


git-svn-id: https://develop.svn.wordpress.org/trunk@48334 602fd350-edb4-49c9-b593-d223f7449a82
2020-07-06 10:48:35 +00:00
Riad Benguella
b56db034d3 Block Editor: Add the Block Patterns API.
Backport WP_Block_Pattern_Categories_Registry, WP_Block_Patterns_Registry
and block patterns registration functions from the Gutenberg repository.

Props ocean90, ellatrix
Fixes #50445.


git-svn-id: https://develop.svn.wordpress.org/trunk@48156 602fd350-edb4-49c9-b593-d223f7449a82
2020-06-24 12:57:12 +00:00