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

na hora de chamar a classe, da erro e diz que a a classe n foi encontrada.

insira seu código aqui
<?php


spl_autoload_register(function($nomeNamespaces){

  $caminhoArquivo = str_replace("alura\\modelo\\", "C:\Users\Ale\Desktop\projetos\php\sistema_banco\classes\\" ,$nomeNamespaces );
  $caminhoArquivo = str_replace("/", DIRECTORY_SEPARATOR , $caminhoArquivo);
  $caminhoArquivo .= ".php";
  echo $caminhoArquivo . PHP_EOL ;
  if(file_exists($caminhoArquivo)){

    include $caminhoArquivo;

  }
});
use alura\modelo\Pessoa;
use alura\modelo\Funcionario;
use alura\modelo\Cliente;

$cliente1 = new Pessoa("011,065,100-62", "arthur", "madrid");
echo $Pessoa->cpf;
<?php
namespace alura\modelo\Pessoa;



class Pessoa{

  public $cpf;
  public $nome;

  // !!!METODOS!!!///
  public function __construct(string $cpf, string $nome, string $endereço){
     $this->cpf = $cpf;
     $this->nome = $nome;
     $this->endereço = $endereço;

}
};

echo "fui chamado"; 
Fatal error: Uncaught Error: Class 'alura\modelo\Pessoa' not found in C:\Users\Ale\Desktop\projetos\php\sistema_banco\banco.php:20
Stack trace:
#0 {main}
  thrown in C:\Users\Ale\Desktop\projetos\php\sistema_banco\banco.php on line 20
4 respostas

Arthur, você instanciou um objeto do tipo Cliente mas me mostrou o código da classe Pessoa. =/

Bom dia, Vinicius. Na hora de copiar e colar o código eu nem percebi que estava "new Cliente", mas n muda mt já que o "new Pessoa" tbm não esta sendo encontrado. Eu coloquei aquele echo no namespace Pessoa pra ver se estava encontrando a pasta. E esta encontrando sim. Vou botar o a mensagem de erro do prompt no fim da questão.

solução!

Arthur, seu namespace está errado:

namespace alura\modelo\Pessoa;

Com esse namespace, o nome completo da classe (namespace + classe) seria alura\modelo\Pessoa\Pessoa. Entendeu?

Funcionou sim. Obrigado pela atenção e pela ajuda. Vou ficar mais ligado daqui em diante. vlw