perche' evito di creare ed assegnare ogni volta 3 variabili che avranno sempre lo stesso valoreOriginariamente inviato da whisher
Scusa un attimo ma perchè utilizzi static nella funzione ?
non sbagli ... quella funzione l'ho scritta al volo mentre rispondevo al primo post ed include entrambi i casi ... ma diciamo che puoi riadattarla meglio cosi'Originariamente inviato da whisher
e il return true o false ha senso solamente se utilizzi
spl_autoload_register (cioè perde la sua efficacia se rinomini
la funzione __autoload) sbaglio ?
nel secondo caso sara' di fatto la spl a preoccuparsi dell'eccezione. nel primo la generi tu.codice:// __autoload function __autoload($className){ static $classDir = 'classes/', $classPrefix = '', $classSuffix = '.class.php'; $classFile = $classDir.$classPrefix.$className.$classSuffix; if(file_exists($classFile)) require $classFile; else { trigger_error("Unable to load class {$className}. File {$classFile} does not exist.", E_USER_ERROR); } } // autoloader con spl function yourPrefixAutoloader($className){ static $classDir = 'classes/', $classPrefix = '', $classSuffix = '.class.php'; $classFile = $classDir.$classPrefix.$className.$classSuffix; $result = file_exists($classFile); if($result) require $classFile; return $result; } spl_autoload_register('yourPrefixAutoloader');
Per concludere, la spl permette di gestire i files per cartelle, ergo l'organizzazione dei files puo' essere migliore.
... ma bisogna stare attenti a gerarchie e nomi classi ... se due classi hanno lo stesso nome si rischia solo di far casini ...codice:function yourBasePrefixAutoloader($className){ static $classDir = 'classes/', $classPrefix = '', $classSuffix = '.class.php'; $classFile = $classDir.$classPrefix.$className.$classSuffix; $result = file_exists($classFile); if($result) require $classFile; return $result; } spl_autoload_register('yourBasePrefixAutoloader'); function yourDeepPrefixAutoloader($className){ static $classDir = 'classes/components/', $classPrefix = '', $classSuffix = '.class.php'; $classFile = $classDir.$classPrefix.$className.$classSuffix; $result = file_exists($classFile); if($result) require $classFile; return $result; } spl_autoload_register('yourDeepPrefixAutoloader');![]()


Rispondi quotando