Digamos que eu queira desenvolver uma extensão Magento que faça interface com, digamos, um pacote de gráficos de código-fonte aberto ou uma galeria de imagens ou qualquer outra coisa que NÃO faça parte da própria extensão. Quando baixada (separada da extensão), a lib de terceiros vem em seu próprio arquivo .zip, com todos os seus arquivos .php, .js, .html e .css juntos.
Coloco no proprietário do site pobre que deseja instalar minha extensão junto com a lib de terceiros, o ônus de separar o .zip original de terceiros e fazê-los colocar .js em / js, .php em / lib,. css em / skin etc?
Ou existe um "depósito de lixo" geralmente aceito para qualquer arquivo .zip de terceiros, onde é possível descompactar convenientemente o download COMO ESTÁ e terminar com ele?
Então, você deseja criar uma extensão e usar um pacote / recurso externo para construí-la. Na minha opinião, seja qual for o pacote que você usou na sua extensão, ela deve seguir as práticas recomendadas do Magento. Isso significa que você deve separar todas as imagens js, css e do recurso externo e colocar nos
base\default
diretórios dos pacotes de temas.ou seja, não existe um local único para a colocação de recursos de pacotes de terceiros. Por fim, quando você entrega uma extensão legal, todos os js, css e imagens relacionados à sua extensão devem ser mantidos em um local onde normalmente um outro desenvolvedor irá procurar e que, na maioria dos casos, é o
base/default
pacote de temas.Em resumo
Todos os seus js de extensão devem estar sob
Dessa forma, outro desenvolvedor pode encontrar facilmente js, css e imagens (também dos seus recursos externos) da sua extensão. Como você está usando um subdiretório extra para indicar os arquivos de recursos externos dentro do diretório de nomes de extensões, isso dará a outras pessoas uma melhor pista de que sua extensão depende de alguns pacotes de terceiros.
Portanto, recomendo que você separe os pacotes externos e faça parte da sua extensão para que outro desenvolvedor possa encontrar facilmente suas dependências. :-)
EDIT - 1
Você não deve sobrecarregar sua extensão para o proprietário do site. Você pode evitar essa dificuldade alinhando corretamente sua extensão. Isso significa que, se você salvar todos os arquivos relacionados nos locais de diretório especificados, o que todo proprietário de um site deve fazer é pegar sua extensão e mesclar sua extensão no diretório raiz do aplicativo. ou seja, alinhe sua extensão corretamente. Deve ficar assim.
EDIT - 2
Se houver alguns pacotes que devem ser compartilhados em todos os aplicativos Magento (como uma biblioteca javascript ou um pacote php etc), você poderá colocá-los no
\lib
diretórioÉ verdade que, pode haver um arquivo duplicado se duas extensões dependem dos mesmos pacotes de recursos. Eles também podem usar uma versão diferente do mesmo pacote de recursos. Mas, basicamente, sua extensão deve usar apenas o recurso da sua extensão (e pode depender dos recursos padrão do Magento) e não deve depender dos recursos de outras extensões, a menos que sua extensão seja uma "versão extensível" de uma extensão de terceiros.
fonte
js, css, images
nobase\default
pacote". Veja também o meu código de ediçãoO Magento possui seu próprio gerenciador de pacotes chamado Magento Connect. Você deve verificar este guia na documentação oficial para entender completamente como deve ser a aparência do pacote. Você pode compactar seu módulo a partir de uma instalação Magento depois de entender a estrutura.
fonte
Basicamente, o Magento usa sua própria estrutura para armazenar
.php
,.phtml
,js
,css
,images
arquivos.Para o desenvolvedor de extensões magento, é muito importante que você siga o caminho magento. Verifique este link .
Assim,
.php
arquivos devem ir para aapp/code/community
pastajs
arquivos podem ir parajs
pasta ou naskin/frontend or adminhtml/your_theme_pack/your_theme/js
pastacss
arquivos podem ir para askin/frontend or adminhtml/your_theme_pack/your_theme/css
pastaimages
arquivos podem ir para askin/frontend or adminhtml/your_theme_pack/your_theme/images
pastafiles should go to
pasta 'html app / design / frontend ou adminhtml / template`O front-end PS significa se sua extensão é para armazenamento frontal e adminthml significa se sua extensão é para a área administrativa.
Há uma maneira específica de armazenar esses arquivos no magento, então você deve segui-los.
Eu também verificaria se suas funções desejadas / de cópia já estão disponíveis no framework magento / zend. Por exemplo, criar pdf, enviar e-mail, ler xml, etc. já estão compilados no magento.
Espero que isto ajude.
Atualização 1
Se você quiser apenas manter seus arquivos em algum lugar, poderá em qualquer lugar. Você pode até criar uma nova pasta dentro da raiz do magento. Mas essa não é uma prática recomendada para o magento, que carregará seu servidor ao executar esses arquivos. Você deseja verificar este https://magentotherightway.com/
fonte
local
códigos.