https://github.com/ylabio/ylab.validation
https://github.com/ylabio/ylab.validation
bitrix bitrix-module validation ylab ylabio
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/ylabio/ylab.validation
- Owner: ylabio
- License: mit
- Created: 2018-06-15T14:06:24.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2018-11-12T17:23:52.000Z (over 7 years ago)
- Last Synced: 2024-12-17T16:04:05.400Z (over 1 year ago)
- Topics: bitrix, bitrix-module, validation, ylab, ylabio
- Language: PHP
- Size: 15.6 KB
- Stars: 8
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Модуль YLab Validation
[](https://packagist.org/packages/ylab/validation)
[](https://packagist.org/packages/ylab/validation)
[](https://packagist.org/packages/ylab/validation)
[](https://packagist.org/packages/ylab/validation)
Модуль является оберткой над библиотекой валидации 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 добавить:
```json
"extra": {
//путь до папки local, например ../local, если composer.json лежит в папке local
"bitrix-dir": ""
}
```
## Использование
Для реализации компонента с валидацией, можно использовать пример кода:
`local/modules/ylab.validation/install/components/ylab/validation.test/class.php`.
В данном примере класс компонента наследуется от абстрактного класса `YLab\Validation\ComponentValidation`, который на
себя берет функцию инициализации объекта валидации и обязывает реализовать метод `rules()`.
В конструкторе абстрактного класса объект валидатора инициализируется следующим образом:
```php
$this->oValidator = ValidatorHelper::makeCustomValidator([], $this->rules(), $sFile, LANGUAGE_ID);
```
В методе `ValidatorHelper::makeCustomValidator()` подключаются языковые файлы компонента и модуля. Языковые файлы модуля
содержат описание стандартных ошибок, наследуемый компонент может заменять предустановленные фразы ошибок на собственные.
### Пример компонента
https://github.com/ylabio/ylab.validation/blob/master/install/components/ylab/validation.test/class.php
### Собственные правила валидации
Создать собственные правила валидации можно в компоненте в отдельном методе или методе `executeComponent()`:
```php
/**
* При необходимости в компоненте можно реализовать дополнительные правила валидации, например, данный валидатор
* проверяет наличие пользователя в базе данных по 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;
});
```