- microtime: documentation ( source)
- class_alias: documentation ( source)
<?php
function buildDynamicClass($parent, $child) {
$reflection = new ReflectionClass($child);
if($reflection->isAbstract()) {
$abstract = 'abstract';
} else {
$abstract = '';
}
eval($abstract.' class '.$parent.' extends '.$child.' { }');
}
function buildDynamicClass2($parent, $child) {
class_alias($child, $parent);
}
class A {
}
$start = microtime(TRUE);
for($i=0;$i<10000;$i++) {
buildDynamicClass('A', 'B'.$i);
}
echo 'buildDynamicClass: '.(microtime(TRUE)-$start);
$start = microtime(TRUE);
for($i=0;$i<10000;$i++) {
buildDynamicClass2('A', 'B'.$i);
}
echo 'buildDynamicClass2: '.(microtime(TRUE)-$start);