46 lines
836 B
PHP
46 lines
836 B
PHP
<?php
|
|
namespace IPTools;
|
|
|
|
/**
|
|
* @author Safarov Alisher <alisher.safarov@outlook.com>
|
|
* @link https://github.com/S1lentium/IPTools
|
|
*/
|
|
trait PropertyTrait
|
|
{
|
|
/**
|
|
* @param string $name
|
|
* @return mixed
|
|
*/
|
|
public function __get($name)
|
|
{
|
|
if(method_exists($this, $name)) {
|
|
return $this->$name();
|
|
}
|
|
|
|
foreach (array('get', 'to') as $prefix) {
|
|
$method = $prefix . ucfirst($name);
|
|
if(method_exists($this, $method)) {
|
|
return $this->$method();
|
|
}
|
|
}
|
|
|
|
trigger_error('Undefined property');
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* @param string $name
|
|
* @param mixed $value
|
|
*/
|
|
public function __set($name, $value)
|
|
{
|
|
$method = 'set'. ucfirst($name);
|
|
if (!method_exists($this, $method)) {
|
|
trigger_error('Undefined property');
|
|
return;
|
|
}
|
|
$this->$method($value);
|
|
}
|
|
|
|
}
|