nowo-tech/serial-number-bundle

Generate and mask serial numbers for invoices, receipts, etc. Pattern-based with context and Twig filter.

Maintainers

Package info

github.com/nowo-tech/SerialNumberBundle

Documentation

Type:symfony-bundle

pkg:composer/nowo-tech/serial-number-bundle

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.5 2026-03-30 05:34 UTC

This package is auto-updated.

Last update: 2026-03-30 06:38:48 UTC


README

CI Packagist Version Packagist Downloads License PHP Symfony GitHub stars Coverage

Found this useful? Install from Packagist and give it a star on GitHub.

Symfony bundle to generate and mask serial numbers for invoices, receipts, tickets, etc. Uses a pattern with placeholders ({year}, {prefix}, {id}), a context map, and an optional numeric id padding. Includes a Twig filter to mask the serial for display (e.g. show only last 4 digits).

Features

  • SerialNumberGenerator service: build serials from context (variables), pattern (string with {var} and {id}), and numeric id (optional zero-padding).
  • Twig function serial_number(context, pattern, id, padding?): generate serial in templates.
  • Twig filter serial_number_mask(serial, visibleLast?, maskChar?): mask a serial leaving only the last N characters visible (e.g. ***************0042).

Documentation

Additional documentation

Quick example

// In a controller or service
$serial = $this->serialNumberGenerator->generate(
  ['prefix' => 'FAC', 'year' => 2025, 'office' => '01'],
  '{prefix}-{year}-{office}-{id}',
  42,
  5 // id padding → 00042
);
// → "FAC-2025-01-00042"
{# Generate and mask in Twig #}
{{ serial_number(
  { prefix: 'FAC', year: 2025, office: '01' },
  '{prefix}-{year}-{office}-{id}',
  invoice.id,
  5
)|serial_number_mask(4) }}
{# → "*************0042" #}

Requirements

  • PHP >= 8.1, < 8.6
  • Symfony 6.0 | 7.0 | 8.0
  • Twig 3.8+ or 4.x

Tests and coverage

  • Tests: PHPUnit (PHP)
  • PHP: 100%

Version policy

The Composer package name is nowo-tech/serial-number-bundle. Source code and issues are in the GitHub repository nowo-tech/SerialNumberBundle.

We follow Semantic Versioning. See Changelog for release notes. Security support by major version is described in the Security policy.

License

MIT. See LICENSE.