Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

IDE PhpStorm não exibe sugestões de métodos disponíveis para $alunoRepository

Pelo que entendi, devemos registrar anotações nos atributos, classes e métodos para que a IDE do PhpStorm nos auxilie com as sugestões e recursos de auto-preenchimento...

Classe EntityManagerFatory

<?php

namespace Alura\Doctrine\Helper;

use Doctrine\ORM\EntityManager;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\Tools\Setup;

class EntityManagerFactory
{
    /**
     * @return EntityManagerInterface
     * @throws \Doctrine\ORM\ORMException
     */
    public function getEntityManager(): EntityManagerInterface
    {
        $rootDir = __DIR__ . '/../..';
        $config = Setup::createAnnotationMetadataConfiguration(
            [$rootDir . '//src'], true
        );
//    conectando com banco de dados MySql
        $connection = array(
            'dbname' => 'doctrine',
            'user' => 'tester',
            'password' => '123456',
            'host' => 'localhost',
            'driver' => 'pdo_mysql'
        );

        return EntityManager::create($connection, $config);
    }
}

Classe Aluno

<?php

namespace Alura\Doctrine\Entity;

/**
 * @Entity
 */
class Aluno
{
    /**
     * @Id
     * @GeneratedValue
     * @Column(type="integer")
     */
    private $id;
    /**
     * @Column(type="string")
     */
    private $nome;

Acredito que as anotações sejam essas registradas na Classe EntityManagerFactory, embora tb postei meu código da classe Aluno, porém não descobri o que está faltando para ativar esses recursos de sugestão e auto-preenchimento no Php Storm

Agradeço, se puderem ajudar. Muito obrigado.

Ps: PhpStorm ativado com licença educacional (registrada essa informação, para o caso de houver alguma limitação decorrente de alguma possível licença)

1 resposta
solução!

Olá, Leonardo.

Sim, o PHPStorm consegue ler as anotações do código. Pra ele identificar que sua variável $alunoRepository é a classe que nós criamos, basta anotar a própria variável.

Ex.:

/** @var AlunoRepository */
$alunoRepository = $entityManager->getRepository(Aluno::class);