extension = $extension; $this->options = $options; } /** * @return Form */ public function form() { if ($this->form) { return $this->form; } $o = $this->options; $form = new Form($o['id'], $this->extension); $form->init(); if (! empty($o['name'])) { $form->name($o['name']); } if (isset($o['init'])) { call_user_func($o['init'], $form); } $this->form = $form; $this->extension->appendConfigSettings($o['id']); return $this->form; } public function __invoke() { return $this->form(); } public function __call($name, array $arguments) { $form = $this->form(); if (is_object($form)) { if (method_exists($form, $name) || $form::hasMacro($name)) { return call_user_func_array([$form, $name], $arguments); } } return null; } }