Пример #1
0
require_once "fullshop.php";
function classData(ReflectionClass $class)
{
    $details = "";
    $name = $class->getName();
    if ($class->isUserDefined()) {
        $details .= "{$name} is user defined\n";
    }
    if ($class->isInternal()) {
        $details .= "{$name} is built-in\n";
    }
    if ($class->isInterface()) {
        $details .= "{$name} is interface\n";
    }
    if ($class->isAbstract()) {
        $details .= "{$name} is an abstract class\n";
    }
    if ($class->isFinal()) {
        $details .= "{$name} is a final class\n";
    }
    if ($class->isInstantiable()) {
        $details .= "{$name} can be instantiated\n";
    } else {
        $details .= "{$name} can not be instantiated\n";
    }
    return $details;
}
$prod_class = new ReflectionClass('CdProduct');
print classData($prod_class);
Пример #2
0
<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Reflection Class Example Usage</title>
    <link rel="stylesheet" href="style.css">
  </head>
  <body>
    <h3>Reflection Class Example Usage</h3>
    <?php 
require 'util.php';
spl_autoload_register(function ($class) {
    require $class . '.php';
});
$prod_class = new ReflectionClass('CdProduct');
// output of the following doesn't look very useful
// Reflection::export($prod_class);
// standard var_dump()
$cd1 = new CdProduct('cd1', 'bob', 'bobbleson', 4, 50);
echo '<br><br><pre>' . var_dump($cd1) . '</pre>';
print '<p><b>Class Info</b></p>';
print nl2br(classData($prod_class));
?>

  </body>

</html>
Пример #3
0
        $details .= "{$name} -- это интерфейс";
    }
    if ($class->isAbstract()) {
        $details .= "{$name} -- это абстрактный класс";
    }
    if ($class->isFinal()) {
        $details .= "{$name} -- это финальный класс";
    }
    if ($class->isInstantiable()) {
        $details .= "{$name} -- можно создать экземпляр класса";
    } else {
        $details .= "{$name} -- нельзя создать экземпляр класса";
    }
    return $details;
}
echo classData($prod_class);
// выводим информацию
echo "<hr>";
//---------------------------------------------------------------------------------
// выводим код класса
class ReflectionUtil
{
    static function getClassSource(ReflectionClass $class)
    {
        // принимаем объект класса ReflectionClass
        $path = $class->getFileName();
        // получаем путь к файлу
        $lines = @file($path);
        // получаем массив с кодом
        $from = $class->getStartLine();
        // получаем строку где начинается нужный код
Пример #4
0
    if ($class->isAbstract()) {
        $details .= "{$name} is a final class\n";
    }
    if ($class->isFinal()) {
        $details .= "{$name} is a final class\n";
    }
    if ($class->isInstantiable()) {
        $details .= "{$name} can be instantiated\n";
    } else {
        $details .= "{$name} can not be instantiated\n";
    }
    return $details;
}
$s = new returns();
$t = new ReflectionClass("returns");
print classData($t);
echo "<pre>";
//ReflectionClass::export($t);
//print_r($t);
exit;
$s->sf("1", "2", "3");
$d = new returns3();
print_r(class_implements($d));
exit;
$s = new returns();
//$s->hehe();
print_r(get_class_vars('returns'));
echo "\n";
print is_callable(array($s, "hehe"));
echo "\n";
print "234";