Boa tarde, Thiago! Tudo bem?
Esse problema está acontecendo porque você está executando o projeto de uma forma errado, pelo menos errado para a estrutura atual do projeto.
Se observamos bem a estrutura do seu projeto notamos que o arquivo principal dele, que é o index.php
está dentro da pasta "public", ele foi movido para esse local na organização para o padrão MVC feito no curso anterior.
Logo, para rodar esse projeto corretamente você precisa apontar onde está esse arquivo e os arquivos estáticos do projeto, e você consegue fazer isso através do terminal usando o comando -t nome-da-pasta
:
php -S localhost:8080 -t public
Caso ao rodar esse código apareça um erro informando que a tabela video
não foi encontrada, você pode adicionar algumas configurações no seu construtor da classe VideoRepository
que toda vez que a aplicação for iniciada checará se essa tabela existe, caso não exista rodará uma query SQL para criar:
public function __construct(private PDO $pdo)
{
// Inicialize a conexão com o SQLite e crie a tabela se necessário
$this->pdo = new PDO('sqlite:' . __DIR__ . '/../../banco.sqlite');
$this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Criação da tabela automaticamente se ela não existir
$this->createTableIfNotExists();
}
// Método para criar a tabela caso ela não exista
private function createTableIfNotExists(): void
{
$createTableSql = '
CREATE TABLE IF NOT EXISTS videos (
id INTEGER PRIMARY KEY AUTOINCREMENT,
url TEXT NOT NULL,
title TEXT NOT NULL
);
';
$this->pdo->exec($createTableSql);
}
Para não ficar uma configuração muito extensa separei a parte que faz a query SQL para um método externo chamado createTableIfNotExists
.
Espero ter ajudado e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.