first
This commit is contained in:
commit
000e0acfb8
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.idea
|
33
index.php
Normal file
33
index.php
Normal file
@ -0,0 +1,33 @@
|
||||
<?php
|
||||
ini_set("display_errors", true);
|
||||
error_reporting(-1);
|
||||
require_once "src/traits/CreateParams.php";
|
||||
require_once "src/traits/CreateOption.php";
|
||||
require_once "src/inputs/Radio.php";
|
||||
require_once "src/inputs/Select.php";
|
||||
require_once "src/inputs/Button.php";
|
||||
require_once "src/inputs/TextInput.php";
|
||||
require_once "src/inputs/TextArea.php";
|
||||
require_once "src/inputs/Checkbox.php";
|
||||
require_once "src/inputs/Label.php";
|
||||
require_once "src/debug/Debug.php";
|
||||
require_once "src/Form.php";
|
||||
|
||||
use src\Form;
|
||||
|
||||
$form = new Form();
|
||||
$form->beginForm("tsad");
|
||||
$form->textInput("phone", ['placeholder' => 'Введите телефон', 'class' => 'form-group']);
|
||||
$form->textInput("email", ['placeholder' => 'Введите email']);
|
||||
$form->textInput("name", ['type' => 'number']);
|
||||
$form->checkBox("Button", "1", ["class" => 'sdsa', "id" => "b1"]);
|
||||
$form->checkBox("Button", "2", ["class" => 'sdsa', "id" => "b1"]);
|
||||
$form->checkBox("Button", "3", ["class" => 'sdsa', "id" => "b1"]);
|
||||
$form->label("RadioButton", ["for" => "r2"]);
|
||||
$form->radio("name1", ["id" => "r2"]);
|
||||
$form->label("RadioButton", ["for" => "r3"]);
|
||||
$form->radio("name1", ["id" => "r3"]);
|
||||
$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();
|
110
src/Form.php
Normal file
110
src/Form.php
Normal file
@ -0,0 +1,110 @@
|
||||
<?php
|
||||
|
||||
namespace src;
|
||||
|
||||
use src\inputs\Checkbox;
|
||||
use src\inputs\Select;
|
||||
use src\inputs\TextInput;
|
||||
use src\inputs\Label;
|
||||
use src\inputs\Radio;
|
||||
use src\inputs\TextArea;
|
||||
use src\inputs\Button;
|
||||
|
||||
class Form {
|
||||
|
||||
/**
|
||||
* @param string $action
|
||||
* @return void
|
||||
*/
|
||||
public function beginForm(string $action): void
|
||||
{
|
||||
echo "<form action='$action'>";
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
* @param array $paramsArray
|
||||
* @return void
|
||||
*/
|
||||
|
||||
public function textInput(string $name, array $paramsArray = []): void
|
||||
{
|
||||
TextInput::build($name, $paramsArray);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
* @param string $value
|
||||
* @param array $paramsArray
|
||||
* @return void
|
||||
*/
|
||||
public function checkBox(string $name, string $value, array $paramsArray = []): void
|
||||
{
|
||||
Checkbox::build($name, $value, $paramsArray);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $title
|
||||
* @param array $paramsArray
|
||||
* @return void
|
||||
*/
|
||||
public function label(string $title, array $paramsArray = []): void
|
||||
{
|
||||
Label::build($title, $paramsArray);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
* @param array $paramsArray
|
||||
* @return void
|
||||
*/
|
||||
public function radio(string $name, array $paramsArray = []): void
|
||||
{
|
||||
Radio::build($name, $paramsArray);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
* @param string $value
|
||||
* @param array $paramsArray
|
||||
* @return void
|
||||
*/
|
||||
public function textarea(string $name, string $value = "", array $paramsArray = []): void
|
||||
{
|
||||
TextArea::build($name, $value, $paramsArray);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
* @param array $options
|
||||
* @param $value
|
||||
* @param array $paramsArray
|
||||
* @return void
|
||||
*/
|
||||
public function select(string $name, array $options = [], $value = null, array $paramsArray = []): void
|
||||
{
|
||||
Select::build($name, $options, $value, $paramsArray);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
* @param string $value
|
||||
* @param array $paramsArray
|
||||
* @return void
|
||||
*/
|
||||
public function button(string $name, string $value, array $paramsArray = []): void
|
||||
{
|
||||
Button::build($name, $value, $paramsArray);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function endForm(): void
|
||||
{
|
||||
echo "</form>";
|
||||
|
||||
}
|
||||
}
|
20
src/debug/Debug.php
Normal file
20
src/debug/Debug.php
Normal file
@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
namespace src\debug;
|
||||
|
||||
class Debug
|
||||
{
|
||||
public static function prn($content)
|
||||
{
|
||||
echo '<pre style="background: lightgray; border: 1px solid black; padding: 2px">';
|
||||
print_r($content);
|
||||
echo '</pre>';
|
||||
}
|
||||
public static function dd($content)
|
||||
{
|
||||
echo '<pre style="background: lightgray; border: 1px solid black; padding: 2px">';
|
||||
print_r($content);
|
||||
echo '</pre>';
|
||||
die();
|
||||
}
|
||||
}
|
33
src/inputs/Button.php
Normal file
33
src/inputs/Button.php
Normal file
@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
namespace src\inputs;
|
||||
|
||||
use src\traits\CreateParams;
|
||||
|
||||
class Button
|
||||
{
|
||||
use CreateParams;
|
||||
private string $name;
|
||||
private string $value;
|
||||
private array $paramsArray;
|
||||
|
||||
public function __construct(string $name, string $value, array $paramsArray = [])
|
||||
{
|
||||
$this->name = $name;
|
||||
$this->paramsArray = $paramsArray;
|
||||
$this->value = $value;
|
||||
}
|
||||
|
||||
public function create(): void
|
||||
{
|
||||
$paramsString = $this->createParams($this->paramsArray);
|
||||
echo "<button name='$this->name' $paramsString>$this->value</button>";
|
||||
}
|
||||
|
||||
public static function build(string $name, string $value, array $paramsArray = []): void
|
||||
{
|
||||
$input = new self($name, $value, $paramsArray);
|
||||
$input->create();
|
||||
}
|
||||
|
||||
}
|
34
src/inputs/Checkbox.php
Normal file
34
src/inputs/Checkbox.php
Normal file
@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
namespace src\inputs;
|
||||
|
||||
use src\traits\CreateParams;
|
||||
|
||||
class Checkbox
|
||||
{
|
||||
use CreateParams;
|
||||
|
||||
private string $name;
|
||||
private string $value;
|
||||
private array $paramsArray;
|
||||
|
||||
public function __construct(string $name, string $value, array $paramsArray = [])
|
||||
{
|
||||
$this->name = $name;
|
||||
$this->value = $value;
|
||||
$this->paramsArray = $paramsArray;
|
||||
}
|
||||
public function create(): void
|
||||
{
|
||||
$paramsString = $this->createParams($this->paramsArray);
|
||||
echo "<input name='$this->name' type='checkbox' value='$this->value' $paramsString >";
|
||||
}
|
||||
|
||||
public static function build(string $name, string $value, array $paramsArray): void
|
||||
{
|
||||
$checkbox = new self($name, $value, $paramsArray);
|
||||
$checkbox->create();
|
||||
|
||||
}
|
||||
|
||||
}
|
35
src/inputs/Label.php
Normal file
35
src/inputs/Label.php
Normal file
@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
namespace src\inputs;
|
||||
|
||||
use src\traits\CreateParams;
|
||||
class Label
|
||||
{
|
||||
use CreateParams;
|
||||
|
||||
private string $title;
|
||||
|
||||
private array $paramsArray;
|
||||
public function __construct(string $title, array $paramsArray = [])
|
||||
{
|
||||
$this->title = $title;
|
||||
$this->paramsArray = $paramsArray;
|
||||
}
|
||||
|
||||
public function create(): void
|
||||
{
|
||||
$paramsString = $this->createParams($this->paramsArray);
|
||||
echo "<label $paramsString >$this->title</label>";
|
||||
|
||||
}
|
||||
|
||||
public static function build(string $title, array $paramsArray = [])
|
||||
{
|
||||
$label = new self($title, $paramsArray);
|
||||
$label->create();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
36
src/inputs/Radio.php
Normal file
36
src/inputs/Radio.php
Normal file
@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
namespace src\inputs;
|
||||
use src\traits\CreateParams;
|
||||
class Radio
|
||||
{
|
||||
use CreateParams;
|
||||
|
||||
private $name;
|
||||
private $paramsArray;
|
||||
public function __construct(string $name, array $paramsArray = [])
|
||||
{
|
||||
$this->name = $name;
|
||||
$this->paramsArray = $paramsArray;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function create(): void
|
||||
{
|
||||
$paramsString = $this->createParams($this->paramsArray);
|
||||
echo "<input name='$this->name' type='radio' $paramsString>";
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
* @param array $paramsArray
|
||||
* @return void
|
||||
*/
|
||||
public static function build(string $name, array $paramsArray = []): void
|
||||
{
|
||||
$label = new self($name, $paramsArray);
|
||||
$label->create();
|
||||
}
|
||||
}
|
55
src/inputs/Select.php
Normal file
55
src/inputs/Select.php
Normal file
@ -0,0 +1,55 @@
|
||||
<?php
|
||||
|
||||
namespace src\inputs;
|
||||
|
||||
use src\traits\CreateOption;
|
||||
use src\traits\CreateParams;
|
||||
|
||||
class Select
|
||||
{
|
||||
use CreateParams;
|
||||
use CreateOption;
|
||||
private $name;
|
||||
private $options;
|
||||
private $value;
|
||||
private $paramsArray;
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
* @param array $options
|
||||
* @param $value
|
||||
* @param array $paramsArray
|
||||
*/
|
||||
public function __construct(string $name, array $options = [], $value = null, array $paramsArray = [])
|
||||
{
|
||||
$this->name = $name;
|
||||
$this->options = $options;
|
||||
$this->value = $value;
|
||||
$this->paramsArray = $paramsArray;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function create(): void
|
||||
{
|
||||
$paramsString = $this->createParams($this->paramsArray);
|
||||
$optionsString = $this->createOption($this->options, $this->value);
|
||||
echo "<select name='$this->name' $paramsString>$optionsString</select>";
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
* @param array $options
|
||||
* @param $value
|
||||
* @param array $paramsArray
|
||||
* @return void
|
||||
*/
|
||||
public static function build(string $name, array $options = [], $value = null, array $paramsArray = []): void
|
||||
{
|
||||
$textarea = new self($name, $options, $value, $paramsArray);
|
||||
$textarea->create();
|
||||
}
|
||||
|
||||
}
|
47
src/inputs/TextArea.php
Normal file
47
src/inputs/TextArea.php
Normal file
@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
namespace src\inputs;
|
||||
use src\traits\CreateParams;
|
||||
class TextArea
|
||||
{
|
||||
use CreateParams;
|
||||
|
||||
private $name;
|
||||
private $value;
|
||||
private $paramsArray;
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
* @param string $value
|
||||
* @param array $paramsArray
|
||||
*/
|
||||
public function __construct(string $name, string $value, array $paramsArray = [])
|
||||
{
|
||||
$this->name = $name;
|
||||
$this->value = $value;
|
||||
$this->paramsArray = $paramsArray;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function create(): void
|
||||
{
|
||||
$paramsString = $this->createParams($this->paramsArray);
|
||||
echo "<textarea name='$this->name' $paramsString>$this->value</textarea>";
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
* @param string $value
|
||||
* @param array $paramsArray
|
||||
* @return void
|
||||
*/
|
||||
public static function build(string $name, string $value, array $paramsArray = []): void
|
||||
{
|
||||
$textarea = new self($name, $value, $paramsArray);
|
||||
$textarea->create();
|
||||
}
|
||||
|
||||
|
||||
}
|
45
src/inputs/TextInput.php
Normal file
45
src/inputs/TextInput.php
Normal file
@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
namespace src\inputs;
|
||||
|
||||
use src\traits\CreateParams;
|
||||
|
||||
class TextInput
|
||||
{
|
||||
|
||||
use CreateParams;
|
||||
private string $name;
|
||||
|
||||
private array $paramsArray;
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
* @param array $paramsArray
|
||||
*/
|
||||
public function __construct(string $name, array $paramsArray = [])
|
||||
{
|
||||
$this->name = $name;
|
||||
$this->paramsArray = $paramsArray;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function create(): void
|
||||
{
|
||||
$paramsString = $this->createParams($this->paramsArray);
|
||||
echo "<input name='$this->name' $paramsString >";
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
* @param array $paramsArray
|
||||
* @return void
|
||||
*/
|
||||
public static function build(string $name, array $paramsArray = []): void
|
||||
{
|
||||
$input = new self($name, $paramsArray);
|
||||
$input->create();
|
||||
}
|
||||
|
||||
}
|
21
src/traits/CreateOption.php
Normal file
21
src/traits/CreateOption.php
Normal file
@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
namespace src\traits;
|
||||
|
||||
trait CreateOption
|
||||
{
|
||||
/**
|
||||
* @param array $options
|
||||
* @param $value
|
||||
* @return string
|
||||
*/
|
||||
public function createOption(array $options, $value = null): string
|
||||
{
|
||||
$optionsString = "";
|
||||
foreach ($options as $val => $title){
|
||||
$selected = $value === $val ? "selected" : "";
|
||||
$optionsString .= "<option $selected value='$val'>$title</option>";
|
||||
}
|
||||
return $optionsString;
|
||||
}
|
||||
}
|
22
src/traits/CreateParams.php
Normal file
22
src/traits/CreateParams.php
Normal file
@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace src\traits;
|
||||
|
||||
trait CreateParams
|
||||
{
|
||||
|
||||
/**
|
||||
* @param array $data
|
||||
* @return string
|
||||
*/
|
||||
public function createParams(array $data = []): string
|
||||
{
|
||||
$paramsString = "";
|
||||
foreach($data as $key => $param){
|
||||
$paramsString .= $key . "='" . $param . "'";
|
||||
}
|
||||
|
||||
return $paramsString;
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user