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

Começou a dar erro quando comecei a usar o autoload

Cheguei a baixar os arquivos com os códigos e fiz toda a troca, conforme o arquivo abaixo da classe banco.

<?php

require_once 'autoload.php';

use Alura\Banco\Modelo\Conta\Titular; use Alura\Banco\Modelo\Endereco; use Alura\Banco\Modelo\CPF; use Alura\Banco\Modelo\Conta\Conta;

$endereco = new Endereco('Petrópolis', 'um bairro', 'minha rua', '71B'); $vinicius = new Titular(new CPF('123.456.789-10'), 'Vinicius Dias', $endereco); $primeiraConta = new Conta($vinicius); $primeiraConta->deposita(500); $primeiraConta->saca(300); // isso é ok

echo $primeiraConta->recuperaNomeTitular() . PHP_EOL; echo $primeiraConta->recuperaCpfTitular() . PHP_EOL; echo $primeiraConta->recuperaSaldo() . PHP_EOL;

$patricia = new Titular(new CPF('698.549.548-10'), 'Patricia', $endereco); $segundaConta = new Conta($patricia); var_dump($segundaConta);

$outroEndereco = new Endereco('A', 'b', 'c', '1D'); $outra = new Conta(new Titular(new CPF('123.654.789-01'), 'Abcdefg', $outroEndereco)); unset($segundaConta); echo Conta::recuperaNumeroDeContas();

Porém continua dando esse erro abaixo:

Fatal error: Uncaught Error: Class 'Alura\Banco\Modelo\Endereco' not found in C:\Users\guipg\Documents\PHP.Alura\src\banco.php:10 Stack trace:

#0 {main} thrown in C:\Users\guipg\Documents\PHP.Alura\src\banco.php on line 10

Sendo que a linha 10 é: $endereco = new Endereco('Petrópolis', 'um bairro', 'minha rua', '71B');

Obrigado!

7 respostas

Guilherme, como está sua estrutura de pastas (manda um print, por favor)? E como está o código do autoload.php?

Código do autoload.php abaixo e estruturas de pastas em anexo. Obrigado!

<?php

spl_autoload_register(function (string $nomeCompletoDaClasse) { $caminhoArquivo = str_replace('Alura\Banco', 'src', $nomeCompletoDaClasse); $caminhoArquivo = str_replace('\', DIRECTORY_SEPARATOR, $caminhoArquivo); $caminhoArquivo .= '.php';

if (file_exists($caminhoArquivo)) {
    require_once $caminhoArquivo;
}

});

Guilherme, você não mandou a estrutura de pastas.

Bom dia! Me desculpa mestre... pensei que a imagem que eu tinha mandado, tinha ido mas não foi. Eu descrevi embaixo a estrutura das pastas. Conta que fica dentro de Modelo tem Conta.php e Titular.php. Já Modelo além da pasta Conta, tem também CPF.php, Endereco.php, Funcionario.php e Pessoa.php. O autoload.php e banco.php estão fora da pasta Modelo. Obrigado!

▼src
   ▼Modelo
    |  ▼Conta
    |      Conta.php
    |      Titular.php
    | CPF.php
    | Endereco.php
    | Funcionario.php
    | Pessoa.php
autoload.php 
banco.php

autoload.php e banco.php estao dentro da pasta src?

Estão sim!

solução!

Entao é esse o problema, Guilherme.

Repara que o autoload.php tenta entrar na pasta src, mas se ele já está lá, ele vai tentar encontrar os arquivos em src/src.

No treinamento estes arquivos ficaram fora da pasta src