inpsyde / php-coding-standards

Style guide for writing consistent PHP for WordPress projects.
MIT License
98 stars 23 forks source link

Update serialization mechanism #90

Closed gmazzap closed 5 months ago

gmazzap commented 5 months ago

Currently we have a rule that discourages the usage of magic __serialize and __unserialize while suggesting usage of the Serializable interface.

That was the "state of the art" up to PHP 7.3, and the rule even predates that.

With PHP 7.4 the Serializable interface is not recommended anymore (the RFC define it as "severely broken").

The new recommended method is to use __serialize and __unserialize methods.

Not being a major release PHP 7.4 did not deprecate Serializable.

PHP 8.1 triggers a deprecation warning if Serializable without also having __serialize and __unserialize.

And PHP 9 will probably remove the interface altogether.

Because v2 is PHP 7.4 we can safely discourage Serializable already and fully recommend __serialize and __unserialize.

This PR does that by:

Please check if the PR fulfills these requirements

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)

Feature.

What is the current behavior? (You can also link to an open issue here)

What is the new behavior (if this is a feature change)?

Does this PR introduce a breaking change? (What changes might users need to make in their application due to this PR?)

Other information:

--

gmazzap commented 5 months ago

We have to update documentation

Thank you @shvlv, done.