validator

Несложные и лёгкие WYSIWYG-редакторы

Редактор	Почему «лёгкий / простой» / когда хорошо подходит

pell	Очень компактный (≈ 1.4 kB), без зависимостей — буквально «textarea → WYSIWYG». 
https://github.com/jaredreich/pell?utm_source=chatgpt.com

Wysi	Минимум зависимостей, ES6‑реализация, ~12 kB gzipped, легко инициализируется на textarea, чистый HTML-вывод. 
https://wysi.js.org/

Lite Editor	Простая настройка, работает прямо через CDN, подходит для лёгких CMS или комментариев. 
https://appleple.github.io/lite-editor/?utm_source=chatgpt.com

SunEditor	Немного «тяжелее», но всё ещё лёгкий и гибкий, поддержка базового форматирования, изображений, таблиц и пр. Без внешних зависимостей. 
https://github.com/JiHong88/suneditor?utm_source=chatgpt.com
Поле email должно быть корректным email
array(2) {
  ["email"]=>
  array(1) {
    [0]=>
    string(63) "Поле email должно быть корректным email"
  }
  ["password"]=>
  array(2) {
    [0]=>
    string(40) "Поле password обязательно"
    [1]=>
    string(74) "Поле password должно быть не менее 6 символов"
  }
}
array(2) {
  ["name"]=>
  string(3) "Art"
  ["email"]=>
  string(15) "admin@sshootcom"
}












🔹 Примеры использования


1️⃣ В контроллере


use Core\Validator;

public function register()
{
$data = $_POST;

$rules = [
'name' => 'required|min:3|max:50',
'email' => 'required|email|max:100',
'password' => 'required|min:6|max:255'
];

$validator = new Validator();

if (!$validator->validate($data, $rules)) {
// Возврат ошибок во View
return $this->view('register', [
'errors' => $validator->getErrors(),
'old' => $data
]);
}

// Данные валидны → сохраняем пользователя
$this->userModel->create($data);

return $this->redirect('/success');
}

2️⃣ В модели (например проверка email перед сохранением)


use Core\Validator;

public function saveUser(array $data)
{
$validator = new Validator();
if (!$validator->validate($data, ['email' => 'required|email'])) {
return $validator->getErrors();
}

// Сохраняем в БД
$this->db->insert('users', $data);

return true;
}

3️⃣ Во view


<?php if(!empty($errors['email'])): ?>
<?= implode(', ', $errors['email']) ?>

<?php endif; ?>

<input type="text" name="email" value="<?= htmlspecialchars($old['email'] ?? '') ?>">

🔹 Преимущества этой версии


🔹 Поддерживает строки с правилами, легко расширять (required|min|max|email|regex).
🔹 Чёткие и понятные сообщения об ошибках.
🔹 Можно использовать в контроллере, модели или сервисах.
🔹 Лаконичный и универсальный, легко интегрировать с твоим фреймворком.
=== Core\Page ===
  - getInstance
  - init
  - get
  - set
  - add
  - all

=== Core\Session ===
  - start

=== Core\Router ===
  - __construct
  - dispatch

=== Core\Controller ===
  - view
  - json

=== Core\Request ===
  - __construct
  - input
  - json
  - path

=== Core\Response ===
  - setHeader
  - setBody
  - appendBody
  - setStatus
  - send
  - __toString

=== Core\MiddlewareDispatcher ===
  - __construct
  - runBefore
  - runAfter
  - fromAliases

=== Core\Validator ===
  - validate
  - hasErrors
  - getErrors