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

Homepage

Issues

Documentation

Type:symfony-bundle

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

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 0

v1.0.2 2026-03-13 12:58 UTC

This package is auto-updated.

Last update: 2026-03-13 12:58:30 UTC


README

CI Packagist Version Packagist Downloads License PHP Symfony GitHub stars

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

Demos

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) }}
{# → "***************00042" #}

Requirements

  • PHP 8.1+
  • Symfony 6.0 | 7.0 | 8.0
  • Twig 3.8+ or 4.x

License

MIT. See LICENSE.