feft/address-bundle

这是一个允许使用国际邮寄地址的Symfony2扩展包。

安装: 35

依赖者: 0

建议者: 0

安全性: 0

星星: 2

关注者: 1

分支: 1

开放问题: 4

类型:symfony-bundle

1.0 2016-09-10 11:16 UTC

This package is auto-updated.

Last update: 2024-09-26 05:43:10 UTC


README

SensioLabsInsight

地址

在Symfony2中创建的国际邮寄地址。格式示例请参考http://www.bitboost.com/ref/international-address-formats.html#Formats

代码与php 7.1和5.6版本兼容。

安装

使用composer安装库。将以下行添加到您的composer.json文件中

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

现在运行install命令。

$ php composer.phar install

或者使用Makefile(仅当您使用Docker时)

make composer

PhpUnit

要运行单元测试,请使用命令(仅当您使用Docker时)

make php5.6-phpunit5

启用扩展包

在内核中启用扩展包

<?php
// app/AppKernel.php

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

更新doctrine模式

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

CRUD操作

每个实体都有一个CRUD控制器来显示/添加/编辑/删除操作,例如,要管理国家,请使用如下链接:https:///address/web/app.php/country/

用法

简单用法

        $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,
        );

更多示例请参阅单元测试文件夹。

控制器文件

  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文件

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

HTML结果
Wolności 20 m. 21
43-100 Tychy
波兰
或内联格式:Wolności 20 m. 21, 43-100 Tychy, Poland

作者

该扩展包由Piotr Pikuła创建。请参阅贡献者列表