CI 묻고 답하기

제목 ci4 에서 config 확장 방법?
카테고리 CI 4 관련
글쓴이 포포탄 작성시각 2020/06/16 16:28:27
댓글 : 1 추천 : 0 스크랩 : 0 조회수 : 13233   RSS

ci4에서 config 확장을 위해서 

http://ci4doc.cikorea.net/general/configuration.html?highlight=registrar#registrars

페이지를 참고하여 registrars 를 App\Config\Database에 하기와 같이 등록하였습니다.

 

class Database extends \CodeIgniter\Database\Config
{
	/**
	 * 
	 */
	protected $registrars = [
		\Foo\Config\FooDatabase::class
	];

...

 

그리고, \Foo\Config\FooDatabase 는 하기와 같이 작성하였구요.

 

namespace Foo\Config;

class FooDatabase
{
    public static $default = [...];
...
	public static function Database()
	{
		return [
             ... 디비구성을 위한 배열값
		];
	}
}

 

그리고, spark 돌려보니, Connot redeclare static CodeIgniter\Database\Config::$registrars as non static Config\Database::$registrars in ... 에러가 발생하더군요.

 

우선, 각 설정클래스가 상속하고 있는 BaseConfig에 $registars 프로퍼티가 public static 으로 선언되어 있고(4.0.3 기준),

따라서 메뉴얼과는 다르게,

$registrars 프로퍼티를 public static $registrars 로 전환해주고,

실행해보니 에러 발생하지 않고, 설정값도 잘 불러와지기는 해서 작업을 계속 진행하고 있습니다.

 

이게 버전업이 되면서 $registrars 프로퍼티 속성이 모르게 변경이 된 건지, 아니면 제가 메뉴얼을 곡해하고 있는건지 궁금하네요.

뭔가 확장방법도 깔끔하지 못하는 기분도 들고.. 이럴거면 차라리 예전처럼 hmvc로 만들 때 방식대로 require로 구조를 만드는게 훨씬 깔끔할 것 같다는 기분도 듭니다.

 

각종 설정들을 분리를 해서 잘 관리할 수 있는 노하우가 있을까요?

ci4로 hmvc확장 연구해보신분들의 의견을 듣고 싶습니다.

 

 다음글 ci 실행 방법 (2)
 이전글 php7.2 upgrade 후 redis 연동 문제 (6)

댓글

한대승(불의회상) / 2020/06/16 16:59:24 / 추천 0

protected 속성을 사용하려면 Foodatabase가 \Codeigniter\Data\Config 클래스를 상속 받아야 할 텐데 상속 받는 부분이 없으니 public 으로 지정해야 사용이 가능할것 같네요.