PHP

[php] Message: Creation of dynamic property CI_URI::$config is deprecated 에러 해결

은둔한량 2023. 9. 11. 16:01
반응형

php 8.2에 CodeIgniter v3.0.6 (Current version) 을 설치하고 session을 좀 쓰려고 하니 에러가 났습니다.

Message: Creation of dynamic property Auth::$ci is deprecated

 

A PHP Error was encountered
Severity: 8192

Message: Creation of dynamic property Auth::$ci is deprecated

Filename: libraries/Auth.php

Line Number: 9

Backtrace:

File: C:\APM\Apache24\htdocs\application\libraries\Auth.php
Line: 9
Function: _error_handler

File: C:\APM\Apache24\htdocs\application\controllers\Main.php
Line: 11
Function: library

File: C:\APM\Apache24\htdocs\index.php
Line: 315
Function: require_once

 

찾아보니 php 8.2 버젼부터 이런 에러가 나온다고 한다. 이전 버젼에는 없는 에러란다. ㅎㅎ

원인은 동적변수를 사용할 수 없단다.

Dynamic Properties are deprecated

Deprecated: Creation of dynamic property

이런 에러들이 난다.

해결책

/system/core/URI.php

#[\AllowDynamicProperties]

class CI_URI {

 
 

/system/core/Router.php

#[\AllowDynamicProperties]

class CI_Router {

/system/core/Loader.php

#[\AllowDynamicProperties]

class CI_Loader {

/system/core/Controller.php

#[\AllowDynamicProperties]

class CI_Controller {

/system/database/DB_driver.php

#[\AllowDynamicProperties]

abstract class CI_DB_driver {

이렇게 #[\AllowDynamicProperties] 만 클래스 앞에 추가를 하면 에러는 나지 않는다.

 

반응형