Skip to content

Nobiles2Programmer/AddressBundle

 
 

Repository files navigation

SensioLabsInsight

Address

International mailing address created in Symfony2. Format examples on http://www.bitboost.com/ref/international-address-formats.html#Formats

Installation

Install the library using composer. Add the new line to your composer.json file:

{
    "require": {
        "feft/address-bundle": "dev-master"
    }, 
}

Now run the install command.

$ php composer.phar install

Enable the bundle

Enable the bundle in the kernel:

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new \Feft\AddressBundle\FeftAddressBundle(),
    );
}

Update doctrine schema

$ php app/console doctrine:schema:update --force

CRUD operations

Every entity has CRUD Controller to show/add/edit/delete operation, eg. to manage countries use link like this: http://localhost/address/web/app.php/country/

Usage

Simple use:

        $factory = new AddressFactory();

        $addressData = array(
            "countryName" => "Poland",
            "countryAlpha2Code" => "PL",
            "countryLocalShortName" => "Polska",
            "localityName" => "Tychy",
            "regionName" => "śląskie",
            "streetName" => "Freedom",
            "postalCode" => "43-100",
            "streetNumber" => "20 m. 21",
        );

        $address = $factory->getAddressObject($addressData);

        return array(
            'address' => $address,
        );

For more examples see unit tests folder.

Controller file:

  use Feft\AddressBundle\Entity\Address;
  use Feft\AddressBundle\Entity\Country;
  use Feft\AddressBundle\Entity\Locality;
  use Feft\AddressBundle\Entity\PostalCode;
  use Feft\AddressBundle\Entity\Region;
  use Feft\AddressBundle\Entity\Street;
  use Feft\AddressBundle\Model\PostalValidator\Factory;

  $country = new Country("Poland","PL");
  $country->setLocalShortName("Polska");
  
  $locality = new Locality();
  $locality->setName("Tychy");
  
  $region = new Region();
  $region->setName("śląskie");
  $locality->setRegion($region);
  $country->addRegion($locality->getRegion());
  $locality->getRegion()->setCountry($country);
  
  $street = new Street();
  $street->setName("Wolności");
 
  $code = new PostalCode();
  $code->setCode("43-100");
  $code->setValidator(Factory::getInstance($code,$country->getCode()));

  $address = new Address();
  $address->setCountry($country);
  $address->setRegion($region);
  $address->setLocality($locality);
  $address->setStreet($street);
  $address->setNumber("20 m. 21");
  $address->setPostalCode($code);
  
  $codeValidatingResult = $code->validate();
  
  $options = array("showCountryName" => true);
    
  return array(
    'address' => $address,
    "options" => $options
  );
        

Twig file:

  <p> {{ address_formatter(address,options)|raw }} </p>
  <p>or inline format: {{ address_inline_formatter(address,options) }} </p>

Html result:
Wolności 20 m. 21
43-100 Tychy
Poland
or inline format: Wolności 20 m. 21, 43-100 Tychy, Poland

Authors

The bundle was created by Piotr Pikuła. See the list of contributors.

About

International mailing address created in Symfony2.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 88.8%
  • HTML 11.2%