Créer une classe statique et utiliser des constantes serait la meilleure façon de résumer les constantes spécifiques:
static class Constants
{
const Name = 'foo';
const Path = 'Bar';
}
Et puis utiliser comme si :
echo Constants::Name; //foo
echo Constants::Path; //bar
en ce qui concerne le précheck que vous pouvez faire
function _defined($key,$check_classes = false)
{
if($check_classes)
{
foreach(get_declared_classes() as $class)
{
if(constant($class . '::' . $key) !== null)
{
return true;
}
}
}
if(!defined($key)) //global Scope
{
return true;
}
}
Utilisation:
class a
{
const bar = 'foo';
}
if(_defined('bar',true)) //This would be true because its within a
{
//Blah
}
Si votre pensée d'une situation comme si
class a
{
const b = '?';
}
class b
{
const b = '?';
}
les constantes sont dans le cadre de la classe afin qu'ils aient aucun effet sur l'autre !
Que se passe-t-il si la constante est déjà définie? Si le nom de la constante est vraiment générique, le fait qu'il soit défini ne garantit pas qu'il s'agit d'une autre version de la même classe ... – Piskvor
si vous êtes au stade de votre application où vous ne savez pas ce qui est défini et ce qui est pas alors vous devriez repenser votre architecture IMO – RobertPitt