Eu instalei uma extensão de módulo que gera um erro fatal
"Erro fatal: a classe 'Mage_Giftcards_Helper_Data' não foi encontrada em .... / app / Mage.php na linha 546" em admin.
Eu refferi este link /programming//a/9191286/2919940 e este link também /magento//a/7133/3693
Mas eu tenho
<global>
<helpers>
<giftcards>
<class>Webtex_Giftcards_Helper</class>
</giftcards>
</helpers>
</global>
na minha config.xml
e eu tenho essa aula
class Webtex_Giftcards_Helper_Data extends Mage_Core_Helper_Data{
// my methods
}
declarado no /app/code/local/Webtex/Giftcards/Helper/Data.php
caminho.
Desabilitei o compilador e limpei o cache, criando o var/cache
diretório vazio .
Eu encontrei em todo lugar que config.xml
deveria ter classe auxiliar definir e Data.php deveria declarar essa classe auxiliar.
Mas eu tenho os dois no meu caso, o que pode ser a razão desse erro? Também testei esse módulo na minha nova instalação do magento,
A versão Magento é 1.7.0.2
Por favor, forneça ajuda para este erro? Se houver conflitos de nomes de classes, como podemos depurar isso?
obrigado
fonte
Respostas:
Isso é comum ao fazer referência a um auxiliar ausente. Em muitos casos, o nome da classe em si está malformado ou seu nome abreviado está incorreto, e é por isso que o Magento a procura no caminho
Mage_Giftcards_Helper_Data
(veja o exemplo 1 abaixo). Para os exemplos a seguir, configurei um módulo chamadoMyCompany_MyModule
.Estas são apenas algumas das muitas maneiras pelas quais você pode se dar mal ao definir ajudantes:
Alias de classe auxiliar incorreto:
Refiro meu ajudante como:
Eu recebo o erro:
O que deu errado?
Meu alias da classe auxiliar é definido como
mymodule
:Alterar meu código curto para
Mage::helper('mymodule')
produzir o resultado desejado.Nome de classe malformado
Refiro o meu ajudante (corretamente desta vez):
Eu recebi:
O que deu errado?
Minha definição de classe estava ausente "_Data":
Auxiliar / Personalizado:
Isso é semelhante ao que acontece quando você tenta se referir a uma classe auxiliar em um arquivo não chamado "Data.php".
Refiro meu ajudante como:
O caminho do auxiliar do meu módulo foi definido como:
Eu tenho um arquivo de classe em app / code / local / MyCompany / MyModule / Helper / Custom.php
Eu recebo o erro:
O que deu errado?
Você precisa especificar outras classes auxiliares em um módulo específico como subcaminhos para o nome abreviado do auxiliar do módulo. É semelhante à maneira como os blocos e modelos funcionam - mas no nível superior não há subpasta.
Corrijo esse erro referenciando meu arquivo de classe auxiliar Custom.php da seguinte maneira:
fonte
Isso só acontece quando você instala a extensão com o compilador de ativação. Aqui está o que você deve fazer
1 etapa app / etc / module / seu módulo que você instalou recentemente desative o módulo
2 Etapa Faça o login no administrador / sistema / compilador de ferramentas desativar o compilador Faça o upload do código novamente, ele funcionará bem e você poderá compilar seu código novamente
boa sorte
fonte
codepool/extension_name/module_name/Helper/Data.php
includes/src/
fonte