Io faccio così:
Per la pulizia del codice mantengo le classi in file separati, questo crea forse un proliferare di file, ma so che se devo andare a modificare la classe fattura la troverò in una cartella classes e in un file chiamato fattura.class.inc.
Se lavoro in un programma solo mio, che non utilizza altre classi, una classe autoloader va benissimo:
class ClassAutoloader {
public function __construct() {
spl_autoload_register(array($this, 'loader'));
}
private function loader($className) {
include '../../includes/classes/'.$className . '.class.inc';
}
}
$autoloader = new ClassAutoloader();Ma se al mio programma aggiungo una classe per generare PDF (TCPDF) o Smarty, o qualsiasi classe già costruita?
Nel caso di Smarty, questo richiama tutta una serie di sottoclassi che non sono ordinate secondo la nostra idea, e quindi avremo una serie fatal error.
Risultato? o cambiamo tutta la struttura di classi di quanto abbiamo incluso o ci affidiamo a qualcosa d'altro.
Io mi sono fatto una funzione d'inclusione che mi permette di inserire le classi che voglio, in questo modo:
function includiclassi($text) {
$classi = explode(',', $text);
foreach ($classi as $value) {
include '../../library/include/classes/' . trim($value) . '.class.inc';
}
}che richiamo in questo modo:includiclassi('Fattura,Rigo_input,Smarty,Cli_for,Rigo');Buon lavoro.
Nessun commento:
Posta un commento