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

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software