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

php8.2 compatibility #183

Merged
merged 22 commits into from
Jan 4, 2024
Merged

php8.2 compatibility #183

merged 22 commits into from
Jan 4, 2024

Conversation

falkenhawk
Copy link
Member

includes #170, #180 and #181

hungtrinh and others added 22 commits January 3, 2024 10:53
Fixing issues on PHP 8.2 like
> Deprecated: Creation of dynamic property {x} is deprecated

Signed-off-by: Elan Ruusamäe <glen@pld-linux.org>
Co-authored-by: Elan Ruusamäe <glen@pld-linux.org>
(cherry picked from commit 65c1385dce02591d31b1165283ed7f8e018badfd)
Co-authored-by: hungtd <trinhduchung@gmail.com>
(cherry picked from commit bdbfa1dcda95797a74a6cb5f80890e606b23f239)
as Zend_Controller_Action_Helper_ContextSwitch uses that
php 8.2+ needs this
otherwise `stream_wrapper_register('php', 'Zend_AllTests_StreamWrapper_PhpInput');`
triggers `Creation of dynamic property Zend_AllTests_StreamWrapper_PhpInput::$context is deprecated`
Creation of dynamic property PHPUnit_Extensions_Database_DataSet_CompositeDataSet::$motherDataset is deprecated
in (probably defunc for a long time already) service components
and tests
It looks like it's safe to use the `#[AllowDynamicProperties]` attribute, and it should still be valid for php 9.0 and not throw an error, contrary to what I understood at first.

As per RFC:
https://wiki.php.net/rfc/deprecate_dynamic_properties#proposal
"The creation of dynamic properties on classes that aren't marked with the #[AllowDynamicProperties] attribute is deprecated in PHP 8.2 and becomes an Error exception in PHP 9.0."

Related issues from zf1-future where they went with refactoring those classes to use a defined property to store all previously dynamic props in an array, which introduced breaking changes:
Shardj/zf1-future#307 (comment)
Shardj/zf1-future#261
Shardj/zf1-future#268
Shardj/zf1-future#328
Shardj/zf1-future#329
PHP Deprecated:  Callables of the form ["Zend_EventManager_EventManagerTest", "Zend_EventManager_EventManagerTest::testAttachShouldReturnCallbackHandler"] are deprecated
"Deprecated: Using ${var} in strings is deprecated, use {$var} instead"
and enable tests for php 8.3 (allow failure with `experimental: true`)
php8.2 compat: add missing class properties
 php8.2 compat: allow dynamic props in Zend_Form, Zend_Form_Element and Zend_View_Abstract
php8.2 compat: remaining compatibility fixes
@falkenhawk falkenhawk requested review from marcing and partikus January 4, 2024 12:28
@falkenhawk falkenhawk merged commit 3289a81 into master Jan 4, 2024
13 checks passed
@falkenhawk falkenhawk deleted the php82 branch January 4, 2024 12:39
@falkenhawk falkenhawk mentioned this pull request Jan 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants