viison/address-splitter

尝试将地址行拆分为街道名称、门牌号以及其他附加信息,如建筑、公寓信息等。

0.3.4 2019-10-24 09:23 UTC

This package is not auto-updated.

Last update: 2024-09-14 17:16:20 UTC


README

Packagist Build Status Software License

尝试将地址行拆分为街道名称、门牌号以及其他附加信息,如建筑、公寓信息等。

安装

此项目可以通过 Composer 安装

$ composer require viison/address-splitter

用法

AddressSplittingService 只包含一个静态函数 splitAddress,用于执行地址拆分。该函数期望一个参数,即地址行。函数返回一个关联数组,包含键 additionToAddress1streetNamehouseNumberadditionToAddress2。其中 additionToAddress1additionToAddress2 包含街道名称和门牌号之前或之后的信息。

示例

您可以使用地址拆分服务如下

var_dump(\VIISON\AddressSplitter\AddressSplitter::splitAddress('Pallaswiesenstr. 57B App. 235'));

此命令的输出将是

array(4) {
	["additionToAddress1"]=>
	string(0) ""
	["streetName"]=>
	string(16) "Pallaswiesenstr."
	["houseNumber"]=>
	string(2) "57B"
	["houseNumberParts"]=> array(2) {
	    ["base"]=>
	    string(2) "57"
	    ["extension"]=>
	    string(1) "B"    
	}
	["additionToAddress2"]=>
	string(8) "App. 235"
}

支持的地址格式

我们尝试支持全球使用的所有地址格式。例如,地址拆分器将无论门牌号是在街道名称之前还是之后都有效。

以下是一些地址及其拆分表示的示例

单元测试

上述示例以及更多示例地址行都是我们单元测试的一部分。单元测试可以在以下网站上运行:https://regex101.com/r/vO5fY7/5

您也可以通过 PHPUnit 从命令行运行测试

$ phpunit

如果您全局未安装 PHPUnit,请先运行 composer install

更多信息

当注意到 Shopware 5 已不再包含街道名称和门牌号的独立字段时,我们产生了此功能的需求。尽管如此,我们仍需要这些信息分离,因为我们的 DHL 适配器 需要将它们作为单独的参数传递。

关于此实现如何产生的更多背景信息可以在我们的 博客文章 中找到。

Adresstrennung

Dieses Projekt ermöglicht es, eine Adresszeile in Straßennamen und Hausnummer sowie weitere Angaben wie z.B. Gebäude- oder Appartmentinformationen zu trennen. Unterstützt werden eine Vielzahl an Adressformaten, wie sie weltweit verwendet werden. So ist es z.B. unerheblich, ob die Hausnummer auf die Straße folgt oder ihr voran steht.

许可

viison/address-splitter 采用 MIT 许可证授权。有关详细信息,请参阅 LICENSE 文件。