Ho trovato questo codice in giro:
codice:
<?php
class includeWrapper{
public static $paths = array();
public static function includeOnce($path_file){
if(!isset(self::$paths[$path_file])){
include($path_file);
self::$paths[$path_file] = true;
}
}
public static function requireOnce($path_file){
if(!isset(self::$paths[$path_file])){
require($path_file);
self::$paths[$path_file] = true;
}
}
// just for testing
public static function getPaths(){
return self::$paths;
}
}
?>
che va utilizzato ad esempio cosi':
codice:
<?php
require("includeWrapper.class.php");
includeWrapper::requireOnce("test.php");
?>
L'idea e' molto interessante e questa "versione" del codice e' sicuramente piu' veloce, soprattutto per me che faccio un grande uso di include e require. Ha pero' un pessimo bug che praticamente lo rende inutile: le variabili e le classi eventualmente definite negli include file per ovvie ragioni di scope nn risultano definite fuori dalla funzione wrapper
qualche idea su come si possa risolvere il problema?