마 젠토 2 : 타사 모듈은 어디에 있습니까?


22

방금 Magento 2의 첫 번째 공식 릴리스를 설치했습니다. app/code폴더가 사라 졌다는 사실에 놀랐 습니다.

app/code

웹 사이트에서 다운로드 한 버전 작곡가를 통해 설치된 버전 모두를위한 것 입니다. 또한 app/code폴더 를 수동으로 만든 다음 php bin/magento module:enable Pulsestorm_MyModule샘플 모듈을 사용하도록 설정하려고하면 다음 오류가 발생합니다.

 Unknown module(s): 'Pulsestorm_MyModule'

타사 모듈은 어디에 있어야합니까? "컴포저를 통해 설치되고 소스 리포지토리"인 경우 모듈 개발자는 모듈을 Magento 2 리포지토리에 살도록 어떻게 구성해야합니까?

답변:


18

3PL은 다른 모든 것들과 함께 벤더 디렉토리에있는 것이 바람직합니다. 그러나… :) 우리는 일반적으로 거의 모든 사용자 정의 사이트 빌드를 위해 작성된 사용자 정의 코드가 있으며이 IMO는 app / code / still에 속합니다. 예, 여전히 앱 / 코드에서 모듈을 실행할 수 있습니다.

위치에 관계없이 모든 모듈 에는 모듈을 시스템으로 가져 오는 데 사용되는 파일 composer.jsonregistration.php파일이 있어야합니다. etc/modules.xml파일 도 필요 합니다. 이것은 기술적으로 모듈을 등록하는 데 필요한 모든 것입니다.

$ tree app/code/Alger/
app/code/Alger/
└── Skeleton
    ├── composer.json
    ├── etc
       └── module.xml
    └── registration.php

2 directories, 3 files

모듈을 시작하고 실행 하려면 시스템을 실행 setup:upgrade한 다음 cache:flush시스템이 새 구성 요소를 인식하고로드해야합니다.

$ bin/magento module:enable Foo_Bar
$ bin/magento setup:upgrade -q && bin/magento cache:flush -q

업데이트 : 공개 GitHub 저장소에서 모듈을 설치하는 두 가지 방법 : https://gist.github.com/davidalger/77761f13d9752b117f35


이전에 비활성화하지 않은 경우 활성화 할 필요가 없습니다. 확장을 설치하지 않도록 설정할 수있는 매개 변수가 있습니까?
Eirik

@Eirik 작곡가를 통해 repo에서 설치하는 경우 작곡가가 수행합니다. 이 파일들을 단순히 거기에두면, 그 때 파일을 활성화해야합니다. 적어도 나는 이제 내가이 GA 내가 :) #phpworld에서 여기 이야기에 대한 슬라이드를 연마 한대로 직후 발견 확신
davidalger

내가 현지에서 일하면서 고마움은 아직 repo로 밀리지 않았습니다. 훌륭한 정보.
Eirik

6

앨런, 그들은 여전히 ​​들어갑니다 app/code. registration.php다음을 포함하는 modulename 폴더에 있는지 확인하십시오 .

<?php
\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::MODULE,
    'Namespace_Modulename',
    __DIR__
);

그런 다음 다음을 실행하십시오.

php bin/magento setup:upgrade

최신 Magento 2 CE 릴리스에서 테스트되었으며 올바르게 작동합니다.


@Eirik에게 감사합니다. registration.php가 포함되어서는 안되는 것이거나 최종 릴리스를 만드는 것이 확실하지 않았습니다. 꽤 분명해 :)
Alan Storm
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.