2011-04-29 5 views
1

나는 다중 도메인 사이트를 운영하고 있습니다. 도메인에 따라 사이트가 이에 따라 행동해야합니다. CakePHP 어디서나 사용할 수있는 클래스?

가 나는 등

같은 이름 등의 방법(), 전화(), 이메일(), 당신이 올바른을 반환에 어떤 도메인에 따라이있다 CompanyInfo라는 도우미를 생성 정보.

예를 들어 사용자가 전화 할 전화 번호를 표시해야 할 경우 $this->CompanyInfo->phone()을 사용하면 도메인에 따라 사용자의 올바른 전화 번호가 표시됩니다.

좋아,이 모든 것이 좋지만 실제로는 관련이 없습니다. 진짜 문제는 바로이 정보가 그저보기 이상으로 필요하다는 것입니다. 헬퍼는 뷰를위한 것입니다. 컨트롤러에서이 정보에 액세스하려면 구성 요소를 만들어야합니다.

저는 헬퍼와 컴포넌트가 똑같이하고 싶지는 않습니다. 차라리 하나의 클래스가 그것을 복사 및 붙여 넣기 논리보다는 처리 할 수 ​​있습니다.

그렇다면 컨트롤러 또는 뷰 또는 모델에서 액세스 할 수있는 메서드로 클래스를 만드는 가장 좋은 방법은 무엇입니까?

답변

1

표시해야하는 것은 정적 정보 (이름, 전화 번호, 이메일 등) 일 뿐인가요? core.php에 구성에 추가하는 것이 가장 좋은 이유는 무엇입니까? 당신이 당신의 app_controller에서이 변수를 정의하고 다음과 같이 컨트롤러의 쉽게 이러한 변수를 사용할 수 있습니다

Configuration::read('Company.name'); 
0

를 사용하여 필요한

뭔가

# in core.php 
Configuration::write('Company.name', 'Acme Corp.'); 
Configuration::write('Company.email', '[email protected]'); 

처럼하기는 어디서나이 정보를 얻을 수 있습니다 거기에서이 변수들을 설정하십시오. 생성자 클래스에서이 함수를 호출하십시오. 나는 그것이 당신의 문제를 해결할 것이라고 생각합니다.

0

당신은 어떤 장소에서 이런 식으로 모델 클래스에 액세스 할 수 있습니다 $companyInfoModel = ClassRegistry::init('CompanyInfo'); $phone = $companyInfoModel->phone();

0

가) 당신은 당신이 내용을 통과 할 수있는 것을

b)는 정적 모델 방법에 대한 cake1.3에 libs와 사용할 수 있으며 예상 값을 반환합니다.

echo Model::phone($data) 
관련 문제