2009-12-05 4 views
1

현재 PHP 프레임 워크에서 작업 중입니다. 일부 경우 ZendFramework와 같은 구조로되어 있습니다. MVC가 있습니다. 내 문제와 일치하는 일치 항목을 찾지 못했습니다.

내 "문제"는 클래스 (모델, 컨트롤러)가 가변적입니다. http_handler. 이제는 많은 수업을 할 수있어서 모든 것을 수동으로 변수로 설정할 수는 없습니다.

$ GLOBALS를 사용하여 $ variableVar을 설정할 수 있습니까?

foreach($classes as $class) 
{ 
    include_once($class . '.php'); 
    $GLOBALS[$class] = new $class; 
} 

전체 코드를 통해 액세스 할 수있는 새 변수가 생성됩니까? 예 :

//... code 
$http_handler->sendRequest($someArgs); 
//... code 

답변

3
그것은 것

,하지만 당신은 당신의 방법의 범위에서 전역 변수를 가져올 수 있습니다 이것에 대한 더 나은 솔루션은 그러나 거기

function foo() 
{ 
    global $http_handler; 

. 예를 들어 singleton pattern을 확인하십시오. , here

+0

좋아 대단히 감사합니다 :

나는 싱글 톤 패턴, 어쩌면 답변 중 일부는 당신에게 추가 아이디어를 줄을 사용하여 제외하고 최근 모든 클래스를 구성하는 방법에 대한 질문을했다. ..하지만 싱글 톤 패턴에는 여전히 변수가 지정되어야합니다.) 현재 프레임 워크의 "하위"객체의 싱글 톤/팩토리 인스턴스를 포함하는 "기본"객체가 있습니다. 컨트롤러/모델이있는 경우이 거대한 구문은 간단한 구문으로 래핑됩니다. 즉, 컨트롤러/모델이있는 경우, 또한 보안 계급을 위해서 : $ user = & $ main-> model-> User –

+0

사실 변수를 거기에 할당해야하지만, 싱글 톤 접근법은 여전히 ​​전역에서 작업하는 것보다 훨씬 깨끗해집니다. 글로벌 객체로 할 수있는 한 싱글 톤과 동일합니다. 내 질문 링크를 체크 아웃, 변수를 할당 저장 다른 솔루션이 있습니다 - 그리고 이런 식으로 일하는주의 사항은 OOP의 정신에 정말 중요하지 여부에 관계없이 상관없이 하나의 삶입니다. –

관련 문제