ao tentar construir o autoload é apresentado esse erro:
string(55) "C:\xampp\htdocs\curso php\strings/src/Alura\Usuario.php"
Fatal error: Uncaught Error: Class 'App\Alura\Usuario' not found in C:\xampp\htdocs\curso php\strings\cadastro.php:5 Stack trace: #0 {main} thrown in C:\xampp\htdocs\curso php\strings\cadastro.php on line 5
o meu autoload.php está assim:
<?php
spl_autoload_register(function ($classe) {
$prefixo = "App\\";
$diretorio = __DIR__ . '/src/';
if(strncmp($prefixo, $classe, strlen($prefixo)) !== 0) {
return;
}
$namespace = substr($classe, strlen($prefixo));
$namespace_arquivo = str_replace('\\', DIRECTORY_SEPARATOR, $namespace);
$arquivo = $diretorio . $namespace_arquivo . '.php';
echo "<p><pre>";
var_dump($arquivo);
echo "</p></pre>";
});
o meu cadastro.php
<?php
require 'autoload.php';
$usuario = new App\Alura\Usuario($_POST['nome']);
$nome = $usuario->getNome();
$sobrenome = $usuario->getSobrenome();
$contato = new App\Alura\Contato($_POST['email']);
$usuario = $contato->getUsuario();
?>
o meu Usuario.php
<?php
namespace App\Alura;
class Usuario {
Private $nome;
private $sobrenome;
public function __construct(string $nome)
{
$nomeSobrenome = explode(" ", $nome, 2);
if ($nomeSobrenome[0] === "") {
$this->nome = "Nome Inválido";
} else {
$this->nome = $nomeSobrenome [0];
}
if ($nomeSobrenome[1] === null) {
$this->sobrenome = "Sobrenome Inválido";
} else{
$this->sobrenome = $nomeSobrenome[1];
}
}
public function getNome(): string {
return $this->nome;
}
public function getSobrenome(): string {
return $this->sobrenome;
}
}
e o meu Contato.php
<?php
namespace App\Alura;
class Contato {
private $email;
public function __construct(string $email){
$this->email = $email;
}
public function getUsuario(): string{
$posicaoArroba = strpos($this->email, "@");
if ($posicaoArroba === false){
return "email inválido.";
}else {
return substr($this->email, 0 , $posicaoArroba);
}
}
}
imagino que pode ser erro de digitação mas já cansei de procurar e não obtive exito.