Tenha o mesmo com o Magento CE 1.8 e 1.9
Após atualizar o php de 5.5.16 para 5.6.0 no meu VPS, obtive 2 erros no [magento] /var/log/system.log:
ERR (3): Deprecated functionality: iconv_set_encoding(): Use of iconv.internal_encoding is deprecated in [magento]/lib/Zend/Locale/Format.php on line 311
ERR (3): Deprecated functionality: iconv_set_encoding(): Use of iconv.internal_encoding is deprecated in [magento]/lib/Zend/Locale/Format.php on line 472
Eu encontrei essas informações https://github.com/zendframework/zf1/pull/347 Mas todas as variações nas alterações do php.ini não funcionam para mim (fui reiniciado o serviço php-fpm após cada alteração no php.ini, é claro )
Aqui https://github.com/zendframework/zf1/pull/347/files#r14075423 , li as alterações sugeridas exatamente nessas linhas (313 e 474), mas não quero usar nenhum hacker nos arquivos do Magento Core.
No front-end e no back-end, não vejo problemas com a codificação - tudo parece bem (tenho localizações russas - front-end e painel de administração).
Posso ignorar esse erro no system.log ou não? Qual o caminho certo para corrigir esse erro?
fonte
Respostas:
Eu não acho que você deva usar o Magento com o php 5.6 ainda.
Suponho que haverá uma declaração oficial quando o Magento oferecer suporte ao php 5.6 e um patch oficial, se necessário.
fonte
Você pode usar o seguinte patch:
É do Github-Gist completo:
fonte
patch -p1 < 0001-BUGIFX-Magento-Zend-Framework-1-PHP5.6.patch
parabéns a @ Mautz-et-tongVocê precisa alterar
lib/Zend/Validate/Hostname.php
e substituir asinternal_encoding
chamadas relacionadas porini_get('default_encoding')
e todas as outras ocorrências na estrutura do Zend também ...fonte
O PHP 5.6 descontinuou algumas funções, especialmente a que o Zend está usando: http://de1.php.net/manual/en/migration56.deprecated.php#migration56.deprecated.iconv-mbstring-encoding
Se eu entendi isso corretamente, você só precisa definir a codificação padrão , a chamada do método não é mais necessária.
fonte
Você pode executar esse script de shell no diretório raiz do Magento para se livrar dessa mensagem se estiver executando o OSX: https://gist.github.com/jayelkaake/34109641e5489e3e7e30
Observe que ele modifica alguns arquivos em sua pasta lib /, portanto, qualquer atualização no Magento os substituirá (embora eu realmente espere que o Magento corrija o erro e adicione a compatibilidade oficial do PHP 5.6.9 na próxima versão).
fonte
Para mim, o sistema que codifica o php.ini já estava definido como UTF-8, portanto, em lib / Zend / Locale / Format.php, adicionei: -
E a mesma coisa em lib / Zend / Validate / Hostname.php
No seu arquivo php.ini, verifique o valor
default_charset="UTF-8"
mesmo no Windows.fonte
Isso me ajudou:
Crie as seguintes pastas:
Copie os seguintes arquivos de / lib / Zend / para / app / code / local / Zend /:
Abra os arquivos de / app / code / local / Zend / em um editor de texto e procure por "internal_encoding" e substitua-os por "default_charset". Antes de fazer isso, verifique se a string "internal_encoding" é um parâmetro de uma função relacionada ao iconv. Não substitua "mb_internal_encoding", "$ internal_encoding" ou qualquer outro material não relacionado ao iconv, pois isso quebrará o código.
Fonte: https://www.code007.ro/how-to-fix-php-5-6-deprecated-messages-in-magento/
fonte
Se você precisar de uma solução rápida, poderá substituir na linha index.php (cerca de 40):
com:
Isso deve "ocultar" notificações / erros sobre funções obsoletas.
Aviso: Esta não é uma correção real, apenas oculta informações / avisos sobre este problema com iconv_set_encoding ()
Trabalhou para mim no Magento 1.8.1.0
fonte
basta instalar a biblioteca php gd usando o comando relevante
sudo apt-get install php5.6-gd
dophp5-gd
ou diga para o RehHat
sudo yum install php56-gd
ouphp5-gd
e agora reinicie o apache e pronto, como de costume.
fonte