janou Posted May 12, 2023 Posted May 12, 2023 Hello, TL;DR; I'm currently fighting with a compatibility issue between IPB 4.7.9 and PHP 8.2. IPB reports that PHP version is ok and that all is good from this side. But all email sending are failing because of the following error: 4C143/1 Creation of dynamic property IPS\Email\Outgoing\Php::$language is deprecated Do you maybe have an idea from where it can come from please? Longer problem description below Now I went a bit ahead and started looking into it to check if I could not fix it myself. First thing I did was to create language property in the _Email abstract class. I made a mistake and created it as protected. Error was gone but a new one was thrown: EX0 Error: Cannot access protected property IPS\Email\Outgoing\Php::$language (0) #0 /var/www/html/system/Email/Email.php(953): IPS\Theme\email_plaintext_core_emailWrapper() #1 /var/www/html/system/Email/Email.php(392): IPS\_Email::template() #2 /var/www/html/system/Email/Email.php(679): IPS\_Email->compileContent() #3 /var/www/html/system/Email/Outgoing/Php.php(58): IPS\_Email->_compileMessage() #4 /var/www/html/applications/core/modules/admin/settings/email.php(189): IPS\Email\Outgoing\_PHP->_send() #5 /var/www/html/system/Dispatcher/Controller.php(118): IPS\core\modules\admin\settings\_email->manage() #6 /var/www/html/applications/core/modules/admin/settings/email.php(38): IPS\Dispatcher\_Controller->execute() #7 /var/www/html/system/Dispatcher/Dispatcher.php(153): IPS\core\modules\admin\settings\_email->execute() #8 /var/www/html/donjon/index.php(13): IPS\_Dispatcher->run() #9 {main} When I switch the property to public, I have another error: IPS\Email\Outgoing\Exception: Function strftime() is deprecated (0) This function seems to still be in use in some files (system/DateTime/DateTime.php, applications/calendar/sources/Date/Date.php). I looked about this IPS\Theme\email_plaintext_core_emailWrapper function after that and found out it's coming from the database, table ibf_core_store (SELECT * FROM `ibf_core_store` WHERE store_value like '%email_html_core_emailWrapper%'). I deleted it but it was created back and same problem came again. I looked at the email customization settings in the backend (app=core&module=customization&controller=emails) but we don't use any customization and they are all IPB ones.
Nathan Explosion Posted May 12, 2023 Posted May 12, 2023 This post was recognized by Marc! Nathan Explosion was awarded the badge 'Helpful' and 5 points. 4 minutes ago, janou said: and PHP 8.2. Stop fighting....it's not supported currently. Use 8.1 or 8.0 Marc 1
janou Posted May 15, 2023 Author Posted May 15, 2023 (edited) Hello, Thanks for the information. This is quite confusing because the configuration checked and the backend are saying that 8.2 meets the system requirements. Edit: but I still have the following error when switching to PHP 8.1 : Quote IPS\Email\Outgoing\Exception: Function strftime() is deprecated (0) Edited May 15, 2023 by janou
Marc Posted May 15, 2023 Posted May 15, 2023 The error will not go away from the logs. That error will only be generated on 8.2
Recommended Posts