お世話になっております。
株式会社スクロール360の八野と申します。
先日、このライブラリを購入してサンプルコードを実行したところ、動的プロパティの設定部分でエラーとなりました。
PHP8.3では動的プロパティが禁止となっていることが原因です。
エラーの発生個所がEAN128.php内となります。
class GS1_128に$minWidthDotが宣言されていないので、このプロパティを設定しようとするとエラーとなります。
こちらはPHP8.3に対応していないのでしょうか?
ご回答のほど、よろしくお願い申し上げます。
お問い合わせありがとうございます。
調査させていただきますので、しばらくお待ちください。
よろしくお願いいたします。
お待たせしており申し訳ございません。
良く存じ上げていなかったのですが、
$object->newProp = "value";
といった動的プロパティの指定が推進されなくなり、
__get および __set マジックメソッドを使用: クラス内で __get と __set を定義し、動的プロパティのように扱いたいデータを柔軟にアクセス・設定できるように。という方針のようですね。
これについては、当然対応はさせていただこうと思います。ただし、すぐにはできないことをご了承ください。
なお、
ただいま、PHP8.3 で試してみました。次の動画をご覧ください。
https://www.pao.ac/~pao/php8.3.mp4
特に問題なく、GS1-128=EAN128 は動作いました。
この動画の後に、画面上下のpng形式の出力をgif形式に変更して出力してみました。
ここでは、動的プロパティ設定を使用しておりますが、問題なく動作しております。
PHP8.3 では、動的プロパティは「エラー」ではなく「警告」という情報を得ています。
完全廃止になり、エラーになるのは、PHP9以降と伺っていますが、間違っておりますでしょうか?
恐らく警告のレベルをエラーとするかの設定ではないかと思われます。
もし、現状でも動作するようであれば、お試しいただけますか?プロジェクトの規約等で動的プロパティの利用が禁止されている場合、次のバージョンアップまでお待ちください。
極力、早めに、インタフェイスとして、動的プロパティに加えて、__get および __set マジックメソッドのインタフェイスを加えたいとは思っております。
よろしくお願いいたします。
- YY-BOARD -