PHPackages                             basilicom/import-data-validator-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Validation &amp; Sanitization](/categories/validation)
4. /
5. basilicom/import-data-validator-bundle

ActiveSymfony-bundle[Validation &amp; Sanitization](/categories/validation)

basilicom/import-data-validator-bundle
======================================

Base rules and commands to validate csv and xlsx files before an import attempt

1.1.0(2y ago)0133GPL-3.0-or-laterPHP

Since Oct 2Pushed 2y ago5 watchersCompare

[ Source](https://github.com/basilicom/import-data-validator-bundle)[ Packagist](https://packagist.org/packages/basilicom/import-data-validator-bundle)[ RSS](/packages/basilicom-import-data-validator-bundle/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (5)Versions (3)Used By (0)

Import Data Validator Bundle
============================

[](#import-data-validator-bundle)

---

Installation
------------

[](#installation)

Require the bundle using

```
composer require basilicom/import-data-validator-bundle

```

Configuration
-------------

[](#configuration)

Define validator, rules and ruleset via services.yaml

### Validator

[](#validator)

- Implement `\Basilicom\ImportDataValidator\Validator\ValidatorInterface`
- or use the default implementations `\Basilicom\ImportDataValidator\Validator\DefaultCsvValidator` and `\Basilicom\ImportDataValidator\Validator\DefaultXlsxValidator`

```
// services.yaml

csv.validator.service:
  class: Basilicom\ImportDataValidator\Validator\DefaultCsvValidator
  public: true
  arguments:
    $separator: ';'

xlsx.validator.service:
  class: Basilicom\ImportDataValidator\Validator\DefaultXlsxValidator
  public: true
  arguments:
    $csvValidator: '@csv.validator.service'
    $datasheetName: 'Sheet 1'

```

### Rules

[](#rules)

- Extend `\Basilicom\ImportDataValidator\Rules\AbstractRule`
- or use existing rules in `src/Rules`

```
// services.yaml

rules.dataset-count:
  class: Basilicom\ImportDataValidator\Rules\DatasetCountRule
  arguments:
    $countHeadline: false
    $min: 5
    $max: 10

rules.existing-columns:
  class: Basilicom\ImportDataValidator\Rules\ExistingColumnsRule
  arguments:
    $columnNames:
      - 'SKU'
      - 'Title'
      - 'Description'
      - 'Barcode'
      - 'Size'
      - 'Price'

rules.regex.sizes:
  class: Basilicom\ImportDataValidator\Rules\RegexRule
  arguments:
    $canBeEmpty: true
    $columnNames:
      - 'Size'
    $regex: '^(XS|S|M|L|XL|XXL)$'

rules.regex.sku:
  class: Basilicom\ImportDataValidator\Rules\RegexRule
  arguments:
    $canBeEmpty: false
    $columnNames:
      - 'SKU'
    $regex: '^\d{3}$'

```

### Ruleset

[](#ruleset)

- Implement `\Basilicom\ImportDataValidator\Validator\RuleSetInterface`
- or use the default implementation `\Basilicom\ImportDataValidator\Validator\DefaultRuleSet`

```
// services.yaml

ruleset.service:
  class: Basilicom\ImportDataValidator\Validator\DefaultRuleSet
  public: true
  arguments:
    $rules:
      - '@rules.dataset-count'
      - '@rules.existing-columns'
      - '@rules.regex.sizes'
      - '@rules.regex.sku'

```

Usage
-----

[](#usage)

Command:

```
bin/console basilicom:import-data-validator:validate ./file.xlsx xlsx.validator.service ruleset.service

```

Validator:

```
