PHPackages                             nassau/poczta-polska-pna-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. [API Development](/categories/api)
4. /
5. nassau/poczta-polska-pna-bundle

ActiveLibrary[API Development](/categories/api)

nassau/poczta-polska-pna-bundle
===============================

1.2.1(9y ago)011.1kMITPHP

Since Aug 16Pushed 9y ago1 watchersCompare

[ Source](https://github.com/mlebkowski/poczta-polska-pna-bundle)[ Packagist](https://packagist.org/packages/nassau/poczta-polska-pna-bundle)[ RSS](/packages/nassau-poczta-polska-pna-bundle/feed)WikiDiscussions master Synced today

READMEChangelog (6)Dependencies (5)Versions (9)Used By (0)

Poczta Polska PNA Bundle
------------------------

[](#poczta-polska-pna-bundle)

Provides a Symfony Form validator to ensure post code matches given city, street and house number.

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

[](#installation)

```
composer require nassau/poczta-polska-pna-bundle

```

Add the bundle to your `Kernel`:

```
    $bundles = [
// ...
        new Nassau\PocztaPolskaPnaBundle\PocztaPolskaPnaBundle(),
// ...
    ];

```

Usage
-----

[](#usage)

After the database is imported (and optionally indexed), add the `PnaAddress` constraint to your form. There are options to provide names of the different fields for each value (city, province, post code, etc).

Examples
--------

[](#examples)

Look at the `DefaultController` for a demo.

Importing the database
----------------------

[](#importing-the-database)

Make sure you have the entities mapped and the database schema updated. Then, use the `pna:import` command:

```
app/console pna:import spispna-cz1.txt

```

The file is located in the "UTF-8" directory on the [drive provided by Poczta Polska](https://www.poczta-polska.pl/spis-pna/).

### Normalization of city names

[](#normalization-of-city-names)

There are some cities that are separated into districts in the `spispna-cz1.txt`. This can be undone using the `--exceptions`option. Just use this option multiple times with names of the cities you wish to preserve. For example, if there is a: `Foo (bar district)` and you’d like to change it to "Foo", use `app/console pna:import --exceptions Foo`

By default all the major cities (Warszawa, Poznań, Wrocław, Łódź and Kraków) are normalized.

Algolia indexing
----------------

[](#algolia-indexing)

You may want to define the algolia indexing using symfony config:

```
# app/config/config.yml
nassau_pna:
    index_name: "pna_cities"

```

You are required to define the Algolia Client using [goldenline/algolia-bundle](https://github.com/GoldenLine/AlgoliaBundle).

Then you have the `pna:index` command (no arguments).

###  Health Score

32

—

LowBetter than 69% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity19

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity68

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~38 days

Recently: every ~61 days

Total

8

Last Release

3336d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/8572223899390b494d1282b615009bc2eea5ef1cd6bfc22f6e6b175034dadfe0?d=identicon)[mlebkowski](/maintainers/mlebkowski)

---

Top Contributors

[![mlebkowski](https://avatars.githubusercontent.com/u/848731?v=4)](https://github.com/mlebkowski "mlebkowski (7 commits)")

### Embed Badge

![Health badge](/badges/nassau-poczta-polska-pna-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/nassau-poczta-polska-pna-bundle/health.svg)](https://phpackages.com/packages/nassau-poczta-polska-pna-bundle)
```

###  Alternatives

[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.5k5.9M738](/packages/sylius-sylius)[easycorp/easyadmin-bundle

Admin generator for Symfony applications

4.3k17.9M388](/packages/easycorp-easyadmin-bundle)[rcsofttech/audit-trail-bundle

Enterprise-grade, high-performance Symfony audit trail bundle. Automatically track Doctrine entity changes with split-phase architecture, multiple transports (HTTP, Queue, Doctrine), and sensitive data masking.

1189.8k](/packages/rcsofttech-audit-trail-bundle)[api-platform/doctrine-orm

Doctrine ORM bridge

294.4M92](/packages/api-platform-doctrine-orm)[2lenet/crudit-bundle

The easy like Crud'it Bundle.

1616.4k13](/packages/2lenet-crudit-bundle)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
