diff --git a/.gitignore b/.gitignore
index 723ef36..9fd1dab 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
-.idea
\ No newline at end of file
+.idea
+/vendor/
diff --git a/composer.json b/composer.json
new file mode 100644
index 0000000..a1f8c3b
--- /dev/null
+++ b/composer.json
@@ -0,0 +1,15 @@
+{
+ "name": "itguild/forms",
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "itguild\\forms\\": "src/"
+ }
+ },
+ "authors": [
+ {
+ "name": "nikita"
+ }
+ ],
+ "require": {}
+}
diff --git a/index.php b/index.php
index dc09474..4bd2cea 100644
--- a/index.php
+++ b/index.php
@@ -1,19 +1,13 @@
beginForm("tsad");
@@ -32,3 +26,16 @@ $form->textarea("textarea", "dsadasads", ["id" => "t1"]);
$form->select("select", ["class1" => "option", "class2" => "b2", "class3" => "b4"], 'class2', ["id" => "s1"]);
$form->button('button', "Кнопка", ["id" => "button"]);
$form->endForm();
+
+$activeForm = new \itguild\forms\ActiveForm();
+$activeForm->field(class: TextInput::class, name: 'nnn', params: ["style" => "color:RED;display:flex"])
+ ->setLabel("dfdfdffd")
+ ->render();
+
+$activeForm->field(class: TextInput::class, name: 'bbb', params: [])
+ ->setLabel("bbbbbb")
+ ->render();
+
+$activeForm->field(class: Radio::class, name: 'nameee',params: ["style" => "color:RED;display:flex"])
+ ->setLabel("bbbbb")
+ ->render();
\ No newline at end of file
diff --git a/src/ActiveForm.php b/src/ActiveForm.php
new file mode 100644
index 0000000..6118d52
--- /dev/null
+++ b/src/ActiveForm.php
@@ -0,0 +1,32 @@
+fieldObject = new $class($name, $params);
+ $this->fieldObject->create();
+
+ return $this;
+ }
+
+ public function setLabel(string $title)
+ {
+ $this->fieldObject->setLabel($title);
+
+ return $this;
+ }
+
+ public function render()
+ {
+ $this->fieldObject->render();
+ }
+
+}
\ No newline at end of file
diff --git a/src/Form.php b/src/Form.php
index b38b1b3..285423e 100644
--- a/src/Form.php
+++ b/src/Form.php
@@ -1,14 +1,14 @@
html;
+ }
+
+ public abstract function create();
+
+ /**
+ * @return $this
+ */
+
+
+}
\ No newline at end of file
diff --git a/src/inputs/Button.php b/src/inputs/Button.php
index d4e77cc..7b29f25 100644
--- a/src/inputs/Button.php
+++ b/src/inputs/Button.php
@@ -1,16 +1,19 @@
createParams($this->paramsArray);
- echo "";
+ $this->html = "";
+
+ return $this;
}
/**
@@ -41,7 +46,16 @@ class Button
public static function build(string $name, string $value, array $paramsArray = []): void
{
$input = new self($name, $value, $paramsArray);
- $input->create();
+ $input->create()->render();
+ }
+ /**
+ * @param string $title
+ * @return $this
+ */
+ public function setLabel(string $title): self
+ {
+ $this->html = "";
+ return $this;
}
}
\ No newline at end of file
diff --git a/src/inputs/Checkbox.php b/src/inputs/Checkbox.php
index d3a9c79..d00ce18 100644
--- a/src/inputs/Checkbox.php
+++ b/src/inputs/Checkbox.php
@@ -1,10 +1,11 @@
createParams($this->paramsArray);
- echo "";
+ $this->html = "";
+ return $this;
}
/**
@@ -42,8 +45,17 @@ class Checkbox
public static function build(string $name, string $value, array $paramsArray): void
{
$checkbox = new self($name, $value, $paramsArray);
- $checkbox->create();
+ $checkbox->create()->render();
}
+ /**
+ * @param string $title
+ * @return $this
+ */
+ public function setLabel(string $title): self
+ {
+ $this->html = "";
+ return $this;
+ }
}
\ No newline at end of file
diff --git a/src/inputs/Label.php b/src/inputs/Label.php
index 342159d..35f74f7 100644
--- a/src/inputs/Label.php
+++ b/src/inputs/Label.php
@@ -1,9 +1,10 @@
createParams($this->paramsArray);
- echo "";
+ $this->html = "";
+
+ return $this;
}
@@ -39,7 +43,7 @@ class Label
public static function build(string $title, array $paramsArray = [])
{
$label = new self($title, $paramsArray);
- $label->create();
+ $label->create()->render();
}
diff --git a/src/inputs/Radio.php b/src/inputs/Radio.php
index 9af3bc9..c6389c9 100644
--- a/src/inputs/Radio.php
+++ b/src/inputs/Radio.php
@@ -1,13 +1,15 @@
name = $name;
@@ -15,12 +17,14 @@ class Radio
}
/**
- * @return void
+ * @return $this
*/
- public function create(): void
+ public function create(): self
{
$paramsString = $this->createParams($this->paramsArray);
- echo "";
+ $this->html = "";
+
+ return $this;
}
/**
@@ -31,6 +35,16 @@ class Radio
public static function build(string $name, array $paramsArray = []): void
{
$label = new self($name, $paramsArray);
- $label->create();
+ $label->create()->render();
+ }
+
+ /**
+ * @param string $title
+ * @return $this
+ */
+ public function setLabel(string $title): self
+ {
+ $this->html = "";
+ return $this;
}
}
\ No newline at end of file
diff --git a/src/inputs/Select.php b/src/inputs/Select.php
index c4777d8..317a454 100644
--- a/src/inputs/Select.php
+++ b/src/inputs/Select.php
@@ -1,11 +1,12 @@
createParams($this->paramsArray);
$optionsString = $this->createOption($this->options, $this->value);
- echo "";
+ $this->html = "";
+
+ return $this;
}
@@ -49,7 +53,16 @@ class Select
public static function build(string $name, array $options = [], $value = null, array $paramsArray = []): void
{
$textarea = new self($name, $options, $value, $paramsArray);
- $textarea->create();
+ $textarea->create()->render();
}
+ /**
+ * @param string $title
+ * @return $this
+ */
+ public function setLabel(string $title): self
+ {
+ $this->html = "";
+ return $this;
+ }
}
\ No newline at end of file
diff --git a/src/inputs/TextArea.php b/src/inputs/TextArea.php
index 193d7b8..2e9140e 100644
--- a/src/inputs/TextArea.php
+++ b/src/inputs/TextArea.php
@@ -1,8 +1,11 @@
name = $name;
$this->value = $value;
@@ -23,14 +26,17 @@ class TextArea
}
/**
- * @return void
+ * @return $this
*/
- public function create(): void
+ public function create(): self
{
$paramsString = $this->createParams($this->paramsArray);
- echo "";
+ $this->html = "";
+
+ return $this;
}
+
/**
* @param string $name
* @param string $value
@@ -40,7 +46,17 @@ class TextArea
public static function build(string $name, string $value, array $paramsArray = []): void
{
$textarea = new self($name, $value, $paramsArray);
- $textarea->create();
+ $textarea->create()->render();
+ }
+
+ /**
+ * @param string $title
+ * @return $this
+ */
+ public function setLabel(string $title): self
+ {
+ $this->html = "";
+ return $this;
}
diff --git a/src/inputs/TextInput.php b/src/inputs/TextInput.php
index 7a7d89d..185cd46 100644
--- a/src/inputs/TextInput.php
+++ b/src/inputs/TextInput.php
@@ -1,10 +1,11 @@
createParams($this->paramsArray);
- echo "";
+ $this->html = "";
+
+ return $this;
}
/**
@@ -39,7 +43,19 @@ class TextInput
public static function build(string $name, array $paramsArray = []): void
{
$input = new self($name, $paramsArray);
- $input->create();
+ $input->create()->render();
+
}
+ /**
+ * @param string $title
+ * @return $this
+ */
+ public function setLabel(string $title): self
+ {
+ $this->html = "";
+ return $this;
+ }
+
+
}
\ No newline at end of file
diff --git a/src/traits/CreateOption.php b/src/traits/CreateOption.php
index 544ea13..c915d57 100644
--- a/src/traits/CreateOption.php
+++ b/src/traits/CreateOption.php
@@ -1,6 +1,6 @@