Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

PHPStorm e Doctrine

Eu estou tendo que anotar todas as variaveis para poder acessar o autocomplete.

Agora para a $alunoRepository não sei nem como apontar...

Acredito que possa ser uma configuração do PHPStorm pois em seu código durante a aula funciona.

Detalhe até para variáveis de Aluno como a $neco, funcionou sem a necessidade de colocar a anotação.

Agora eu to tendo de anotar tudo porq se não, nada se acha...

<?php

use Alura\Doctrine\Entity\Aluno;
use Alura\Doctrine\Helper\EntityManagerFactory;

require_once __DIR__ . '/../vendor/autoload.php';

$entityManagerFactory = new EntityManagerFactory();
$entityManager = $entityManagerFactory->getEntityManager();

$alunoRepository = $entityManager->getRepository(Aluno::class);

/**@var Aluno[] $alunoList */
$alunoList = $alunoRepository->findAll();

foreach ($alunoList as $aluno) {
    echo "ID: {$aluno->getId()}\n Name: {$aluno->getNome()}\n\n";
}
/**@var Aluno $victor */
$victor = $alunoRepository->find(2);
echo $victor->getId() . PHP_EOL . $victor->getNome(). PHP_EOL;

/** @var Aluno $sidney */
$sidney = $alunoRepository->findOneBy([
    'nome' => 'Sidney Fatuche'
]);

echo $sidney->getNome() . PHP_EOL;
4 respostas
solução!

Encontrei uma forma de anotar $alunoRepository, só não sei se esta correto e também se esta elegante...

$entityManagerFactory = new EntityManagerFactory();
$entityManager = $entityManagerFactory->getEntityManager();

/**@var \Doctrine\ORM\EntityRepository $alunoRepository */
$alunoRepository =  $entityManager->getRepository(Aluno::class);

desta forma funciona...

Agora porque esse comportamento estranho acontece?

Sidney, o retorno do método getRepository não é bem definido visto que é dinâmico. Por isso o PHPStorm não sabe exatamente qual classe vai ser retornada, entende? :-)

Obrigado, Vinicius!

Eu revi a aula que aborda o tema para entender que eu fiz de diferente do se código e não encontrei nem um ponto divergente.

Durante o curso os seus $alunoRepository sempre eram identificados pelo PhpStorm, agora será que é alguma configuração do PhpStorm que faz este comportamento...

O meu é zeradinho instalei e sai usando esta tudo meio desconfigurado.

Até lhe pergunto se conhece algum treinamento da Alura focado em PhpStorm, isso pode me ajudar a deixar o meu mais espertinho...

Sidney, honestamente não sei se eu fiz alguma configuração. Acredito que não... Vê se tem algum plugin de Doctrine ou até mesmo de Symfony. Pode ser isso

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