Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

16
respostas

Erro ao dar o comando pra executar o zf.php no Ubuntu e Windows 10

Boa tarde! Estava assistindo o curso utilizando o SO Windows 10, porém ao rodar o comando "./vendor/bin/zf.php" informava que o " . " não era um comando interno do Windows. Criei um VM com Ubuntu fiz todas a instalações necessário para poder acompanhar o curso, porém quando rodo o comando: "./vendor/bin/zf.php". Gera o seguinte erro: rodrigo@desenvolvimento:~/Documentos/estoque/skeleton-application$ ./vendor/bin/zf.php "PHP Fatal error: Method Zend\View\Helper\HeadTitle::__toString() must not throw an exception, caught Zend\I18n\Exception\ExtensionNotLoadedException: Zend\I18n\Translator component requires the intl PHP extension in /home/rodrigo/Documentos/estoque/skeleton-application/module/Application/view/layout/layout.phtml on line 0 <!DOCTYPE html>

rodrigo@desenvolvimento:~/Documentos/estoque/skeleton-application$"

Preciso de ajuda pra continuar o curso.

16 respostas

Oi Rodrigo, tudo bem? O Windows apresenta erros desse tipo sempre que algo não estiver configurado no PATH. Você poderia ter tentado usar php ./vendor/bin/zf.php pra ver se funcionava - isso se o php estiver no PATH do Windows.

Quando ao ubuntu, o erro indica que uma extensão não está instalada no PHP, a extenção é a: intl

Tenta instalar essa extenção ou executar o comando no windows pra ver se funciona?

Boa noite, Wanderson! Quando rodo o comando no Windows: c:\xampp\htdocs\estoque\skeleton-application> "php ./vendor/bin/zf.php"

Está aparecendo esse erro: PHP Warning: Module 'openssl' already loaded in Unknown on line 0

Warning: Module 'openssl' already loaded in Unknown on line 0 Could not open input file: ./vendor/bin/zf.php

Preciso de ajuda pra solucionar esse problema. Estou precisando do curso de Zend no trabalho.

Oi Rodrigo, parece que o módulo do openssl está sendo carregado duas vezes. Pelo que pesquiseri a solução é abrir seu php.ini e encontrar a linha:

extension=openssl.dll

e colocar ponto e vírgula no ínicio dela:

;extension=openssl.dll

Bom dia, Wanderson! Comentei a linha: extension=openssl.dll Porém quando rodo o comando: php ./vendor/bin/zf.php O error permanece : Could not open input file: ./vendor/bin/zf.php

Mas a outra mensagem de erro sumiu Rodrigo? A relacionada a extenção? Outra coisa... De acordo com a documentação do zend tools, você precisa incluir a biblioteca no include_path do php (https://framework.zend.com/manual/1.12/en/zend.tool.framework.clitool.html)

Verifica pra mim também se você consegue abrir o arquivo com um editor de texto, pode ser que o arquivo esteja corrompido por algum problema na hora da instalação, neste caso você vai precisar reinstalar.

Boa noite, Wanderson!!! Quando estou rodando o comando no Windows 10 está aparecendo o seguinte resultado.


C:\xampp\htdocs\estoque>php ./vendor/bin/zf.php modules

dir=$(d=${0%[/\\]*}; cd "$d"; cd "../zendframework/zftool" && pwd)

# See if we are running in Cygwin by checking for cygpath program
if command -v 'cygpath' >/dev/null 2>&1; then
        # Cygwin paths start with /cygdrive/ which will break windows PHP,
        # so we need to translate the dir path to windows format. However
        # we could be using cygwin PHP which does not require this, so we
        # test if the path to PHP starts with /cygdrive/ rather than /usr/bin
        if [[ $(which php) == /cygdrive/* ]]; then
                dir=$(cygpath -m "$dir");
        fi
fi

dir=$(echo $dir | sed 's/ /\ /g')
"${dir}/zf.php" "$@"

Estou precisando de ajuda para continuar como curso.

Oi Rodrigo, você tentou fazer o que disse no post anterior? Incluiu o ZF Tools no include_path do PHP? Esse erro acontece (eu acho) por que no arquivo há comandos o Unix e a execução do script deve ser feita pelo S.O e não totalmente pelo interpretador do PHP.

Wanderson, inseri a zf.tool no path do sistema e erro continua. sistemas - > configurações avançadas -> Variáveis de ambiente -> variáveis do sistema -> path

Oi Rodrigo, não é o PATH do WINDOWS, é o include_path do PHP, dá uma olhada na documentação.

http://php.net/manual/en/function.set-include-path.php

No caso relacionado ao problema no Ubuntu, é que existem duas pastas 'vendor' no projeto criado no Zend, uma que fica no diretório raiz e outra que fica dentro do public, os comandos do Zend Tool devem ser executados dentro da pasta 'public' do projeto. composer require zendframework/zftool:dev-master e ./vendor/bin/zf.php create module [name]

Rodrigo, dá um feedback pra gente aqui?

o meu é windows e deu o mesmo erro

λ php .\vendor\bin\zf.php module

dir=$(d=${0%[/\\]*}; cd "$d" > /dev/null; cd "../zendframework/zftool" && pwd)

# See if we are running in Cygwin by checking for cygpath program
if command -v 'cygpath' >/dev/null 2>&1; then
        # Cygwin paths start with /cygdrive/ which will break windows PHP,
        # so we need to translate the dir path to windows format. However
        # we could be using cygwin PHP which does not require this, so we
        # test if the path to PHP starts with /cygdrive/ rather than /usr/bin
        if [[ $(which php) == /cygdrive/* ]]; then
                dir=$(cygpath -m "$dir");
        fi
fi

dir=$(echo $dir | sed 's/ /\ /g')
"${dir}/zf.php" "$@"

Yago, tudo bem? Você verificou as outras respostas acima? Mesmo assim não teve resultados?

Tudo sim, isso tirei o ; fiz os tutoriais que estavam nas outras respostas e da o mesmo erro

Pior que o rodrigo nem voltou pra dizer se algo funcionou pra ele. Yago, você consegue me descrever o passo a passo ou colocar o link da aula aqui pra mim tentar o processo e ver se consigo achar uma solução?

Galera, nas aulas é utilizado o Zend Framework 2, porém o composer faz o download do Zend Framework 3 que é a versão mais atual. O ZFTool exibe essas mensagens estranhas porquê não é compatível com o Zend Framework 3 no momento, logo os módulos devem ser criados manualmente ou é necessário baixar o Zend Framework 2.

Referências:

https://stackoverflow.com/questions/40844193/does-zend-framework-3-supports-zftool

https://olegkrivtsov.github.io/using-zend-framework-3-book/html/en/Creating_a_New_Module/How_to_Create_a_New_Module_.html