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

Erro com a classe Video

Estou com problema na clase Video. O this esta indicando erro mas nao consigo identifica a solução.

<?php

declare(strict_types=1);

namespace Alura\Mvc\Entity;

class Video
{
    public readonly int $id;
    public readonly string $url;
    public function __construct(
        string $url,
        public readonly string $title,
    ) {
        $this->setUrl($url);
    }

    private function setUrl(string $url)
    {
        if (filter_var($url, FILTER_VALIDATE_URL) == false) {
            throw new \InvalidArgumentException();
        }

        $this->url = $url;//problema
    }

    public function setId(int $id): void
    {

        $this->id = $id; //problema
    }
}
10 respostas

Em qual linha está ocorrendo o erro? Qual a mensagem de erro?

Bom dia. Nas linhas do $this->id e $this->url

Removi o readonly da classe e sumiu o erro. Mas nao entendi o motivo do erro.

Obrigado

Andressa, qual o erro? Qual sua versão do PHP?

Oi, a minha versao é 8.2. a ide diz que as propriedades $id e $url nao podem ser alteradas. Entao removi o readonly para funcionar. Mas nao entendi o erro porque estava igual ao video.

Obrigado

.... agora abri o projeto e a aplicação esta com muitos erros, no entendi nada Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Andressa, o print que você mostra é um erro do VS Code, não do PHP. Ele não está reconhecendo sua versão do PHP. Nele, mostra que a versão é a 7.4 (você pode ver isso no canto inferior direito do seu print).

Pelo cmd o meu php é o 8.2. como isso é possivel? Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Veja em File, Preferences, Settings qual é a versão do PHP que está definida para o VS-CODE.

Encontrei essa configuração: É essa que preciso alterar? Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Andressa, eu não uso VS Code, então não sei te dizer qual a configuração necessária.

Mas ao executar o código você recebe algum erro?

solução!

Vinicius, coloquei o endereço do executável do php no C:\ e resolveu o problema. Muito Obrigado. Agora esta tudo certo, sem erros.