2
respostas

PHP Parse error [Aula: Conhecendo a CLI]

<?php

namespace Alura\Doctrine\Entity;

use Doctrine\ORM\Mapping\Column;
use Doctrine\ORM\Mapping\Entity;
use Doctrine\ORM\Mapping\GeneratedValue;
use Doctrine\ORM\Mapping\Id;


#[Entity]
class Student
{
    #[Id]
    #[GeneratedValue]
    #[Column]
    public readonly int $id;

    public function __construct(
        #[Column]
        public readonly string $name
    ){
    }
}

Com o código acima, recebo o seguinte erro quando dou o comando: php bin/doctrine.php orm:info

PHP Parse error: syntax error, unexpected identifier "int", expecting variable in /home/roms/Documents/PHP/Doctrine/src/Entity/Student.php on line 17

2 respostas

Pessoal ainda não achei o real motivo, mas consegui passar pelo problema.

Estou registrando isso aqui, na esperança de ajudar alguém que passe pela mesma situação.

O problema estava na declaração das variáveis, especificamente no modificador READONLY. Quando retirei da variável '$id' o erro passou para a próxima variável, como mostro abaixo: "PHP Parse error: syntax error, unexpected identifier "string", expecting variable in..." Nesse momento percebi o empedimento e retirei o modificador também da variável '$nome'.

Feito isso, o comando 'orm:info' funcionou e trouxe o resultado esperado.

Lembrando que meu PHPStorm está configurado para usar o PHP 8.1 desde o primeiro erro!

Oi Romulo, como vai?

Fico feliz que tenha solucionado o problema. Agradeço por compartilhar sua solução conosco, estará ajudando muitos alunos e alunas.

Caso surjam dúvidas, fico à disposição.

Abraços e bons estudos!