PHP Deprecated: Creation of dynamic property ups::$quotes
Hello All,
Running ZC 1.5.8a on php8.2.4. The UPS shipping module is causing a TON of depreciation logs.
PHP Deprecated: Creation of dynamic property ups::$quotes
PHP Deprecated: Creation of dynamic property ups::$_upsActionCode is deprecated
PHP Deprecated: Creation of dynamic property ups::$_upsResComCode
etc...
Is there a solution for this?
Thank you,
John
Re: PHP Deprecated: Creation of dynamic property ups::$quotes
Re: PHP Deprecated: Creation of dynamic property ups::$quotes
Or use PHP 8.1 until this is fixed.
Re: PHP Deprecated: Creation of dynamic property ups::$quotes
Since the module still works, is it possible to suppress depreciation logs related to UPS?
Thanks again,
John
Re: PHP Deprecated: Creation of dynamic property ups::$quotes
PHP 8.2 did away with log suppression and the deprecated issues with the ups.php shipping method are due to those class-based variables not being predefined.
You could go through each of the $this->varname usages in the module and make sure that each variable is predefined within the class,
e.g.
Code:
class ups {
public
$quotes; // needs to be public
protected
$_upsActionCode,
$_upsResComCode;
}
Re: PHP Deprecated: Creation of dynamic property ups::$quotes
So that is working... sort of. I just copied and pasted in your example like so...
class ups extends base {
public
$quotes; // needs to be public
protected
$_upsActionCode,
$_upsResComCode;
This works, but when I add to the protected list $_upsPackageWeight it breaks. Clearly i'm no good working in classes. I'm going to keep at it though and see if i can figure out where these need to be added.
Thanks again,
John
Re: PHP Deprecated: Creation of dynamic property ups::$quotes
GOT IT! Well so far... lol. I was making each protected $_var; instead of $_var, ... always with the punctuation. ;) Thank you very much.
Re: PHP Deprecated: Creation of dynamic property ups::$quotes
Congratulations on the update! Happy to have helped.
Re: PHP Deprecated: Creation of dynamic property ups::$quotes
Quote:
Originally Posted by
lat9
PHP 8.2 did away with log suppression
Where is that documented? Php 8.0 removed suppression of error type messages, but not all suppression. See this portion of the php manual: https://www.php.net/manual/en/langua...rorcontrol.php
Quote:
Originally Posted by
lat9
the deprecated issues with the ups.php shipping method are due to those class-based variables not being predefined.
Which can be "temporarily" allowed without associated dynamic property log generation by using:
#[\AllowDynamicProperties]
As described: https://www.php.net/manual/en/class....properties.php
Re: PHP Deprecated: Creation of dynamic property ups::$quotes
Thanks for the clarification, @mc12345678. For any PHP deprecation, though, it's best to address the issue before the deprecation turns into an error.