답변:
이를 위해 비교적 새로운 두 가지 기술이 있습니다.
modman을 사용 하면 각 환경에 배포 할 항목을 직접 제어 할 수 있습니다. 이것은 modman deploy [name-of-dev-extension]
개발자 환경에서만 실행된다는 것을 의미 합니다.
환경에 따라 시나리오가 다른 magento-composer 를 사용하십시오 composer.json
. 더 쉬운 방법은 확장을 dev-modules로 지정한 다음 --require-dev
개발 시스템 의 스위치를 사용하여 프로젝트를 설치하는 것 입니다.
그것들은 일반적으로 구성 플래그로 편리하게 비활성화 할 수 있으므로 기술적으로 활성이지만 아무것도하지 않습니다. app/etc/local.xml
라이브 시스템 에서이 플래그를 false로 설정 하면 문제가 없습니다.
local.xml
파일을 저장소에 보관하지 않으려는 경우 좋은 솔루션 입니다. 어떤 경우 일 수 있습니다.
local.xml
일반적으로 repo에 없습니다
최근 베를린의 Magento Hackathon에서 만든 MageTrashApp 를 참조하십시오 . 관리자 패널을 통해 모듈을 비활성화 할 수 있습니다.
이를 수행하는 간단한 방법은 / etc / modules에서 모듈을 비활성화하고 밀어서 파일을 로컬에서 무시한 후 다시 활성화하는 것입니다.
이 문제를 처리하는 가장 좋은 방법은 해당 모듈을 모두 로컬 codePool에 유지하고 local.xml 의이 줄을 사용하여 모든 로컬 모듈을 활성화하지 않는 것입니다.
<disable_local_modules>true</disable_local_modules>
또는 실제 환경의 백엔드에서 "모듈 출력 비활성화"를 수행 할 수 있습니다. (시스템-> 구성-> 고급). 그러나 이것이 모듈을 완전히 비활성화하지는 않습니다. 그러나 아마도 당신이 그것을 숨기고 싶어하기에 충분할 것입니다.
내가 생각할 수있는 유일한 다른 것은 이것을 풀 수있는 코드를 작성하는 것입니다. 개발자 모드 ( Mage::getIsDeveloperMode()
) 인지 확인한 다음 모듈을 비활성화하십시오. /programming/6520634/magento-how-to-disable-module-programmatically에서 이것을 달성하는 방법에 대한 자세한 내용을 찾았습니다.
local
모듈을 비활성화 하면 다른 모든 모듈을 local
codePool 에서 다른 community
확장 으로 이동 해야합니다. 당신이 말한대로 모듈 출력을 비활성화하면 확장이 상점을 느리게 실행할 수 있습니다. 그리고 세 번째 솔루션에는 확장 업데이트로 덮어 쓸 수정이 필요합니다.
나는 보통 테스트 환경에 넣었지만 .gitignore
파일을 사용하여 커밋 대상에서 제외시키는 것과 같이 버전 관리 시스템에 체크인하지는 않는다 .
Erik Hansen의 Imagine 2011 컨퍼런스에 슬라이드가 있습니다. 그는 슬라이드에 코드를 다음과 같이 언급했습니다 (개발자 모드의 경우)
# File : index.php
if(preg_match('/^stage\.|\.dev$/', $_SERVER['HTTP_HOST'])) {
$_SERVER['MAGE_IS_DEVELOPER_MODE'] = true;
}
여기서 Erik은 사용자 정의 할 수있는 하위 도메인을 기반으로 설정을 활성화합니다.