io uso questo script semplicissimo e completamente funzionante.
Codice PHP:
<?php
//restituisce un array contenente i file della cartella passata come argomento
function list_dir($dir)
{
$handle = opendir($dir);
if (!$handle)
die("Impossibile aprire la directory: $dir");
$d = array();
while (false !== ($file = readdir($handle))) {
if (substr($file, strlen($file)-4,4) == ".php") //sceglie solo i file con estensione .php
$d[count($d)] = $dir . "/" . $file;
}
closedir($handle);
return $d;
}
//carica tutte le classi e le funzioni
$phpVersion_5 = (substr(phpversion(), 0, 1) >= 5);
//carico tutte le funzioni
if($client)
{
$functions=list_dir("include/f/");
for($i=0; $i<count($functions); $i++)
{ require_once($functions[$i]); }
}
else
{
$functions=list_dir("../include/f/");
for($i=0; $i<count($functions); $i++)
{ require_once($functions[$i]); }
}
//carico le classi e le interfacce
if($phpVersion_5)
{
function __autoload($class_name)
{
$c_client="include/c/".$class_name.".php";
$c_admin="../".$c_client;
//classi lato cliente
if(file_exists($c_client))
{ require_once($c_client); }
//classi lato amministratore
else if(file_exists($c_admin))
{ require_once($c_admin); }
else
{ die("Classe sconosciuta: $class_name"); }
}
}
else
{
//carico le classi parenti per prime
//require_once("path_classe");
//carico le classi lato cliente
$classes=list_dir("include/c");
for($i=0; $i<count($classes); $i++)
{ require_once($classes[$i]); }
//carico le classi lato amministratore
$classes=list_dir("../include/c");
for($i=0; $i<count($classes); $i++)
{ require_once($classes[$i]); }
}
?>
Naturalmente devi modificare i percorsi.
Ti basta includere questo file in ogni pagina ed il gioco è fatto.