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