Add method to verify user input exists as class constant of given type
This commit is contained in:
@@ -7,6 +7,7 @@ class SihnonFramework_Exception_AlreadyInitialisted extends SihnonFramework_E
|
||||
|
||||
class SihnonFramework_Exception_NotImplemented extends SihnonFramework_Exception {};
|
||||
class SihnonFramework_Exception_MissingDefinition extends SihnonFramework_Exception {};
|
||||
class SihnonFramework_Exception_ClassNotFound extends SihnonFramework_Exception {};
|
||||
|
||||
class SihnonFramework_Exception_TemplateException extends SihnonFramework_Exception {};
|
||||
class SihnonFramework_Exception_AbortEntirePage extends SihnonFramework_Exception_TemplateException {};
|
||||
|
||||
@@ -370,6 +370,25 @@ class SihnonFramework_Main {
|
||||
return $size;
|
||||
}
|
||||
|
||||
public static function isClassConstantValue($class, $prefix, $value) {
|
||||
try {
|
||||
$reflected = new ReflectionClass($class);
|
||||
} catch (ReflectionException $e) {
|
||||
throw new Sihnon_Exception_ClassNotFound($class);
|
||||
}
|
||||
|
||||
$constants = $reflected->getConstants();
|
||||
foreach ($constants as $const_name => $const_value) {
|
||||
if (preg_match("/{$prefix}/", $const_name)) {
|
||||
if ($value == $const_value) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
SihnonFramework_Main::initialise();
|
||||
|
||||
16
test/constants.php
Normal file
16
test/constants.php
Normal file
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
define('HBC_File', 'test');
|
||||
|
||||
require_once('test/config.php');
|
||||
require_once('source/lib/SihnonFramework/Main.class.php');
|
||||
|
||||
SihnonFramework_Main::registerAutoloadClasses('SihnonFramework', SihnonFramework_Lib, 'Sihnon', Sihnon_Lib);
|
||||
|
||||
assert('SihnonFramework_Main::isClassConstantValue("SihnonFramework_Config", "TYPE_", "bool") == true');
|
||||
assert('SihnonFramework_Main::isClassConstantValue("SihnonFramework_Config", "TYPE_", "int") == true');
|
||||
assert('SihnonFramework_Main::isClassConstantValue("SihnonFramework_Config", "TYPE_", "string") == true');
|
||||
assert('SihnonFramework_Main::isClassConstantValue("SihnonFramework_Config", "TYPE_", "array(string)") == true');
|
||||
assert('SihnonFramework_Main::isClassConstantValue("SihnonFramework_Config", "TYPE_", "class") == false');
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user