- substr: documentation ( source)
- strpos: documentation ( source)
- preg_match: documentation ( source)
- ucwords: documentation ( source)
<?php
//return $this->has_many('Post');
class Foo {
public static $has_many = "Post";
public function has_many($a){
return 'hola';
}
function get_relationship($model) {
$class = new ReflectionClass($this);
$staticProperties = $class->getStaticProperties();
foreach($staticProperties as $propertyName => $value) {
if(preg_match('/^(has_many|age)$/', $propertyName) && $value == $model) {
return $this->{$propertyName}($model);
}
}
}
function __call($name, $args) {
if(strpos($name, 'get_') === 0) {
$model = ucwords(substr($val, 4));
return $this->get_relationship($val);
}
}
}
$foo = new Foo;
echo $foo->get_post;
?>