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

Endereço não encontrado

Boa tarde senhoras e senhores.

Não entendi o problema dentro do projeto, entendi o funcionamento do arquivo routes.php, porém não recebo nenhum retorno de indexação quando acesso o localhost.

Precisei instalar o composer nas dependencias do projeto, mas não entendi se está faltando alguma outra configuração além desta.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

https://github.com/thirofer/aluraphp

2 respostas
solução!

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 ✓.

Boa tarde Armano, grande ajuda!

Realmente a pasta padrão teve que ser alterada para execução do projeto.

Vou dar prosseguimento e retorno caso precise de mais alguma força.

Muito obrigado