Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
15
respostas

PHP Fatal error: Uncaught Error: Class "Alura\Pdo\Infrastructure\Persistence\ConnectionCreator" not found

Boa tarde, segue meu código:

<?php



use Alura\Pdo\Domain\Model\Student;
use Alura\Pdo\Domain\Repository\PdoStudentRepository;
use Alura\Pdo\Infrastructure\Persistence\ConnectionCreator;

require_once 'vendor/autoload.php';

$connection = ConnectionCreator::createConnection();
$studentRepository = new PdoStudentRepository($connection);

$connection->beginTransaction();
$aStudent = new Student(
            null,
            'Nico Steppat',
            new DateTimeImmutable('1985-05-01'),
);

$studentRepository->save($aStudent);

$anotherStudent = new Student(
    null,
    'Sergio Lopes',
    new DateTimeImmutable('1985-05-01'),
);

$studentRepository->save($anotherStudent);

$connection->commit();

Ele está apresentando o seguinte erro:

PHP Fatal error: Uncaught Error: Class "Alura\Pdo\Infrastructure\Persistence\ConnectionCreator" not found in C:\Users\thauan.silva\Desktop\Alura\Formação-Avançando-com-PHP\php-pdo-projeto-inicial\criar-turma.php:11 Stack trace: #0 {main} thrown in C:\Users\thauan.silva\Desktop\Alura\Formação-Avançando-com-PHP\php-pdo-projeto-inicial\criar-turma.php on line 11

Fatal error: Uncaught Error: Class "Alura\Pdo\Infrastructure\Persistence\ConnectionCreator" not found in C:\Users\thauan.silva\Desktop\Alura\Formação-Avançando-com-PHP\php-pdo-projeto-inicial\criar-turma.php:11 Stack trace: #0 {main} thrown in C:\Users\thauan.silva\Desktop\Alura\Formação-Avançando-com-PHP\php-pdo-projeto-inicial\criar-turma.php on line 11

15 respostas

Olá, Thauan! Tudo bem?

Verifique se o nome "Infrastructure" está dessa forma no namespace, verifique se a pasta está escrita dessa forma também.

Tudo tranquilo e por aí?

Aparenta estar com a mesma nomenclatura.

Nome da Pasta: Infrastructure Namespace: use Alura\Pdo\Infrastructure\Persistence\ConnectionCreator; namespace na classe ConnectionCreator.php :Alura\Pdo\Infrastructure\Persistence;

Tem como mandar foto da pasta do projeto?

Não estou conseguindo anexar imagem e nem copiar, acho que ta bugado.

Fica enviando a imagem 100% mas não sobe.

Você consegue subir o projeto pro github e me mandar?

O meu apresentou o mesmíssimo erro, após avançar no curso, cheguei na parte de tratamentos de Erro, fui testar e o meu código não ta passando da linha 9: $connection = CriadorConexao::criarConexao(); Aparece no Console de Depuração PHP Fatal error: Uncaught Error: Class "ProjetoPessoal\Infraestrutura\Persistencia\CriadorConexao" not found in C:\Estudos\PHP\phpPDO\testeSoltodoRepositorio.php:9 Stack trace: #0 {main} thrown in C:\Estudos\PHP\phpPDO\testeSoltodoRepositorio.php on line 9.

Utilizei o: use ProjetoPessoal\Infraestrutura\Persistencia\CriadorConexao;

sendo o Namespace da minha classe de conexão: namespace ProjetoPessoal\Infraestrutura\Persistencia;

(Não consegui anexar as img aqui também) Fiz upload delas no IM.GE: https://i.im.ge/2024/01/16/Ylq0Iq.Capturar2.png https://i.im.ge/2024/01/16/YlqiMC.Capturar.png

Igor, olhando os prints, vi que você não tem o arquivo composer.json configura o autoload nele de acordo com a psr-4, a partir disso abra o terminal na pasta do projeto e rode um composer dumpautoload e veja se resolve.

Segue no canto inferior o comando que me pediu, no canto superior esquerdo o conteúdo do meu arquivo composer.json (A pasta estava minimizada na outra imagem) https://i.im.ge/2024/01/16/Ylss3c.composer.png. Não deu erro nenhum até agora, estou bem surpreso honestamente falando

Bom dia, Vinicius.

Segue o link no github:

https://github.com/thauand2/alura_php

At.te,

solução!

Thauan, o erro está na pasta Infrastructure. Ela deve estar dentro da pasta src, pois o autoload configurado aponta para ela.

Você movendo a pasta Infrastructure da raiz do projeto para a dentro da pasta src deve resolver o problema.

Igor, o seu código funcionou?

Olhando o seu print vi que você criou o arquivo composer.json dentro da pasta vendor, mas por padrão este arquivo deve ficar na raiz do projeto. Dá uma olhada nesta aula:

https://cursos.alura.com.br/course/php-composer/task/56140

Vinicius, problema resolvido!

Era isso mesmo, obrigado!

Obrigado Vinicius, tmj

Bons estudos pessoal! :)