#yiisoftFormModel
✨ Yii Form Model
Доработали поля форм в Yii Form таким образом, чтобы их можно было использовать независимо от модели формы. Это позволило выделить модель формы в отдельный пакет.
Теперь в Yii Form остались только виджеты полей форм, которые зависят только от трёх пакетов: Yii Friendly Exception, Yii HTML и Yii Widget. А «тяжёлые» же зависимости (валидатор, гидратор) переехали в новый пакет.
Доработали поля форм в Yii Form таким образом, чтобы их можно было использовать независимо от модели формы. Это позволило выделить модель формы в отдельный пакет.
Теперь в Yii Form остались только виджеты полей форм, которые зависят только от трёх пакетов: Yii Friendly Exception, Yii HTML и Yii Widget. А «тяжёлые» же зависимости (валидатор, гидратор) переехали в новый пакет.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11👾2
#yiisoftFormModel #ПервыйРелиз #МажорныйРелиз #Релиз
🎁 Yii Form Model 1.0
Пакет предоставляет основу для реализации моделей форм и помогает в их наполнении, валидации и отображении.
Пример формы:
Пример обработки формы:
Пример отображения формы:
🎁 Yii Form Model 1.0
Пакет предоставляет основу для реализации моделей форм и помогает в их наполнении, валидации и отображении.
Пример формы:
use Yiisoft\FormModel\Attribute\Safe;
use Yiisoft\FormModel\FormModel;
use Yiisoft\Validator\Rule\Email;
use Yiisoft\Validator\Rule\Length;
use Yiisoft\Validator\Rule\Required;
final class LoginForm extends FormModel
{
#[Label('Your login')]
#[Required]
#[Length(min: 4, max: 40, skipOnEmpty: true)]
#[Email(skipOnEmpty: true)]
private ?string $login = null;
#[Label('Your password')]
#[Required]
#[Length(min: 8, skipOnEmpty: true)]
private ?string $password = null;
#[Label('Remember me for 1 week')]
#[Safe]
private bool $rememberMe = false;
}
Пример обработки формы:
public function login(
RequestInterface $request,
FormHydrator $formHydrator
): ResponseInterface
{
$formModel = new LoginForm();
if ($formHydrator->populateFromPostAndValidate($formModel, $request)) {
$errors = $formModel->getValidationResult()->getErrorMessagesIndexedByProperty();
}
// You can pass $formModel and $errors to the view now.
}
Пример отображения формы:
use Yiisoft\FormModel\Field;
use Yiisoft\FormModel\FormModel;
echo Field::text($formModel, 'login');
echo Field::password($formModel, 'password');
echo Field::checkbox($formModel, 'rememberMe');
20🔥13👍5🎉2
#yiisoftFormModel #ПатчРелиз #Релиз
🎁 Yii Form Model 1.0.1
• Пакет адаптирован к изменениям в последней версии валидатора. В модели формы разрешено наполнять только те поля, где есть правила валидации. Теперь правила валидации считываются одновременно и с PHP-атрибутов и из метода
🎁 Yii Form Model 1.0.1
• Пакет адаптирован к изменениям в последней версии валидатора. В модели формы разрешено наполнять только те поля, где есть правила валидации. Теперь правила валидации считываются одновременно и с PHP-атрибутов и из метода
getRules()
.1🔥6❤1
#yiisoftFormModel #ПервыйРелиз #МажорныйРелиз #Релиз
🎁 Yii File Router 1.0
Первая стабильная версия роутера, основанного на соглашении о размещении контроллеров в определённых пространствах имён (похоже на Yii2). Роутер представляет собой PSR-15 мидлварь и может использоваться как самостоятельно, так и совместно с другим роутером.
Пример структуры:
Работает это так:
•
•
•
•
•
Подробнее см. в документации.
🎁 Yii File Router 1.0
Первая стабильная версия роутера, основанного на соглашении о размещении контроллеров в определённых пространствах имён (похоже на Yii2). Роутер представляет собой PSR-15 мидлварь и может использоваться как самостоятельно, так и совместно с другим роутером.
Пример структуры:
src/
Controller/
User/
Profile/
IndexController.php
BlogController.php
UserController.php
IndexController.php
Работает это так:
•
GET /
→ IndexController::index()
•
GET /user
→ UserController::index()
•
POST /user
→ UserController::create()
•
GET /user/blog/view
→ User/BlogController::view()
•
GET /user/profile
→ User/Profile/IndexController::index()
Подробнее см. в документации.
👍17👾4🔥3❤1
#yiisoftFormModel #ПатчРелиз #Релиз
🎁 Yii Form Model 1.0.2
• При отображении ошибок учитывается вложенность свойств.
• При генерации названия поля учитывается вложенность свойств.
• Ограничение версии PHP в
🎁 Yii Form Model 1.0.2
• При отображении ошибок учитывается вложенность свойств.
• При генерации названия поля учитывается вложенность свойств.
• Ограничение версии PHP в
composer.json
изменено на 8.1 - 8.4
.👍3👾2