Modifique as alterações nos arquivos principais para permanecer mesmo após as atualizações do Magento

magento.stackexchange https://magento.stackexchange.com/questions/106106

Pergunta

Fiz alterações nos arquivos Magento Core recentemente, mas essas alterações foram substituídas após uma pequena atualização do Magento CE 1.9.2.4 da versão 1.9.2.3.Agora tenho que fazer essas alterações novamente.Estas são alterações obrigatórias para minha loja e são necessárias para que o símbolo da rupia (moeda indiana) apareça nas faturas Magento.A fonte padrão não suporta o símbolo.Como posso fazer essas alterações para permanecerem permanentes no arquivo principal?

Foi útil?

Solução

Você pode simplesmente copiar o arquivo principal (que deseja substituir) e colá-lo app/code/local/Mage mantendo o mesmo caminho desse arquivo php.Então você pode começar a editar este arquivo, o magento irá ler o seu arquivo em vez do arquivo principal.Abaixo está um exemplo:=> Se você deseja substituir app/code/core/Mage/Catalog/Block/Product.php você precisa simplesmente colocá-lo Product.php em app/code/local/Mage/Catalog/Block/Product.php.Fazer apenas isso permitirá que o magento leia este arquivo da pasta local em vez da pasta principal.

A razão para tal comportamento de leitura da pasta local para a pasta principal é:Este processo é chamado de substituição da funcionalidade principal do Magento e é baseado no fato de que o Magento define seus caminhos de inclusão do PHP para procurar primeiro em app/code/local/ e depois app/code/community/ e finalmente em app/code/core/.Isso tem o efeito de que quaisquer arquivos com o mesmo nome colocados no espaço de nome local ou da comunidade terão precedência no carregamento, portanto, podemos substituir quase qualquer arquivo principal dessa maneira.

Deméritos do uso da abordagem acima:

  1. Por um lado, devemos substituir o arquivo principal completo e copiar todas as funções da classe.Assim que o arquivo substituído estiver no lugar, este será o arquivo que será usado sempre em vez do arquivo principal do magento.Dado que a maioria das classes principais contém vários e muitas vezes um grande número de métodos, isso significa que estamos efetivamente substituindo todos esses métodos em nosso arquivo.

  2. Essa abordagem não é amigável para atualização do magento, pelos motivos acima.

  3. Essa abordagem não funciona para controladores.

Esta abordagem só é útil durante o teste/desenvolvimento do seu módulo.Em vez de escrever um módulo inteiro, você pode substituir rapidamente a classe principal para ver se tudo funciona bem.

Outras dicas

Evite fazer alterações nos arquivos do Magento Core, você deve tentar sobrescrevê-lo em seu próprio pool local.Dessa forma, quando uma atualização é feita suas alterações não são perdidas.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top