2014-09-30 2 views
0

여드름 도움이 애플리케이션 전체에서 동일한 객체를 재사용하고 의존성을 관리합니다.여드름 의존성 주입 정적 또는 객체

여드름 자체를 관리하는 방법은 무엇입니까?

전역 개체를 만들어야합니까? 아니면 정적 클래스로 만드시겠습니까? 또는 함수를 사용합니까?

나는 ... 등 어디서든, 컨트롤러, 모델, 플러그인에서 여드름 방법에

덕분에 접근하고 싶습니다!

+1

어디서나 여드름 치료법에 액세스하려는 경우 서비스 찾기 안티팟 – jlvaquero

+0

에 답장을 보내 주셔서 감사합니다. 무슨 소리 야? 한 곳에서 여드름에 새 객체를 추가 한 다음 다른 객체에서 객체를 다시 사용합니다. 예제 모델에서 데이터베이스 객체에 액세스 할 필요가 있지만 라이브러리 또는 플러그인 훅에서도 액세스 할 수 있어야합니다. 그래서 여드름에 접근해야합니다. 좀 더 설명해 주시겠습니까? 감사!! – user2011250

+0

@ jlvaquero 당신이 나에게 대안을 말해 줄 수 있습니까? – user2011250

답변

0

많은 사람들이 ServiceLocator를 안티 패턴으로 간주하지만, 아프게 사용하면 피해가 거의 없습니다.

<?php 

namespace Acme; 

class ServiceLocator 
{ 
    static protected $container; 

    public static function setContainer(\Pimple $container) 
    { 
     static::$container = $container; 
    } 

    public static function get($id) 
    { 
     return static::$container[$id]; 
    } 
} 
+0

내 말은 SL의 ABUSE는 반 패턴이다. DI 컨테이너를 사방에 사용하는 것은 남용입니다. DI는 상위 계층에 종속성 체인을 구축해야합니다. 그런 다음 DI 및 SL에 대한 레이어 및 forguet을 사용합니다. – jlvaquero

+0

당신은 이렇게 말했습니다 : "그런 다음 DI와 SL에 관한 레이어와 forguet을 사용하십시오." 내 대답 : ""레이어 "란 무엇을 의미합니까? 데이터베이스 객체를 설정하고 홀 애플리케이션에서 재사용 할 수있는 예를 제공 할 수 있습니까? 감사합니다." – user2011250

+0

@jlvaquero 좀 더 알려 주실 수 있습니까? 감사!! – user2011250