propertyguru/e164-phone-number-formatter-bundle

此包已被废弃且不再维护。未建议替代包。
关于此包的最新版本(v1.0)没有可用的许可信息。

Propertygurus的电话号码格式化器

v1.0 2015-11-25 03:56 UTC

This package is not auto-updated.

Last update: 2024-06-22 17:13:35 UTC


README

Build Status

E164-phone-number-formatter-bundle

Symfony2 扩展包,用于将电话号码格式化为 E164 格式

安装

将仓库添加到您的 composer.json 文件中

// composer.json

{
    "require": {
        // ...
        "propertyguru/E164-phone-number-formatter-bundle" : "dev-master"
    }
}

在您的 AppKernel 中注册扩展包

// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new Guru\PhoneNumberFormatterBundle\GuruPhoneNumberFormatterBundle(),
        // ...
    );
}

使用方法

配置

$formatter = $this->container->get('guru_phone_number_formatter.formatter');
// optional: set current country - if known
$formatter->setDefaultRegionCode('my');

如果您已经知道国家代码

$e164 = $formatter->numberToE164('0101234567', '60');

如果国家代码已嵌入号码中

$e164 = $formatter->numberToE164('+60101234567');

如果您不确定国家代码是否已嵌入

$e164 = $formatter->numberToE164('+60101234567', '60');

以上所有都将输出

array(
   'countryCode' => '60',
   'nationalDestinationCode' => '010',
   'nationalDestinationCodeInternational' => '10',
   'subscriberNumber' => '1234567',
   'isMobile' => true,
)

嵌入的国家代码优先于指定的国家代码

$e164 = $formatter->numberToE164('+65101234567', '60');

并输出

array(
   'countryCode' => '65',
   'nationalDestinationCode' => NULL,
   'nationalDestinationCodeInternational' => NULL,
   'subscriberNumber' => '101234567',
   'isMobile' => false,
)

加权结果

可以定义一些国家代码比其他代码更优先。如果一个号码可以匹配多个国家,那么只考虑权重最高的那个

$formatter->setRegionWeights(array(
    'my' => 1,
    'sg' => 2
));

示例:98123123可以是马来西亚或新加坡的电话号码。

贡献者