Witam
Chciałbym używać w swojej aplikacji przestrzeni nazw, a także użyć autoloadera klas.
Na początku pokaże wam strukturę mojej aplikacji.

posiadam taki Autoloader
<?php
class Autoloader {
{
if (self::$loader == NULL)
self::$loader = new self();
return self::$loader;
}
public function __construct()
{
spl_autoload_register
(array($this,'controller')); }
public function controller($class)
{
try{
require_once($class);
} else {
throw new Exception('nie mozna dolaczyc pliku: ' .$class);
}
} catch (Exception $e){
}
}
}
taki Controller
namespace Framework\Core\Controller;
require_once('libs/yaml/Yaml.php');
require_once('View.php');
abstract class Controller
{
protected $pdo;
protected $view;
public function __construct()
{
try
{
$file='c:/wamp/www/framework/core/parameters/parameters.yml';
$database= Yaml::parse($file);
$database=(object)$database['database'];
$this->pdo= new PDO($database->type.':host='.$database->host.';dbname='.$database->dbname, $database->user, $database->password);
$this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(DBException $e)
{
echo 'The connect can not create with database<br>'. $e->getMessage(); }
$this->view= new View();
}
abstract public function indexAction();
}
i taki IndexContoller
namespace App\Contollers\IndexContoller;
use Framework\Core\Controller as Contoller;
class IndexController extends Controller {
function __construct() {
parent::__construct();
}
public function indexAction() {
}
public function showAction($arg=false){
$this->view->render('Index::show');
}
public function addAction()
{
}
}
po wpisaniu adresu w przeglądarce który powinien uruchomić metodę show z IndexContoller otrzymuje taki komunikat:
string 'App\Contollers\IndexContoller\Controller' (length=40)
nie mozna dolaczyc pliku: App\Contollers\IndexContoller\Controller
co robię nie tak, coś nie mogę zrozumieć tych namespace, bo Autoloader bez użycia namespace implementuje poprawnie