ylab / validation
Module wrapper for illuminate/validation (Laravel) library for Bitrix
Installs: 287
Dependents: 0
Suggesters: 0
Security: 0
Stars: 8
Watchers: 2
Forks: 2
Open Issues: 0
Type:bitrix-d7-module
Requires
- php: >=5.6.4
- composer/installers: ~1.0
- illuminate/validation: >=5.4
This package is not auto-updated.
Last update: 2025-04-10 03:56:46 UTC
README
Модуль является оберткой над библиотекой валидации Laravel.
- php: >=5.6.4
- Bitrix: >= 17.0.0
- illuminate/validation: >=5.4
Установка с github
-
Необходимо установить
illuminate/validation
, через composer:php composer.phar install illuminate/validation 5.5
-
В файле
local/php_interface/init.php
подключить composer автозагрузчик:require_once(dirname(__FILE__) . '/../vendor/autoload.php');
-
Копируем репозиторий:
cd local/modules git clone git@github.com:ylabio/ylab.validation.git cd ylab.validation
-
В папку
local/modules
будет склонирован репозиторий модуля, после этого, необходимо в панели администратора установить модуль:Рабочий стол -> Marketplace -> Установленные решения
.
Установка через composer
composer require ylab/validation:dev-master
Для установки в local/modules
, необходимо в composer.json добавить:
"extra": { //путь до папки local, например ../local, если composer.json лежит в папке local "bitrix-dir": "" }
Использование
Для реализации компонента с валидацией, можно использовать пример кода:
local/modules/ylab.validation/install/components/ylab/validation.test/class.php
.
В данном примере класс компонента наследуется от абстрактного класса YLab\Validation\ComponentValidation
, который на
себя берет функцию инициализации объекта валидации и обязывает реализовать метод rules()
.
В конструкторе абстрактного класса объект валидатора инициализируется следующим образом:
$this->oValidator = ValidatorHelper::makeCustomValidator([], $this->rules(), $sFile, LANGUAGE_ID);
В методе ValidatorHelper::makeCustomValidator()
подключаются языковые файлы компонента и модуля. Языковые файлы модуля
содержат описание стандартных ошибок, наследуемый компонент может заменять предустановленные фразы ошибок на собственные.
Пример компонента
Собственные правила валидации
Создать собственные правила валидации можно в компоненте в отдельном методе или методе executeComponent()
:
/** * При необходимости в компоненте можно реализовать дополнительные правила валидации, например, данный валидатор * проверяет наличие пользователя в базе данных по ID. */ $this->oValidator->addExtension('user_exists', function($attribute, $value, $parameters, $validator) { $arValidate = UserTable::getList([ 'select' => ['ID'], 'filter' => ['=ID' => $value], 'limit' => 1 ])->fetch(); return $arValidate['ID'] ? true : false; });