- var_export: documentation ( source)
- get_object_vars: documentation ( source)
- method_exists: documentation ( source)
- ucfirst: documentation ( source)
<?php
trait toArray
{
public function toArray() {
return get_object_vars($this);
}
public function fromArray(array $properties)
{
foreach ($properties as $key => $value) {
if (method_exists($this, 'set' . ucfirst($key))) {
$this->{'set' . ucfirst($key)}($value);
}
}
}
}
interface BazInterface
{
}
class Bazz implements BazInterface
{
}
interface FooInterface
{
public function add(BazInterface $baz);
public function toArray();
public function fromArray(array $properties);
}
class Foo implements FooInterface
{
use toArray;
private $bar;
private $baz;
public function add(Bazz $bazz)
{
}
public function setBar($bar) {
$this->bar = $bar;
return $this;
}
public function setBaz($baz) {
$this->baz = $baz;
return $this;
}
}
$foo = new Foo;
$foo->fromArray(['bar' => 'boo', 'baz' => 'test']);
$fooArray = $foo->toArray();
var_export($fooArray);