Eu vi algumas coisas flutuando na Internet impermanente (ou seja, Twitter) que algumas alterações recentes no Magento 2 possibilitam a instalação de um módulo no diretório de fornecedores via compositor, e o Magento 2 verá seu módulo sem nenhum arquivo de linguagem simbólica. .
Se isso for verdade, existe um composer.json
arquivo " mínimo " flutuando para os desenvolvedores de módulos usarem com seus módulos para permitir que os usuários do Magento 2 os instalem em seus sistemas?
Respostas:
Atualizar
Parece que várias coisas mudaram com algumas alterações mais recentes (7 de outubro) no ramo de desenvolvimento. Agora parece que é possível oferecer suporte a um módulo que vive no diretório de fornecedores.
Criei dois exemplos de instalação de módulos. Um que copia arquivos para aplicativo / código e outro que registra o módulo em que reside no diretório do fornecedor.
Estratégia de cópia: https://github.com/mttjohnson/magento2-sample-module-minimal-copy Estratégia de registro: https://github.com/mttjohnson/magento2-sample-module-minimal-register
Para fins de desenvolvimento, acho que a utilização da estratégia de registro é mais útil, porque os arquivos que estão sendo executados pelo Magento podem ser diretamente modificados, testados e, em seguida, confirmados no repositório do módulo.
Resposta original
Se você tiver um
composer.json
arquivo para o pacote do compositor de módulo que contenha um tipo demagento2-module
arquivo, por padrão, será copiado para um diretório mapeado especificado noapp/code
diretórioNeste exemplo composer.json, o nome do pacote do compositor
vendorname/module-name
resultará na inserção dos arquivos do pacote do compositorvendor/vendorname/module-name
.O tipo especial de
magento2-module
é implementado como um compositor-plugin no pacote magento / magento-compositer-installer . É por isso que eu listei na seção exigir. É este plugin do compositor que faz a cópia dos arquivos noapp/code
diretório magento apropriado .A
extra: {map: [["composerDir","MagentoDir"]]}
seção é referenciada pelo instalador do compositor-plugin para saber qual parte do seu pacote compositor deve ser mapeada para qual parte da sua estrutura de diretórios magento. No exemplo fornecido, isso levariavendor/vendorname/module-name/module
e copiaria os arquivos de lá paraapp/code/VendorName/ModuleName
.fonte
Parece que algo assim deve funcionar.
A chave aqui é a seção do carregador automático. Ele configura um carregador automático PSR-4 que aponta para os arquivos da sua classe e carrega automaticamente o seu
registration.php
. Quando o compositor solta os arquivos no fornecedor e gera novamente os arquivos de carregamento automático, o Magento deve poder ver seu módulo.Um efeito colateral legal disso - o código não precisa mais estar presente
app/code
!fonte