그래서 Page
객체를 인스턴스화하는 핵심 프로그램 클래스가 있다고 가정 해 보겠습니다.클래스를 통한 변수 액세스
이 Page
개체의 속성은 $id
(현재 사용중인 페이지의 페이지 ID)입니다.
Page
클래스에서 데이터베이스를 검색하고 Template
개체를 인스턴스화하여 페이지 서식 파일을 설정합니다.
이 Template
개체에 콘텐츠 블록을 넣고 싶습니다. 이것은 Template
클래스에서 내가 속한 Content
클래스에 의해 처리됩니다.
이제이 콘텐츠가 제대로 작동하려면 프로그램 코어가 소유 한 Page
개체에서 $id
을 얻을 수 있어야합니다. 이 일을 할 수있는 방법이 있습니까? 페이지 ID를 통과하기가 다소 어려워 보입니다. 특히 클래스 사이에 레이어가 10 개있을 수 있습니다.
$ id 변수를 정적 (static $id;
)으로 만들면 설정 한 객체의 실제 인스턴스에 액세스하는 대신 Page::$id
을 사용하여 다시 가져올 수 있습니까?
톰
최고의 PHP DI 라이브러리는 Symfony의 http://components.symfony-project.org/dependency-injection/ – Andy
입니다. 아, 템플릿은 페이지의 일부이므로이 점과 관련이 없습니다. 그래서, 그것을 사용할 필요가있을 때까지 생성자를 통해 $ page 객체를 전달하는 경우가 있습니까? 가끔씩 (내가 현재) 몇 가지 객체를 만드는 핵심 요소에서 세션 및 권한을 처리하는 User 객체와 위에서 언급 한 Page 객체를 말할 수 있습니다. 그런 다음 사용자 객체의 일부를 사용하려면 내 $ user 객체를 내 Page 클래스에 전달해야하고 내 다른 $ 객체 객체와 $ $ page 객체를 다른 모든 클래스에 전달해야 내가 다른 곳에서 사용하고 싶을 때까지 만들 수 있습니다 줄을 내려? –
매우 복잡한 프로그램은 어떻게됩니까? 속성, 메소드를 공유해야하지만 서로 독립적 인 10, 20, 100, 1000 가지의 서로 다른 객체가있는 곳은 어디입니까? 모든 의존성 주입을 추적하는 것이 꽤 복잡해지지 않을까요? –