문제
나는 비영구적 인터넷에 떠다니는 몇 가지 것들을 보았습니다(예:Twitter) Magento 2의 최근 변경 사항으로 인해 작곡가를 통해 공급업체 디렉터리에 모듈을 설치할 수 있게 되었으며 Magento 2는 심볼릭 링크 장난 없이 모듈을 볼 수 있습니다.
이것이 사실이라면, "최소한의"가 있습니까? composer.json
모듈 개발자가 Magento 2 사용자가 모듈을 시스템에 설치할 수 있도록 모듈과 함께 사용할 수 있는 " 파일이 떠다니나요?
해결책 2
이와 같은 것이 트릭을 수행해야 할 것 같습니다.
{
"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
!
다른 팁
업데이트
개발 브랜치의 최신 변경 사항(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은 작곡가 패키지 이름입니다. vendorname/module-name
그러면 작곡가 패키지의 파일이 다음 위치에 배치됩니다. vendor/vendorname/module-name
.
특별한 유형의 magento2-module
에서 작곡가 플러그인으로 구현됩니다. 마젠토/마젠토-컴포저-설치 프로그램 패키지.그렇기 때문에 필수 섹션에 나열했습니다.적절한 마젠토로 파일을 복사하는 것은 이 작곡가 플러그인입니다. app/code
예배 규칙서.
그만큼 extra: {map: [["composerDir","MagentoDir"]]}
섹션은 magento 디렉토리 구조의 어느 부분에 매핑할 작곡가 패키지의 부분을 알기 위해 작곡가 플러그인 설치 프로그램에서 참조됩니다.제공된 예에서는 다음과 같은 작업이 수행됩니다. vendor/vendorname/module-name/module
거기에서 파일을 복사하십시오. app/code/VendorName/ModuleName
.