お問い合わせはコチラから

PHP8.2 Creation of dynamic property XXXX is deprecatedの治し方

サイト運営

WordPress6.4リリースにより正式にWordpressコアでPHP8がサポートされました。これにより、今後PHP8への移行が一気に進むと予想されます。

少し前まで、PHP8にすることで得られるメリットとデメリットを考えた時に、PHP8にして得られるメリットよりも、プラグインなどのPHP8非対応によるワーニングなどの影響のデメリットの方が大きいと思っていました。

もともとWordpressコアがPHP8に正式対応するまでは様子を見ようと思っていたのが一番の理由かもしれません。

しかし、PHP8に対応してしまったものは仕方ないので、自分のサイトをPHP8に変更し、問題が起きれば対処していくことにしました。

私が使っているサーバーのPHP8のバージョンはPHP8.2でした。

PHP8.2に上げたら、Creation of dynamic property XXXX is deprecatedという非推奨のメッセージが出るようになりましたので、この記事で対応方法をまとめておきます。

保守されているテーマはPHP8対応済み

WordPress公式テーマや、有料テーマで現在も保守されているテーマを使っている場合、バージョンアップすればPHP8への対応は完了します。

問題が起きるとすれば、子テーマでカスタマイズした自分のコードぐらいでしょう。

保守されていないプラグインがPHP8で警告や非推奨を吐く

更新されていないプラグインでも便利なものは長く使われているものが多いです。

更新されていないプラグインはPHP8に変更すると、警告や非推奨の記述があると出てきます。

よく出てくるのが、

Creation of dynamic property XXXX is deprecated

というメッセージです。

画面が真っ白にならなければ、基本大きな問題ではないのですが、ログに記録されるのでログファイルが肥大化する問題はあるでしょう。

Creation of dynamic property XXXX is deprecatedとは?

Creation of dynamic property XXXX is deprecatedというのは、classのプロパティとして宣言されていないものにアクセスしようとしている時に出てきます。

記述としては問題なくても、バグを作りこみやすいから避けた方がよいという非推奨項目です。

バグじゃないなら大きなお世話ですので、記述を治すよりもメッセージが出ないようにする方が話が早いです。

こういう時に非推奨のメッセージが出ます

class DefaultBehaviour { }

$o1 = new DefaultBehaviour();

$o1->nonExistingProp = true;

#[\AllowDynamicProperties]を追加すれば非推奨のメッセージが出なくなります。


#[\AllowDynamicProperties]
class ClassAllowsDynamicProperties { }

$o2 = new ClassAllowsDynamicProperties();

$o2->nonExistingProp = true;
PHP Creation of dynamic property is deprecated, AllowDynamicProperties not working
I'm working with a 3rd party composer library that doesn't currently support PHP 8.2 and trying to add compatibility to ...
PHP: AllowDynamicProperties - Manual
PHP is a popular general-purpose scripting language that powers everything from your blog to the most popular websites i...

SNS Count cacheプラグインは非推奨メッセージが結構でる

SNS count cacheは利用者数が多いプラグインの一つですが、PHP8.2にすると非推奨項目である、Creation of dynamic property XXXX is deprecatedが11個出ました。

ソースファイルのclassの前に、お呪いを追加すれば消えますが、そのうち更新されるのではないか?と期待してます。

PHPのエラーレポートのオプション

PHPのエラー表示設定は細かく出力制御できる。通常、非推奨項目はレポートされないと思われます。

PHPのエラー表示設定について - Qiita
エラー表示/非表示の設定PHPファイルで設定する(1)<?php// エラーを出力するini_set('display_errors', "On");?>PHPファイルで設定する(2)…

まとめ

Creation of dynamic property XXXX is deprecatedが保守されていないプラグインやテーマから出てしまった時には、#[\AllowDynamicProperties]をclassの直前に追加します。

それだけですべて解決します。

コードの修正が少なく一番安全な方法だと思います。

この記事を書いた人
ブーン

はるばる日本よりオランダ王国へやってまいりました。
自分の経験が少しでも参考になれば嬉しいです。
お問い合わせは、『こちら』からお願い致します。

\ブーンをフォロー/
スポンサーリンク
サイト運営
\シェアお願いします!/
\ブーンをフォロー/
こんな記事も読まれています

失敗しないレンタルサーバーランキング

mixhost

不正アクセスに強くて使いやすいおススメサーバー
\本サイトで利用中/
メリット①:自動ウィルス駆除対応
メリット②:サイトの表示速度が速い!
メリット③:転送量の上限が多い!
メリット④:自由にプラン変更ができ、アクセス増にも対応できる!
メリット⑤:バックアップデータが無料で復元できる!
メリット⑥:Wordpressが簡単にインストールできる!
メリット⑦:どのプランでも初期費用が無料!
メリット⑧:10日間の無料お試し期間と30日の返金保証!

Conoha Wing

国内Wordpress最速の最強サーバー
メリット①:圧倒的な表示速度
メリット②:レンタルサーバーと独自ドメインがセットでお得◎
メリット③:プラン変更はすべてのプランで自由自在
メリット④:一か月の利用転送量の制限が緩い(9TB~)
メリット⑤:WordPresサイトの移行が簡単

エックスサーバー

国内シェアNo1の安定性と実績が魅力。ALL SSDで死角なしの万能サーバー。
メリット①:サイトの表示速度が安定して速い!
メリット②:アクセス負荷に強くて安定性が高い!
メリット③:24時間365日の充実サポートで安心!電話サポートもあり!
メリット④:転送量が多い!
メリット⑤:自動バックアップ機能付き!
メリット⑥:WordPressが簡単にインストールできる!
メリット⑦:10日の無料お試し期間がある!

タイトルとURLをコピーしました