Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Serial Number Bundle

CI Packagist Version Packagist Downloads License PHP Symfony

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).

FrankenPHP Friendly Worker Mode

This bundle is FrankenPHP worker mode friendly.

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).

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.

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, or 8.0 (see composer.json; CI exercises 6.4, 7.0, 7.4, 8.0, and 8.1)
  • Twig 3.8+ or 4.x

Documentation

Additional documentation

Tests and coverage

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

License

MIT. See LICENSE.

About

Symfony bundle to generate and mask serial numbers for invoices, receipts, and tickets. Pattern placeholders, context map, and Twig filter for display masking.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages