2016-07-31 20:47:25 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace App\Entity\Traits;
|
|
|
|
|
|
2016-08-01 17:30:43 +02:00
|
|
|
trait GetterSetter
|
2016-07-31 20:47:25 +02:00
|
|
|
{
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Returns the getter name for a field
|
|
|
|
|
*
|
|
|
|
|
* @param string $field
|
|
|
|
|
* @return string
|
|
|
|
|
*/
|
|
|
|
|
protected function getterName($field)
|
|
|
|
|
{
|
|
|
|
|
return sprintf('get%s', ucfirst(
|
2016-08-01 17:30:43 +02:00
|
|
|
str_replace(' ', '', ucwords(str_replace('_', ' ', $field)))
|
2016-07-31 20:47:25 +02:00
|
|
|
));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Returns the setter name for a field
|
|
|
|
|
*
|
|
|
|
|
* @param string $field
|
|
|
|
|
* @return string
|
|
|
|
|
*/
|
|
|
|
|
protected function setterName($field)
|
|
|
|
|
{
|
|
|
|
|
return sprintf('set%s', ucfirst(
|
2016-08-01 17:30:43 +02:00
|
|
|
str_replace(' ', '', ucwords(str_replace('_', ' ', $field)))
|
2016-07-31 20:47:25 +02:00
|
|
|
));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Populate entity with the given data.
|
|
|
|
|
* The set* method will be used to set the data.
|
|
|
|
|
*
|
|
|
|
|
* @param array $data
|
|
|
|
|
* @return boolean
|
|
|
|
|
*/
|
|
|
|
|
public function populate(array $data = [])
|
|
|
|
|
{
|
|
|
|
|
foreach ($data as $field => $value) {
|
|
|
|
|
$setter = $this->setterName($field);
|
|
|
|
|
if (method_exists($this, $setter)) {
|
|
|
|
|
$this->{$setter}($value);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|
2016-08-01 17:30:43 +02:00
|
|
|
}
|