andrey-helldar / beautiful-phone
v2.2.0
2020-09-17 14:41 UTC
Requires
- php: ^7.2
- ext-mbstring: *
- andrey-helldar/support: ^1.18
- illuminate/container: ^6.0|^7.0|^8.0
Requires (Dev)
- phpunit/phpunit: ^8.4|^9.0
Suggests
- symfony/thanks: Give thanks (in the form of a GitHub) to your fellow PHP package maintainers
README
将电话号码格式化为美观的视图。
此软件包已被弃用且不再维护。作者建议使用 propaganistas/laravel-phone 软件包。
安装
要获取最新版本的 Beautiful Phone Formatter
,只需使用 Composer 需求此项目。
composer require andrey-helldar/beautiful-phone
当然,您也可以手动更新您的 require 块并运行 composer update
。
{ "require": { "andrey-helldar/beautiful-phone": "^2.1" } }
Laravel
您还可以发布配置文件以更改实现(例如,将接口转换为特定类)。
php artisan vendor:publish --provider="Helldar\BeautifulPhone\ServiceProvider"
Lumen
此软件包专注于 Laravel 开发,但它也可以在 Lumen 中使用一些变通方法。因为 Lumen 的工作方式略有不同,它类似于 Laravel 的裸机版本,主要的配置参数位于 bootstrap/app.php
中,因此必须进行一些更改。
您可以在 app/Providers/AppServiceProvider.php
中安装软件包,并取消注释此行以注册 App 服务提供程序,以便它能够正确加载。
// $app->register(App\Providers\AppServiceProvider::class);
如果您不使用该行,通常在管理多个 Lumen 安装时很有用,您必须在您的 bootstrap/app.php
中的 Register Service Providers
部分下添加此行代码。
$app->register(\Helldar\BeautifulPhone\ServiceProvider::class);
使用
现在您可以在 Laravel 框架内部使用通用的 phone()
助手(phone()
也可以工作)。
或者创建一个 Phone
实例
use Helldar\BeautifulPhone\Services\Phone; return (new Phone())->get(/*...params...*/);
默认参数
return phone('4567'); // returned: <a href='tel:4567'>4567</a> return phone('fooba'); // returned: <a href='tel:+781236622'><span>+7 (812)</span> 3-66-22</a> return phone('foobar'); // returned: <a href='tel:+7812366227'><span>+7 (812)</span> 36-62-27</a> return phone('123123'); // returned: <a href='tel:+7812123123'><span>+7 (812)</span> 123-123</a> return phone('31234567890'); // returned: <a href='tel:+31234567890'><span>+3 (123)</span> 456-789-0</a> return phone('+33216549883'); // returned: <a href='tel:+33216549883'><span>+3 (321)</span> 654-98-83</a> return phone('+33216665557'); // returned: <a href='tel:+33216665557'><span>+3 (321)</span> 666-555-7</a> return phone('+73216665557'); // returned: <a href='tel:+73216665557'><span>+7 (321)</span> 666-555-7</a> return phone('+83216665557'); // returned: <a href='tel:+73216665557'><span>+7 (321)</span> 666-555-7</a>
手动应用城市代码
return phone('4567', 1234); // returned: <a href='tel:4567'>4567</a> return phone('fooba', 1234); // returned: <a href='tel:+7123436622'><span>+7 (1234)</span> 3-66-22</a> return phone('foobar', 1234); // returned: <a href='tel:+71234366227'><span>+7 (1234)</span> 36-62-27</a> return phone('123123', 1234); // returned: <a href='tel:+71234123123'><span>+7 (1234)</span> 123-123</a> return phone('31234567890', 1234); // returned: <a href='tel:+31234567890'><span>+3 (1234)</span> 567-890</a> return phone('+33216549883', 1234); // returned: <a href='tel:+33216549883'><span>+3 (321)</span> 654-98-83</a> return phone('+33216665557', 1234); // returned: <a href='tel:+33216665557'><span>+3 (321)</span> 666-555-7</a> return phone('+73216665557', 1234); // returned: <a href='tel:+73216665557'><span>+7 (321)</span> 666-555-7</a> return phone('+83216665557', 1234); // returned: <a href='tel:+73216665557'><span>+7 (321)</span> 666-555-7</a>
禁用电话号码中的 HTML 格式化
return phone('4567', 0, false); // returned: <a href='tel:4567'>4567</a> return phone('fooba', 0, false); // returned: <a href='tel:+781236622'>+7 (812) 3-66-22</a> return phone('foobar', 0, false); // returned: <a href='tel:+7812366227'>+7 (812) 36-62-27</a> return phone('123123', 0, false); // returned: <a href='tel:+7812123123'>+7 (812) 123-123</a> return phone('31234567890', 0, false); // returned: <a href='tel:+31234567890'>+3 (123) 456-789-0</a> return phone('+33216549883', 0, false); // returned: <a href='tel:+33216549883'>+3 (321) 654-98-83</a> return phone('+33216665557', 0, false); // returned: <a href='tel:+33216665557'>+3 (321) 666-555-7</a> return phone('+73216665557', 0, false); // returned: <a href='tel:+73216665557'>+7 (321) 666-555-7</a> return phone('+83216665557', 0, false); // returned: <a href='tel:+73216665557'>+7 (321) 666-555-7</a>
启用 HTML 格式化并禁用电话号码中的 is_link
参数
return phone('4567', 0, true, false); // returned: 4567 return phone('fooba', 0, true, false); // returned: <span>+7 (812)</span> 3-66-22 return phone('foobar', 0, true, false); // returned: <span>+7 (812)</span> 36-62-27 return phone('123123', 0, true, false); // returned: <span>+7 (812)</span> 123-123 return phone('31234567890', 0, true, false); // returned: <span>+3 (123)</span> 456-789-0 return phone('+33216549883', 0, true, false); // returned: <span>+3 (321)</span> 654-98-83 return phone('+33216665557', 0, true, false); // returned: <span>+3 (321)</span> 666-555-7 return phone('+73216665557', 0, true, false); // returned: <span>+7 (321)</span> 666-555-7 return phone('+83216665557', 0, true, false); // returned: <span>+7 (321)</span> 666-555-7
禁用 HTML 格式化和电话号码中的 is_link
参数
return phone('4567', 0, false, false); // returned: 4567 return phone('fooba', 0, false, false); // returned: +7 (812) 3-66-22 return phone('foobar', 0, false, false); // returned: +7 (812) 36-62-27 return phone('123123', 0, false, false); // returned: +7 (812) 123-123 return phone('31234567890', 0, false, false); // returned: +3 (123) 456-789-0 return phone('+33216549883', 0, false, false); // returned: +3 (321) 654-98-83 return phone('+33216665557', 0, false, false); // returned: +3 (321) 666-555-7 return phone('+73216665557', 0, false, false); // returned: +7 (321) 666-555-7 return phone('+83216665557', 0, false, false); // returned: +7 (321) 666-555-7
带有完整清除属性
return phone('4567', 0, false, false, [], true); // returned: 4567 return phone('fooba', 0, false, false, [], true); // returned: +781236622 return phone('foobar', 0, false, false, [], true); // returned: +7812366227 return phone('123123', 0, false, false, [], true); // returned: +7812123123 return phone('31234567890', 0, false, false, [], true); // returned: +31234567890 return phone('+33216549883', 0, false, false, [], true); // returned: +33216549883 return phone('+33216665557', 0, false, false, [], true); // returned: +33216665557 return phone('+73216665557', 0, false, false, [], true); // returned: +73216665557 return phone('+83216665557', 0, false, false, [], true); // returned: +73216665557
带有附加属性
$attributes = ["id" => "foo", "class" => "bar baz", "data-value" => "foo"]; // Default parameters: return phone('foobar', 0, true, true, $attributes); // returned: <a href="tel:+7812366227" id="foo" class="bar baz" data-value="foo"><span>+7 (812)</span> 36-62-27</a> // With manual applying city code: return phone('foobar', 1234, true, true, $attributes); // returned: <a href="tel:+71234366227" id="foo" class="bar baz" data-value="foo"><span>+7 (1234)</span> 36-62-27</a> // With disabled html formatting into phone number: return phone('foobar', 0, false, true, $attributes); // returned: <a href="tel:+7812366227" id="foo" class="bar baz" data-value="foo">+7 (812) 36-62-27</a> // With enabled html formatting and disabled `is_link` parameter into phone number: return phone('foobar', 0, true, false, $attributes); // returned: <span>+7 (812)</span> 36-62-27 // With disabled html formatting and `is_link` parameter into phone number: return phone('foobar', 0, false, false, $attributes); // returned: +7 (812) 36-62-27
Laravel/Lumen 门面
如果您正在使用 Laravel 或 Lumen 框架,那么您可以使用 Phone
门面调用。
use Helldar\BeautifulPhone\Facades\Phone; return Phone::spanLink('foobar'); // returned: <a href='tel:+7812366227'><span>+7 (812)</span> 36-62-27</a> return Phone::cleanLink('foobar'); // returned: <a href='tel:+7812366227'>+7 (812) 36-62-27</a> return Phone::span('foobar'); // returned: <span>+7 (812)</span> 36-62-27 return Phone::clear('foobar'); // returned: +7 (812) 36-62-27 return Phone::fullClear('foobar'); // returned: +7812366227
版权和许可
Beautiful Phone Formatter
是由 Andrey Helldar 编写的,并在 MIT 许可证 下发布。