public function renderForm(array $htmlOptions = []) : string { if (isset(static::$schema['template'])) { $dir = dirname(static::$schema['template']); $template = basename(static::$schema['template']); } else { $reflector = new \ReflectionClass(static::class); $filename = $reflector->getFileName(); $dir = dirname($filename); $template = pathinfo(basename($filename), PATHINFO_FILENAME) . '.html'; } $view = new View('Twig'); $view->addTemplateRawPath($dir); return $view->render($template, ['filters' => $this, 'html' => $htmlOptions]); }
public function renderFormElement(array $htmlOptions = []) : string { if (isset($this->options['template'])) { $dir = dirname($this->options['template']); $template = basename($this->options['template']); } else { $reflector = new \ReflectionClass(static::class); $filename = $reflector->getFileName(); $dir = dirname($filename); $template = pathinfo(basename($filename), PATHINFO_FILENAME) . '.html'; } $view = new View('Twig'); $view->addTemplateRawPath($dir); $props = []; foreach (array_keys(get_object_vars($this)) as $prop) { $props[$prop] = $this->{$prop}; } return $view->render($template, $props + ['html' => $htmlOptions]); }