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

PHP Fatal error: Uncaught Error na Class

Estou com problemas para testar minhas transações, quando tento criar a turma ele apresentar o erro abaixo:

{Estou usando VScode}

[Running] php "/var/www/pdo_php/criar_turma.php"
PHP Fatal error:  Uncaught Error: Class "Curso\Pdo\Infrastructure\Persistence\ConnectionCreator" not found in /var/www/pdo_php/criar_turma.php:9
Stack trace:
#0 {main}
  thrown in /var/www/pdo_php/criar_turma.php on line 9

Segue abaixo o meu código do criar_turma.php

<?php

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

require_once 'vendor/autoload.php';

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

// iniciando uma transação
$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();
2 respostas
solução!

Olá, Igor. Tudo bem?

Pelo erro que você está enfrentando, parece que o PHP não está conseguindo encontrar a classe ConnectionCreator. Isso geralmente acontece quando o autoload do Composer não está configurado corretamente ou quando o caminho para a classe está incorreto.

Aqui estão algumas sugestões para resolver o problema:

  1. Verifique se você executou o comando composer dump-autoload após adicionar novas classes ou namespaces ao seu projeto. Isso irá garantir que o arquivo autoload.php está atualizado com todas as suas classes.

  2. Verifique se o caminho para a classe ConnectionCreator está correto. A estrutura de diretórios no seu projeto deve corresponder ao namespace que você está utilizando. Por exemplo, se o namespace é Curso\Pdo\Infrastructure\Persistence, então a classe ConnectionCreator deve estar em src/Infrastructure/Persistence/ConnectionCreator.php (ou o caminho equivalente se você estiver usando uma estrutura de diretórios diferente).

  3. Arquivo composer.json: Verifique se o seu arquivo composer.json está configurado corretamente para o autoload. Deve haver uma seção como esta:

    "autoload": {
        "psr-4": {
            "Curso\\Pdo\\": "src/"
        }
    }
    

    Isso assume que suas classes estão dentro do diretório src/. Ajuste conforme necessário para o seu projeto.

  4. Verifique se o nome da classe e o namespace estão corretos tanto no arquivo onde a classe é definida quanto no arquivo onde ela é usada.

Após verificar esses pontos, tente rodar seu script novamente. Espero que isso resolva o problema.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!

Boa noite, muito obrigado realemente era configuração do meu autoload, o caminho estava incorreto, ajustei isso e funcionou! obrigado pela ajuda!