Magento 2의 최근 변경 사항으로 인해 composer를 통해 공급 업체 디렉토리에 모듈을 설치할 수 있으며 Magento 2는 symlink-ing tomfoolery없이 모듈을 볼 수 있습니다. .
이것이 사실이라면, composer.json
모듈 개발자가 Magento 2 사용자가 시스템에 설치할 수 있도록 모듈과 함께 사용할 수 있는 "최소 "파일이 있습니까?
Magento 2의 최근 변경 사항으로 인해 composer를 통해 공급 업체 디렉토리에 모듈을 설치할 수 있으며 Magento 2는 symlink-ing tomfoolery없이 모듈을 볼 수 있습니다. .
이것이 사실이라면, composer.json
모듈 개발자가 Magento 2 사용자가 시스템에 설치할 수 있도록 모듈과 함께 사용할 수 있는 "최소 "파일이 있습니까?
답변:
개발 지점의 일부 최신 변경 사항 (10 월 7 일)으로 인해 여러 가지가 변경된 것처럼 보입니다. 이제 공급 업체 디렉토리에있는 모듈을 지원할 수있는 것처럼 보입니다.
모듈 설치의 두 가지 예를 만들었습니다. 하나는 파일을 앱 / 코드로 복사하고 다른 하나는 공급 업체 디렉토리에서 모듈이있는 위치를 등록합니다.
복사 전략 : https://github.com/mttjohnson/magento2-sample-module-minimal-copy 등록 전략 : https://github.com/mttjohnson/magento2-sample-module-minimal-register
개발 목적으로 Magento가 실행하는 파일을 직접 수정하고 테스트 한 다음 모듈 저장소에 다시 커밋 할 수 있으므로 등록 전략을 활용하는 것이 더 유용하다고 생각합니다.
당신이있는 경우 composer.json
의 유형이 포함 된 모듈 작곡가 패키지 파일을 magento2-module
기본 파일에서 다음을의 지정된 매핑 된 디렉토리에 복사 얻을 것이다 app/code
디렉토리.
{
"name": "vendorname/module-name",
"type": "magento2-module",
"require": {
"magento/magento-composer-installer": "*"
},
"extra": {
"map": [
[
"module",
"VendorName/ModuleName"
]
]
}
}
이 예제 composer.json에서 composer 패키지 이름 vendorname/module-name
은 composer 패키지 의 파일을 배치 vendor/vendorname/module-name
합니다.
특수 유형은 magento / magento-composer-installer 패키지 magento2-module
에서 composer-plugin으로 구현됩니다 . 이것이 필자가 require 섹션에 나열한 이유입니다. 파일을 적절한 magento 디렉토리 로 복사하는 것이이 작성기 플러그인입니다 .app/code
이 extra: {map: [["composerDir","MagentoDir"]]}
섹션은 composer-plugin 설치 프로그램에서 참조하여 magento 디렉토리 구조의 어떤 부분에 맵핑 할 작곡가 패키지의 어느 부분을 알고 있습니다. 제공된 예제 vendor/vendorname/module-name/module
에서 파일을 가져 와서 복사합니다 app/code/VendorName/ModuleName
.
트릭을 수행 해야하는 것처럼 보입니다.
{
"name": "pulsestorm/module-name",
"description": "A description of your extension",
"authors": [
{
"name": "Robert Hoffner",
"email": "rhoffner@example.com"
}
],
"require": {},
"autoload": {
"psr-4": {
"Package\\Module\\": "src/path/to/Package/Module/Package/Module",
},
"files": [
"src/path/to/Package/Module/registration.php",
]
}
}
여기서 핵심은 오토로더 섹션입니다. 클래스 파일을 가리키는 PSR-4 오토로더를 설정 하고 자동으로을로드합니다 registration.php
. composer가 공급 업체에서 파일을 삭제하고 자동로드 파일을 다시 생성하면 Magento가 모듈을 볼 수 있어야합니다.
이것의 좋은 부작용 하나 – 코드가 더 이상 필요하지 않습니다 app/code
!