PHPackages                             carrooi/addressable - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. carrooi/addressable

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

carrooi/addressable
===================

Addressable module for Nette

1.1.0(11y ago)1379MITPHP

Since Feb 9Pushed 11y ago1 watchersCompare

[ Source](https://github.com/Carrooi/Nette-Addressable)[ Packagist](https://packagist.org/packages/carrooi/addressable)[ RSS](/packages/carrooi-addressable/feed)WikiDiscussions master Synced 1mo ago

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

Carrooi/Addressable
===================

[](#carrooiaddressable)

[![Build Status](https://camo.githubusercontent.com/3f180064ec33e1f0d5b2fdd5e10cf6626528a97a68d04c77193feb523b14dc65/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f436172726f6f692f4e657474652d4164647265737361626c652e7376673f7374796c653d666c61742d737175617265)](https://travis-ci.org/Carrooi/Nette-Addressable)[![Donate](https://camo.githubusercontent.com/7f8b0c0980ad316210d1ec0c7d3298ace87d2f7c0eb6911977c0644951af5bd2/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f646f6e6174652d50617950616c2d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=SZRZJA7TCK4N2)

Addressable module for Nette framework and Doctrine.

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

[](#installation)

```
$ composer require carrooi/addressable
$ composer update

```

Usage
-----

[](#usage)

Imagine that you want to be able to add address to `User` entity.

```
namespace App\Model\Entities;

use Carrooi\Addressable\Model\Entities\IAddressableEntity;
use Carrooi\Addressable\Model\Entities\TAddressable;
use Doctrine\ORM\Mapping as ORM;
use Kdyby\Doctrine\Entities\Attributes\Identifier;
use Kdyby\Doctrine\Entities\BaseEntity;

/**
 * @ORM\Entity
 * @author David Kudera
 */
class User extends BaseEntity implements IAddressableEntity
{

	use Identifier;

	use TAddressable;

}
```

Users facade:

```
namespace App\Model\Facades;

use Carrooi\Addressable\Model\Facades\AddressesFacade;

/**
 * @author David Kudera
 */
class UsersFacade
{

	/** @var \Kdyby\Doctrine\EntityManager */
	private $em;

	/** @var \Carrooi\Addressable\Model\Facades\AddressesFacade */
	private $addressesFacade;

	/**
	 * @param \Kdyby\Doctrine\EntityManager $em
	 * @param \Carrooi\Addressable\Model\Facades\AddressesFacade $addressesFacade
	 */
	public function __construct(EntityManager $em, AddressesFacade $addressesFacade)
	{
		$this->em = $em;
		$this->addressesFacade = $addressesFacade;
	}

	/**
	 * @param \App\Model\Entities\User $user
	 * @param string $city
	 * @param int $postalCode
	 * @param int $houseNumber
	 * @param array $values
	 */
	public function addAddress(User $user, $city, $postalCode, $houseNumber, arra $values = [])
	{
		$address = $this->addressesFacade->create($city, $postalCode, $houseNumber, $values);

		$user->setAddress($address);

		$this->em->persist($user)->flush();

		return $this;
	}

	/**
	 * @param \App\Model\Entities\User $user
	 */
	public function removeAddress(User $user)
	{
		$this->addressesFacade->remove($user->getAddress());
		$user->setAddress(null);

		$this->em->persist($user)->flush();

		return $this;
	}

}
```

Usage:

```
/** @var \App\Model\Facades\UsersFacade @inject */
public $usersFacade;

/** @var \Carrooi\Addressable\Model\Facades\AddressesFacade @inject */
public $addressesFacade;

public function actionAdd()
{
	$user = getUserSomehow();

	$this->usersFacade->addAddress($user, 'Prague', 13000, 555, [
		'orientationNumber' => '8b',
		'street' => 'Lorem ipsum',
	]);
}

public function actionEdit()
{
	$user = getUserSomehow();
	$address = $user->getAddress();

	$this->addressesFacade->update($address, [
		'city' => 'New York',
		'postalCode' => 88877,
		'houseNumber' => 1212,
		'orientationNumber' => 45,
		'street' => 'Ipsum',
	]);
}

public function actionRemove()
{
	$user = getUserSomehow();

	$this->usersFacade->removeAddress($user);
}
```

And that's it :)

Changelog
---------

[](#changelog)

- 1.1.0

    - House number is no more required, so whole street with all numbers can be stored in `street` column (BC break)
    - Improved tests
- 1.0.0

    - Initial version

###  Health Score

29

—

LowBetter than 59% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity64

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 ~85 days

Total

2

Last Release

4030d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/838c6933d498fdb2a31f251ed45006a6ef97935ea2a27f38dab7738038939fc9?d=identicon)[david\_kudera](/maintainers/david_kudera)

---

Top Contributors

[![davidkudera](https://avatars.githubusercontent.com/u/1174072?v=4)](https://github.com/davidkudera "davidkudera (14 commits)")

---

Tags

addressnetteaddressablecarrooi

### Embed Badge

![Health badge](/badges/carrooi-addressable/health.svg)

```
[![Health](https://phpackages.com/badges/carrooi-addressable/health.svg)](https://phpackages.com/packages/carrooi-addressable)
```

###  Alternatives

[contributte/menu-control

Menu control for Nette framework

29108.6k1](/packages/contributte-menu-control)[carrooi/nette-menu

Menu control for Nette framework

2950.0k1](/packages/carrooi-nette-menu)[bileto/cronner

Simple tool which helps with maintenance of cron tasks.

752.1k](/packages/bileto-cronner)

PHPackages © 2026

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