Oi Henrique, tudo bom?
Primeiramente, perdão pela demora no retorno. Mas o caso realmente tinha alguns pontos delicados.
Vou explicar o cenário no qual executei seu projetoe os problemas que encontrei.
Executei o projeto com a versão 7.2 do PHP mesmo e com o Mysql 5.7, ambos foram configurados em uma "máquina virtual" (docker), então garantindo o mesmo ambiente os resultados devem ser os mesmos independente do sistema operacional.
Primeiro, encontrei o mesmo problema que o Wanderson, do carregamento dos Helpers. Esse erro estava acontecendo porque segundo a PSR-0/PSR-4, devemos declarar a nossa estrutura de pasta com o mesmo nome que damos pros nossos namespaces. O zend segue esse padrão de autoload. No seu sistema operacional esse erro não acontece porque o Windows é case insensitive e tanto eu quanto o Wanderson executamos em sistemas operacionais Unix, onde essa realidade não se aplica.
Portanto a solução pra esse caso:
- O nome da pasta "view" em module/Estoque/src/Estoque/view deve ser "View"
Depois de resolver esse erro, me deparei com outro erro de autoload. Mas, dessa vez o erro estava no carregamento dos relacionamentos OneToMany e ManyToOne do doctrine. O problema também estava na forma com que a declaração das anotações estavam escritas. A solução pra esse caso:
- OnetoMany, na classe Categoria, deve ser OneToMany em pascal case (a mesma ideia se repete para ManyToOne na classe Produto. O PHP é case sensitive para a declaração das classes/anotações
Após arrumar as anotações, criei a primeira instância do banco de dados com o comando orm:schema-tool:create
, e finalmente pude chegar no mesmo erro que você:
Zend\ServiceManager\Exception\ServiceNotCreatedException
An exception was raised while creating "identity"; no instance returned
Esse, tem a mesma causa dos outros dois. No arquivo Estoque/module.config.php na área de configuração de autenticação, temos credentialCallabel e deve ser credentialCallable. Realizando essa alteração tanto o logout quanto o formulário funcionam normalmente.
Além desses erros, também encontrei outros erros de sintaxe no meio do caminho.
Deixei tudo corrigido no meu github pra você poder baixar e comparar certinho.
https://github.com/andrechavesg/loja-zend-corrigida/tree/master/Skeleton-Application
(PS: nessa versão eu alterei a configuração de conexão com o banco de dados pra bater na minha "máquina virtual". Se você for baixar o zip e rodar ai, acho que vai precisar repassar aquela configuração do banco)
Nesse primeiro contato com o framework vale a pena gastar um tempo lendo a documentação do zend 2 e comparando com os processos que você está tentando realizar. Eu me apoiei bastante na documentação ao longo dessa jornada também =)
No nosso caso estamos usando o zend 2 mas no caso do zend 3 (ou qualquer outro framework) a ideia é a mesma. A documentação é sempre o melhor norte que a gente pode ter.
Abraço