Заранее скажу вопрос не очень тупо как кажется но интересная идея для реализации (пока что не будем думать и безопасности и всякое связанном ним)
Вопрос в том можно ли при инициализации класса (__construct) передавая ему массив и после создание вызвать параметры той что массиве вернут или задать как getter setter но в виде action?
ну типа это:
$object = new Someclass(['id'=>1,'title'=>'Lorem ipsum set','category'=>2,'category_title'=>'Article']);
$title = $object->getTitle();
$object = $object->setTitle($title."some edits");
я точно не знаю возможно-ли это при рантайме сделать такой генератор но дошёл до вот такого решении
class Tester
{
function __construct($arr)
{
foreach ($arr as $key => $value) {
$this->$key = $value;
$global = $value;
$this->{"get".ucfirst(strtolower($key))} = (function() { return $this->{$value}; }); // если сделать return __FUNCTION__ то вернёт значение {closure}
}
}
public function __call($method, $args)
{
if (isset($this->$method)) {
$func = $this->$method;
return call_user_func_array($func, $args);
}
}
}
$tester = new Tester(['id'=>1,'title'=>'Lorem ipsum set','category'=>2,'catTitle'=>'Article']);
echo $tester->getTitle(); // null
создать отдельный класс не вариант в БД есть очень много разные данные для каждой сделать не возможно!