public function make($data) { $data = is_object($data) && $data instanceof Container ? $data->assoc() : $data; if (!Arrays::isAssoc($data)) { throw new Exception("This method needs a valid object to process."); } $e = $data['entity'] = $this->entity; $class = $this; $obj = new Container(); $store = function () use($obj, $e) { $class = new Attributes($e); return $class->save($obj); }; $remove = function () use($obj, $e) { $class = new Attributes($e); return $class->delete($obj); }; $date = function ($f) use($obj) { return date('Y-m-d H:i:s', $obj->{$f}); }; $display = function ($f, $echo = true) use($obj) { if (false === $echo) { return Html\Helper::display($obj->{$f}); } else { echo Html\Helper::display($obj->{$f}); } }; $obj->event('store', $store)->event('trash', $remove)->event('date', $date)->event('display', $display); foreach ($data as $k => $v) { if (!isset($obj->{$k})) { $obj->{$k} = $v; } } return $obj; }