Vous ne pouvez pas avoir d'expression dans une déclaration de classe.
je suggère passer le chemin:
public function __construct($path)
{
$this->debug_path = $path;
}
Cela vous donne plus de flexibilité si jamais vous voulez changer le chemin, vous ne devez pas changer une constante, tout ce que vous passez
.
Vous pouvez également créer plusieurs objets ayant tous des chemins différents. C'est utile s'il s'agit d'une classe de chargement automatique, car vous voudrez peut-être charger plusieurs répertoires.
$autoloader = new Autoload(dirname(SYS_PATH));
$autoloader->register_loader();
class Autoload
{
public $include_path = "";
public function __construct($include_path="")
{
// Set the Include Path
// TODO: Sanitize Include Path (Remove Trailing Slash)
if(!empty($include_path))
{
$this->include_path = $include_path;
}
else
{
$this->include_path = get_include_path();
}
// Check the directory exists.
if(!file_exists($this->include_path))
{
throw new Exception("Bad Include Path Given");
}
}
// .... more stuff ....
}
Et les commentaires signifient que je vous ai donné le code source de mon projet au lieu de le recréer. Yay! –
bonne chose, merci – JasonDavis
get_include_path() peut renvoyer plusieurs chemins séparés par le séparateur de chemin spécifique du système d'exploitation. Ainsi, votre appel à file_exists échouera si plusieurs chemins sont définis, mais sont des chemins valides individuellement. –