forms/inputs/BaseInput.php
2024-05-28 17:10:06 +03:00

66 lines
1.2 KiB
PHP
Executable File

<?php
namespace itguild\forms\form\inputs;
use itguild\forms\form\templates\Template;
abstract class BaseInput
{
protected Template $inputTemplate;
protected bool $hasLabel = false;
protected string $html = '';
protected string|Label $label = "";
protected string $labelString = "";
/**
* @return void
*/
public function render(): void
{
echo $this->html;
}
public function fetch(): string
{
return $this->html;
}
public abstract function create();
/**
* @param string|Label $title
* @return $this
*/
public function setLabel(string|Label $title): self
{
$this->hasLabel = true;
$this->label= $title;
return $this;
}
protected function createLabel()
{
if($this->hasLabel) {
if(is_string($this->label)){
$this->labelString = "<label>$this->label</label>";
}
else {
$this->labelString= $this->label->create()->fetch();
}
}
}
/**
* @param $template
* @return $this
*/
public function setTemplate($template): self
{
$this->inputTemplate = new $template();
return $this;
}
}