feft / address-bundle
这是一个允许使用国际邮寄地址的Symfony2扩展包。
1.0
2016-09-10 11:16 UTC
Requires
- php: >=5.3.3
- symfony/framework-bundle: ~2.1
Suggests
- doctrine/doctrine-bundle: ~1.1
- doctrine/orm: ~2.3
This package is auto-updated.
Last update: 2024-09-26 05:43:10 UTC
README
地址
在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创建。请参阅贡献者列表。