핵심 Magento 코드를 사용하고 composer.json에 require : ... 줄을 추가 할 때마다 수동으로 모듈을 살펴 봐야합니까?
예, 코드에서 핵심 모듈의 항목을 사용할 때마다 작곡가의 요구에 추가해야합니다. 코어 모듈 이후에로드 순서를 원할 module.xml
경우 시퀀스 섹션 의 파일에 추가하는 것이 좋습니다 .
아니면 나를 위해 할 수있는 자동화 된 도구가 있습니까?
나는 아직 오지 않았다. 있으면 알려주세요. 상당히 정교한 도구 여야하고 상당한 테스트 범위가 필요할 수 있으며 다른 버전의 매트릭스를 실행하여 작업 세트를 생성합니다.
composer.json에 포함 할 버전을 어떻게 지정합니까? 내가 개발 한 특정 모듈 버전이어야합니까? 아니면 어떤 종류의 와일드 카드가 필요합니까? 아니면 트레이드 오프를 기반으로 결정을 내려야합니까? 그렇다면, 각 버전의 버전 지정에 관련된 트레이드 오프는 무엇입니까?
버전 번호를 정의하는 옵션
100.0.2
이 특정 버전에서만 작동
100.0.*
*
와일드 카드이며 모든 버전 번호로 대체 할 수있다
100.0.0
, 100.0.1
, ...
,100.0.120
~100.0.2
2 만 그렇게까지 갈 수있는 와일드하게 100.0.2
, 100.0.3
, ...
,100.0.120
^100.0.2
어떤 101까지 출시 있도록합니다 그래서 100.0.2
, 100.0.3
, ...
, 100.1.0
,100.2.5
옵션 2-4의 경우 안정성 설정에서 허용하는 경우 다음과 같은 버전도 포함됩니다 100.0.1-beta
실용
옵션 1.)은 가장 신중한 것입니다. 개발 한 버전을 알고이 특정 버전에서만 작동하도록 허용합니다. 모듈은 해당 버전의 특정 모듈과 함께 만 설치할 수 있습니다. 다른 모든 설치 / 업그레이드 시도는 설치 가능한 구성 요소 세트를 찾을 수 없음을 강조하는 작성기 메시지와 함께 실패합니다.
옵션 2) 옵션 3에서 다룬 것처럼 옵션이 아닌 것으로 생각할 수 있습니다. ~100.0.0
옵션 3) 새로운 기능이 도입되지 않는 한 호환 가능
옵션 4) 주요 변경 사항이없는 한 호환 가능
트레이드 오프
1 확장 프로그램은 Magento 모듈의 1 버전에서만 작동합니다 (기술적으로 모듈에 변경 사항이없는 경우 버전 번호가 증가하지 않아야하며 여러 Magento 프로젝트 버전은 이론적으로 동일한 버전의 동일한 Magento 코어 모듈을 포함 할 수 있습니다). 이것을 보지 못했고 Magento 쪽에서 일부 프로세스 변경이 필요한 것처럼 보입니다 .) 1 버전의 Magento 코어 모듈과 밀접하게 연결되어 있기 때문에 호환성을 유지하려면 많은 릴리스와 자체 확장 버전이 필요합니다.
3-4 확장은 여러 버전의 Magento에서 작동하며 Magento가 새 버전을 릴리스 할 때마다 다른 확장 버전을 릴리스 할 필요는 없습니다. 여기서 단점은 자신의 코드와 호환되지 않는 Magento에서 변경 사항이 도입 될 수 있지만 호환성을 주장한다는 것입니다. Magento의 자체 모듈 버전에 대한 시맨틱 버전 관리에 대한 정의가 제한된 범위를 가진 @api
주석 (이 GitHub 문제 에서 더 자세히 설명 됨 )으로 만 확장되기 때문에 이러한 위험은 실제로 발생 합니다.
tl; dr; 시맨틱 버전 관리 (Semantic Versioning)의 작동 방식
100.0.2
을 유지하기 위해 안전하고 많은
^100.0.2
릴리스를 지원하십시오 @api
. 승인 된 클래스와 메서드를 사용하여 100 %의 확장명을 가진 경우 이것은 분명한 선택입니다.