Chequeando el manual, he visto una clase muy interesante:
Código PHP:
<?php
class autoload_autoloader {
public static $instance;
private $_src=array('controladores/', 'modelos/', 'config/');
private $_ext=array('.php', '.class.php', 'Controller.php');
public static function init(){
if(self::$instance==NULL){
self::$instance=new self();
}
return self::$instance;
}
private function __construct(){
spl_autoload_register(array($this, 'clean'));
spl_autoload_register(array($this, 'dirty'));
}
private function clean($class){
global $docroot;
$class=str_replace('_', '/', $class);
spl_autoload_extensions(implode(',', $this->_ext));
foreach($this->_src as $resource){
set_include_path($docroot . $resource);
spl_autoload($class);
}
}
private function dirty($class){
global $docroot;
$class=str_replace('_', '/', $class);
foreach($this->_src as $resource){
foreach($this->_ext as $ext){
@include($docroot . $resource . $class . $ext);
}
}
spl_autoload($class);
}
}
?>
Supongo que la idea es que ya no se usen los requires en las clases que la usen
pero donde la inicializo? en el index de mi aplicación?... intenté asi (trabajando en localhost):
Código PHP:
$docroot = 'http://localhost/';
require 'config/Autoloader.php';
require 'config/FrontController.php';
autoload_autoloader::init();
FrontController::main();
Pero aún me sale un error Fatal error: Class 'Cliente' not found in ... Espero me puedan ayudar y disculpen por tantas preguntas