namespace não funciona
Pessoal, bom dia!
Não estou conseguindo importar uma classe usando composer.
O intrigante é que é apenas uma e tudo, aparentemente, esta correto.
Árvore do projeto
site /
/classes
/classes/Rotas.php
/mvc
/mvc/controller
/mvc/controller/Contato.php
/mvc/view
/mvc/view/contato.php
/mvc/view/home.php
/public
/public/config.php
/public/index.php
/public/router.php
/vendor
Tenho o index que importa 2 arquivos somente, um de config e outro de router.
index.php
<?php
require_once 'config.php';
require_once 'router.php';
config.php
<?php
error_reporting(E_ALL);
ini_set('display_errors', true);
date_default_timezone_set('America/Sao_Paulo');
require_once '../vendor/autoload.php';
router.php
<?php
use classes\Rotas;
$rota = new Rotas;
$rota->get("/", function() {
require_once '../mvc/view/home.php';
});
$rota->get("/contato", "Contato@form");
Rotas.php
<?php
namespace classes;
use mvc\controller\Contato;
class Rotas {
public function get (String $rota, $require = null){
if ($_SERVER['REQUEST_URI'] === $rota) {
if ( is_string($require) and $require !== "" ){
$require = strtolower($require);
$require = explode('@', $require);
$class = ucfirst($require[0]);
$metodo = $require[1];
$classe = new $class;
return $classe->$metodo();
}
if ( is_callable ($require) )
$require();
}
}
}
Contato.php
<?php
namespace mvc\controller;
class Contato {
public function form () {
require_once '../mvc/view/contato.php';
}
}
Erro:
**Fatal error: Uncaught Error: Class 'Contato' not found in D:\web\rotas.com\classes\Rotas.php:25 Stack trace: #0 D:\web\rotas.com\public\router.php(11): classes\Rotas->get() #1 D:\web\rotas.com\public\index.php(4): require_once('D:\\web\\rotas.co...') #2 {main} thrown in D:\web\rotas.com\classes\Rotas.php on line 25**
Não acho essa falha
Detalhe: a Classe **Routas.php** está sendo carregada normalmente, o que me garante que o autoload está funcionando também!.Discussão (0)
Carregando comentários...