bcit-ci / CodeIgniter

Open Source PHP Framework (originally from EllisLab)
https://codeigniter.com/
MIT License
18.27k stars 7.6k forks source link

PHP 8.3: Deprecation Warning for Dynamic Property Creation in Class #6298

Open Richin opened 2 months ago

Richin commented 2 months ago

I encountered a deprecation warning in my PHP application. The warning message is as follows:

Severity: 8192

Message: Creation of dynamic property CI_Loader::$input is deprecated

Filename: core/Loader.php

Line Number: 1011
Richin commented 2 months ago

This PR is linked with the issue #6299

pocketarc commented 2 months ago

@Richin Just letting you know that this is also addressed in #6173.

I quite like this PR because it explicitly marks CI properties, but unless I'm missing something, by not using #[\AllowDynamicProperties], this will still trigger deprecation warnings as soon as you try to load your own custom models (which are all dynamic properties).

Richin commented 2 months ago

@pocketarc Thank you for the heads-up on #6173. I appreciate your feedback on this PR, and I agree that explicitly marking CI properties is a good approach.

However, you make an important point about deprecation warnings for custom models with dynamic properties. You are correct that without using #[\AllowDynamicProperties], we may still encounter issues when loading custom models that use dynamic properties.

Do you have any suggestions for balancing explicit property marking with support for custom dynamic models? I am interested in discussing solutions that could work for core CI properties and user-defined custom models.