#yiisoftValidator #МажорныйРелиз #Релиз
🎁 Yii Validator 2.0
• Добавлено правило
• В именах классов/трейтов/методов/переменных слово "attribute" заменено на "property".
• Переименованы правила:
-
-
• При создании правила
• Добавлен PHP-атрибут
• Интерфейс
• Метод
• Параметр
• Выполнен рефакторинг метода
• Выполнен рефакторинг обработчика правила
• Изменён тип параметра
• Изменён тип параметра
• Изменён тип параметра
• Для правил, не реализающих
• Встроенные правила валидации в качестви имени правила теперь возвращают полное имя класса.
• В контекст валидации добавлен параметр
• В сообщения об ошибках валидации добавлены имена валидируемых свойств.
• Во встроенных правила в сообщения о некорректном типе валидируемого значения добавлен тип значения.
• Улучшены сообщения об ошибках валидации в правилах
• Исправлено: правила валидации, заданные в виде PHP-атрибутов объекта, не учитывались при нормализации через
• Исправлено: при использовании правила
• Исправлено: при использовании правила
• Уточнены типы в psalm-аннотациях в классе
• Минимальная требуемая версия PHP поднята до 8.1.
• Добавлен перевод сообщений об ошибках валидации на немецкий язык.
Инструкция по обновлению на эту мажорную версию описана в файле UPGRADE.md.
🎁 Yii Validator 2.0
• Добавлено правило
InEnum, проверяющее, что значение соответствует одному из значений типизированного перечисления.• В именах классов/трейтов/методов/переменных слово "attribute" заменено на "property".
• Переименованы правила:
-
AtLeast → FilledAtLeast;-
OneOf → FilledOnlyOneOf.• При создании правила
FilledAtLeast добавлена проверка, что значение свойства $min меньше или равно количеству проверяемых свойств.• Добавлен PHP-атрибут
Label позволяющий задать имя свойства в сообщениях об ошибках валидации.• Интерфейс
RuleWithOptionsInterface переименован в DumpedRuleInterface.• Метод
getName() перемещён из метода RuleInterface в DumpedRuleInterface.• Параметр
$rules в методе RulesNormalizer::normalize() сделан опциональным.• Выполнен рефакторинг метода
Result::add(): для повышения производительности использование метода array_merge() вынесено за цикл foreach.• Выполнен рефакторинг обработчика правила
Json. Для проверки вместо регулярного выражения теперь используются встроенные функции json_validate(), json_decode() и json_last_error().• Изменён тип параметра
$escape в методе Error::getValuePath() с bool|string|null на string|null.• Изменён тип параметра
$skipOnEmpty в конструкуторах правил с mixed на bool|callable|null.• Изменён тип параметра
$rule в методе RuleHandlerInterface::validate() с object на RuleInterface.• Для правил, не реализающих
DumpedRuleInterface, RulesDumper теперь использует в качестве имени полное имя класса правила.• Встроенные правила валидации в качестви имени правила теперь возвращают полное имя класса.
• В контекст валидации добавлен параметр
Each::PARAMETER_EACH_KEY, доступный во время обработки правила Each и содержащий текущий ключ.• В сообщения об ошибках валидации добавлены имена валидируемых свойств.
• Во встроенных правила в сообщения о некорректном типе валидируемого значения добавлен тип значения.
• Улучшены сообщения об ошибках валидации в правилах
Json, FilledOnlyOneOf и FilledAtLeast.• Исправлено: правила валидации, заданные в виде PHP-атрибутов объекта, не учитывались при нормализации через
RulesNormalizer::normalize().• Исправлено: при использовании правила
Nested имя свойства не передавалось в сообщения об ошибках валидации.• Исправлено: при использовании правила
Each в сообщение о некорректном ключе передавался тип значения вместо типа ключа.• Уточнены типы в psalm-аннотациях в классе
Result.• Минимальная требуемая версия PHP поднята до 8.1.
• Добавлен перевод сообщений об ошибках валидации на немецкий язык.
Инструкция по обновлению на эту мажорную версию описана в файле UPGRADE.md.
👍17❤2🔥2👾1
#yiisoftNetworkUtilities #МинорныйРелиз #Релиз
🎁 Yii Network Utilities 1.1
• Добавлен объект
• Исправлена ошибка при преобразовании IP-адреса в битовое представление в PHP 8.0+.
🎁 Yii Network Utilities 1.1
• Добавлен объект
IpRanges, который содержит диапазоны IP-адресов и позволяет проверить входит ли конкретный IP-адрес в эти диапазоны.• Исправлена ошибка при преобразовании IP-адреса в битовое представление в PHP 8.0+.
👍4👾3
#yiisoftProxyMiddleware #ПатчРелиз #Релиз
🎁 Yii Proxy Middleware 1.0.2
• Зависимость от
🎁 Yii Proxy Middleware 1.0.2
• Зависимость от
yiisoft/validator заменена на более простую yiisoft/network-utilities.👍7👾2
#yiisoftHydratorValidator #ПатчРелиз #Релиз
🎁 Yii Validating Hydrator 2.0.1
• Добавлена поддержка
🎁 Yii Validating Hydrator 2.0.1
• Добавлена поддержка
yiisoft/validator версии ^2.0.👍6👾3
#yiisoftInputHttp #ПатчРелиз #Релиз
🎁 Yii Input HTTP 1.0.1
• Добавлена поддержка
🎁 Yii Input HTTP 1.0.1
• Добавлена поддержка
yiisoft/validator версии ^2.0.👍6👾3
#yiisoftHydrator #МинорныйРелиз #Релиз
🎁 Yii Hydrator 1.3
• Добавлена поддержка гидрирования неинициализированных
• Добавлена поддержка коллекций через атрибут
• Гидратор добавлен в качестве зависимости в
🎁 Yii Hydrator 1.3
• Добавлена поддержка гидрирования неинициализированных
readonly свойств.• Добавлена поддержка коллекций через атрибут
Collection.• Гидратор добавлен в качестве зависимости в
ParameterAttributesHandler (можно установить через новый метод withHydrator()) и ParameterAttributeResolveContext (можно получить через новый метод getHydrator()).👍11👾1
#yiisoftAuthJwt #МинорныйРелиз #Релиз
🎁 Yii Auth JWT 2.1
• В зависимостях пакеты
• Добавлена поддержка
🎁 Yii Auth JWT 2.1
• В зависимостях пакеты
web-token/* заменены на один web-token/jwt-library, минимальная версия PHP поднята до 8.1.• Добавлена поддержка
psr/http-message для версий ^2.0.👍9🔥2
#yiisoftHtml #МинорныйРелиз #Релиз
🎁 Yii HTML 3.6
• Добавлена поддержка перечислений (enum) в качестве значения в виджетах
• Добавлена поддержка
• Добавлено исключение, возникающее при передаче некорректных имён HTML-атрибутов (пустое имя или содержащее запрещённые символы).
• Исправлено: теперь вложенные атрибуты (data и другие) не выводятся, если содержат значение
🎁 Yii HTML 3.6
• Добавлена поддержка перечислений (enum) в качестве значения в виджетах
CheckboxList и RadioList.• Добавлена поддержка
Stringable-объектов и массивов в качестве значения для тега <textarea>.• Добавлено исключение, возникающее при передаче некорректных имён HTML-атрибутов (пустое имя или содержащее запрещённые символы).
• Исправлено: теперь вложенные атрибуты (data и другие) не выводятся, если содержат значение
null.2👍6👾1
#yiisoftHydrator #МинорныйРелиз #Релиз
🎁 Yii Hydrator 1.4
• Добавлен PHP-атрибут
• В коллекциях добавлена поддержка типизированных перечислений.
🎁 Yii Hydrator 1.4
• Добавлен PHP-атрибут
ToArrayOfString, позволяющий привести значение к массиву строк.• В коллекциях добавлена поддержка типизированных перечислений.
1🔥5
#yiisoftForm #ПервыйРелиз #МажорныйРелиз #Релиз
🎁 Yii Form 1.0
Пакет содержит набор виджетов для генерации HTML-кода полей форм с поддержкой тем (из коробки поддерживается Bootstrap 5).
Пример использования:
🎁 Yii Form 1.0
Пакет содержит набор виджетов для генерации HTML-кода полей форм с поддержкой тем (из коробки поддерживается Bootstrap 5).
Пример использования:
use Yiisoft\Form\PureField\Field;
echo Field::text('firstName', theme: 'horizontal')
->label('First Name')
->autofocus();
echo Field::text('lastName', theme: 'horizontal')
->label('Last Name');
echo Field::select('sex')
->label('Sex')
->optionsData(['m' => 'Male', 'f' => 'Female'])
->prompt('—');
echo Field::number('age')
->label('Age')
->hint('Please enter your age.');
echo Field::submitButton('Submit')
->buttonClass('primary');
3👍14❤1
#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
#yiisoftNetworkUtilities #МинорныйРелиз #Релиз
🎁 Yii Network Utilities 1.2
• В
• В
• В
🎁 Yii Network Utilities 1.2
• В
IpHelper добавлены константы IP_PATTERN и IP_REGEXP для проверки IP обеих версий (IPv4 и IPv6).• В
IpRanges добавлена константа NEGATION_CHARACTER, используемая для определения диапазонов методом исключения.• В
IpHelper добавили методы: isIpv4(), isIpv6(), isIp().32👍4
#yiisoftMiddleware #ПатчРелиз #Релиз
🎁 Yii Middleware 1.0.4
• Добавлен пакет
• Добавлена поддержка для
🎁 Yii Middleware 1.0.4
• Добавлен пакет
yiisoft/network-utilities в качестве зависимости и использован вместо пакета yiisoft/validator для фильтра IpFilter.• Добавлена поддержка для
yiisoft/validator версий ^2.0, зависимость помечена как deprecated.10👍4
#yiisoftSwagger #МинорныйРелиз #Релиз
🎁 Yii Swagger 2.1
• Добавлена поддержка
• Требуемая версия
• Добавлены экшены
• Добавлена поддержка
🎁 Yii Swagger 2.1
• Добавлена поддержка
psr/http-message для версий ^2.0.• Требуемая версия
yiisoft/yii-view обновлена до ^7.1.• Добавлены экшены
\Yiisoft\Swagger\Action\SwaggerJson и \Yiisoft\Swagger\Action\SwaggerUi. Классы \Yiisoft\Swagger\Middleware\SwaggerJson и \Yiisoft\Swagger\Middleware\SwaggerUi помечены как deprecated. Они будут удалены в следующей мажорной версии.• Добавлена поддержка
swagger-api/swagger-ui 5й версии.51👍4🔥2
#yiisoftSwagger #ПатчРелиз #Релиз
🎁 Yii Swagger 2.1.1
• Зависимость yiisoft/yii-view заменена на yiisoft/yii-view-renderer.
🎁 Yii Swagger 2.1.1
• Зависимость yiisoft/yii-view заменена на yiisoft/yii-view-renderer.
7👍4🔥3
#yiisoftValidator #МинорныйРелиз #Релиз
🎁 Yii Validator 2.1
• Правила валидации объекта, описанные в виде PHP атрибутов теперь объединяются с правилами, заданными в методе
• Выполнен рефакторинг правила
• Добавлен метод
• Методы
🎁 Yii Validator 2.1
• Правила валидации объекта, описанные в виде PHP атрибутов теперь объединяются с правилами, заданными в методе
getRules() при реализации интерфейса RulesProviderInterface.• Выполнен рефакторинг правила
Ip с более плотным использованием пакета yiisoft/network-utilities.• Добавлен метод
Ip::getIpRanges().• Методы
Ip::getRanges(), Ip::getNetworks() и Ip::isAllowed() помечены устаревшими и будут удалены в следующем мажорном релизе.7🔥5🎉3
#yiisoftFormModel #ПатчРелиз #Релиз
🎁 Yii Form Model 1.0.1
• Пакет адаптирован к изменениям в последней версии валидатора. В модели формы разрешено наполнять только те поля, где есть правила валидации. Теперь правила валидации считываются одновременно и с PHP-атрибутов и из метода
🎁 Yii Form Model 1.0.1
• Пакет адаптирован к изменениям в последней версии валидатора. В модели формы разрешено наполнять только те поля, где есть правила валидации. Теперь правила валидации считываются одновременно и с PHP-атрибутов и из метода
getRules().1🔥6❤1
🔥 #yiisoftActiveRecord #News
В пакете
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Переименование сделано, чтобы в будущем избежать путаницы с PHP атрибутами #[Attribute].
В пакете
yiisoft/active-record методы класса, содержащие слово attribute, были переименованы.-
attributes() -> propertyNames()-
hasAttribute() -> hasProperty()-
getAttribute() -> get()-
getAttributes() -> propertyValues()-
getAttributesInternal() -> propertyValuesInternal()-
getOldAttribute() -> oldValue()-
getOldAttributes() -> oldValues()-
getDirtyAttributes() -> dirtyValues()-
markAttributeDirty() -> markPropertyDirty()-
isAttributeChanged() -> isPropertyChanged()-
setAttribute() -> set()-
setAttributes() -> populateProperties()-
populateAttribute() -> populateProperty()-
setOldAttribute() -> assignOldValue()-
setOldAttributes() -> assignOldValues()-
updateAttributes() -> updateProperties()Переименование сделано, чтобы в будущем избежать путаницы с PHP атрибутами #[Attribute].
👍14❤3🔥2
#yiisoftHydrator #МинорныйРелиз #Релиз
🎁 Yii Hydrator 1.5
• Добавлен тайпкастер
• Исправлена ошибка с заполнением свойств только для чтения из родительских классов.
🎁 Yii Hydrator 1.5
• Добавлен тайпкастер
EnumTypeCaster, позволяющий приводить значение к перечислению. Например, приведение строки draft к перечислению Status::DRAFT.• Исправлена ошибка с заполнением свойств только для чтения из родительских классов.
11👍8
#yiisoftHtml #МинорныйРелиз #Релиз
🎁 Yii HTML 3.7
• В теге
• В теге
🎁 Yii HTML 3.7
• В теге
Script добавлен методы nonce() и getNonce() для более удобной реализации CSP.• В теге
Select добавлена поддержка типизированных перечислений в качестве значения.8👍4🏆2❤1
#yiisoftForm #МинорныйРелиз #Релиз
🎁 Yii Form 1.1
• Добавлена поддержка типизированных перечислений в качестве значений поля
🎁 Yii Form 1.1
• Добавлена поддержка типизированных перечислений в качестве значений поля
Select.11👍5