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

PHP e PDO - Uncaught Error Class PdoStudentRepository not fund in criar-turma.php

Olá ! Segue o erro:

/usr/bin/php /php/phpPdo/criar-turma.php

PHP Fatal error: Uncaught Error: Class 'Alura\Pdo\Infrastructure\Repository\PdoStudentRepository' not found in /php/phpPdo/criar-turma.php:10 Stack trace:

#0 {main} thrown in /php/phpPdo/criar-turma.php on line 10

Process finished with exit code 255

No criar-turma.php:

<?php

use Alura\Pdo\Infrastructure\Persistence\ConnectionCreator;

use Alura\Pdo\Infrastructure\Repository\PdoStudentRepository;

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();

Obrigado !

7 respostas

Olá.

Onde está o arquivo PdoStudentRepository.php? Como está seu composer.json? Você já rodou o composer dumpautoload?

Opa! Obrigado pela atenção, Professor.

PdoStudentRepository.php:

/php/phpPdo/src/Infrastructure/PdoStudentRepository.php

composer.json:

{ "autoload": { "psr-4": { "Alura\Pdo\": "src/" } }, "require": { "ext-pdo": "*" } }

Tem um tal de composer.lock logo abaixo do json, nao sei se influencia.

Já rodei o Composer dumpautoload, deu esse problema apartir na aula 5 iniciando com transações.

Aparentemente tudo está ok. Você pode colocar seu código no GitHub pra eu dar uma olhada?

Professor, nunca tinha usado o GitHub, desculpe se não for desse modo:

https://github.com/mrsitech/PhpPdo

Rodei todos os arquivos novamente e apareceu outro erro, que não vi na aula de implementação da Interface.

Ao dar Run no PdoStudentRepository.php aparece o seguinte erro também:

php/phpPdo/src/Infrastructure/PdoStudentRepository.php

PHP Fatal error: Uncaught Error: Interface 'Alura\Pdo\Domain\Repository\StudentRepository' not found in /php/phpPdo/src/Infrastructure/PdoStudentRepository.php:12 Stack trace:

#0 {main} thrown in /php/phpPdo/src/Infrastructure/PdoStudentRepository.php on line 12

Process finished with exit code 255

Se eu consegui entender, é como se o PdoStudentRepository não estivesse achando o StudentRepository. php, é isso?

solução!

Pelo seu código do GitHub:

Sua classe PdoStudentRepository está no namespace Alura\Pdo\Infrastructure\Repository mas está na pasta Infrastructure. Por isso o autoload não está achando ela. Ou você precisa tirar o namespace Repository ou colocar o arquivo na pasta Infrastructure/Repository.

BLZ , Professor. O criar-turma.php rodou! Escolhi criar o Infrastructure/Repository.

porém, mesmo com as mudanças, ao rodar o PdoStudentRepository.php ocorre o seguinte erro:

/usr/bin/php

/php/phpPdo/src/Infrastructure/Repository/PdoStudentRepository.php

PHP Fatal error: Uncaught Error: Interface 'Alura\Pdo\Domain\Repository\StudentRepository' not found in /php/phpPdo/src/Infrastructure/Repository/PdoStudentRepository.php:12 Stack trace:

#0 {main} thrown in /php/phpPdo/src/Infrastructure/Repository/PdoStudentRepository.php on line 12

Process finished with exit code 255

Mudei o arquivo do Git:

https://github.com/mrsitech/PhpPdo

Já valeu! Obrigado!

Quando esse erro ocorre? Rodando qual comando?