Ciao,
nel mio piccolo ho "partortito" la seguente funzione che si occupa egregiamente di caricare le classi
che mi servono tenendo presente che tengo separate quelle comuni da quelle relative alla parte "client" e parte "admin".
Che ne pensate ? Sono aperto a qualsiasi consiglio. E' migliorabile ? E se si come ?
Grazie
Codice PHP:
<?php
// Impedisco l'accesso diretto alla pagina
defined ( 'eblock' ) or die ( 'Access Restricted' );
// Annullo qualsiasi precedente autoload
spl_autoload_register ( null, false );
// Precaricamento estensioni
spl_autoload_extensions ( '.php' );
// Funzione autoload
function classLoader ( $class )
{
/**
*
* Array contenente le varie locazioni per le classi
* che sono classi comuni a tutto il progetto e classi
* o sottoclassi specifiche per il pannello di controllo
* e per il sito. Le costanti che ho usato sono tuttue
* definite nel file index.php che a sua volta logiacamente
* ha un include a questo file.
*
* define ( 'eBlock', 1, true );
* define ( 'ds', DIRECTORY_SEPARATOR, true );
* define ( 'eAdminPath', dirname ( __FILE__ ), true );
* $path = explode ( ds, eAdminPath );
* array_pop ( $path );
* define ( 'eSitePath', implode ( ds, $path ), true );
*
*/
$classPath = array ( eAdminPath . ds . 'class', eSitePath . ds . 'common' . ds , eSitePath . ds . 'class' );
// Estraggo i path delle directory che contengono le classi.
foreach ( $classPath as $key => $value )
{
// Verifico se esiste il file
if ( file_exists ( $value . '/' . strtolower ( $class ) . '/' . strtolower ( $class ) . '.php' ) )
{
// Se c'è lo includo
include $value . '/' . strtolower ( $class ) . '/' . strtolower ( $class ) . '.php';
}
}
}
// E registro l'autoload
spl_autoload_register ( 'classLoader' );
?>