문제

나는 간단한 상수 파일을 사용하는 Zend_config_ini의 이점을 평가하는 중입니다.

예, -

define('DB_HOST',localhost);

//versus

$config = new Zend_Config_Ini('/path/to/config.ini', 'staging');
echo $config->database->params->host;   // prints "dev.example.com"

유일한 것은 $ 구성에 전 세계적으로 액세스 할 수 없다는 것입니다. 따라서 매번 시작할 필요없이 zend_registry를 사용하여 응용 프로그램 사용을 저장해야합니다.

이것은 필요한 것보다 더 복잡한 것 같습니다 .... 나는 무언가를 놓치거나 Zend_config + zend_registry 앱이 성장함에 따라 장기적으로 더 나은 기술입니까?

도움이 되었습니까?

해결책

구성과 함께 레지스트리를 사용하는 주요 장점은 글로벌 네임 스페이스 오염을 피하는 것입니다. 타사 lib와 앱과 lib는 일정한 db_host를 정의하려고합니다. 좋지 않다.

또한 Zend Framework의 많은 공장들이 구성 객체를 사용하여 인스턴스를 생성합니다. Zend_Db 이것의 좋은 예입니다. 당신은 그것을 통과합니다 $this->database 그리고 어댑터를 인스턴스화하는 데 필요한 것을 필요로합니다.

사용자 정의 기능 (예 : 파인더 방법 또는 그와 비슷한 것들로 레지스트리를 확장 할 수도 있습니다. 을 체크하다 패턴 설명 Fowler에 의해.

다른 팁

좋은 이점 Zend_Config "PHP 소스 코드 파일"에 의존하지 않는 것입니다. .ini 파일 만 수행하며 일부는 PHP 파일 대신 .ini 파일을 수정하는 것을 선호합니다.

또한 .ini / xml 파일을 프로그래밍 방식으로 수정하는 것이 더 쉽습니다.이를 위해 클래스 / 함수가 있습니다!

.ini 파일과 함께 Zend_Config, 당신은 또한 이미 제공된 좋은 기능을 가지고 있습니다. 예를 들어, 섹션 간의 상속 (즉, "일반적인"섹션과 "스테이징"및 "생산"을 가질 수 있습니다.


무시할 수있는 것 Zend_Config, 또한, 정전 자 프레임 워크, Zend_Application, 이미 하나의 구성 파일이 있다고 가정합니다. 그렇다면 왜 두 번째가 아닌가? 아니면 첫 번째를 재사용 하시겠습니까?

그리고 그것은 여러 클래스의 프레임 워크와 동일하며, 이는 인스턴스로 작동하거나 구성 할 수 있습니다. Zend_Config ; 당신이 이미 그것을 가지고 있다면 갑자기 더 쉬워집니다 ;-)


정의가있는 php 파일과 .ini 파일 중에서 선택해야한다면 구성 가능한 것들에 대해 .ini 파일로 이동할 것입니다. (그리고 Zend_Config + Zend_Registry 필요할 때).

예, Zend 제재 방법을 사용하여 구성을 위해 일련의 글로벌 상수를 정의하는 것보다 더 복잡합니다. 당신이 얻는 장점은입니다

글로벌 네임 스페이스 충돌이 없습니다

애플리케이션을 다른 프로젝트와 통합 해야하는 경우 글로벌 상수가 응용 프로그램 구성을 나타내면 문제가 발생할 수 있습니다. 다른 프로젝트가 끊임없는 이름을 가진 기회는 무엇입니까? DB_HOST? 하이브리드 시스템을 사용하는 개발자가 응용 프로그램의 구성과 통합 응용 프로그램의 구성 요소인지 어떻게 알 수 있습니까?

다른 사람들의 일을 바탕으로

따라서 모든 구성 값이있는 단일 파일이 있습니다. 어떻게 다른 환경에 배치 할 것입니까? (생산, 준비 등) 가능성은 솔루션을 생각해 낼 수있는 현명한 사람이지만 다른 개발자가 어떻게 해당 솔루션이 어떻게 작동하는지 알게 될 것입니까? 애플리케이션의 다른 모듈은 어떻게 글로벌 구성을 읽는 방법을 알 수 있습니까?

Zend_Config 이미 많은 문제를 "해결"했습니다. 조금 더 복잡하고 추상화를 취함으로써 알려진 경로를 얻을 수 있으며, 또 다른 구성 시스템을 발명하고 지원하는 대신 응용 프로그램 문제를 해결하는 데 더 많은 시간을 할애 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top