innoweb/silverstripe-international-phone-number-field 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

innoweb/silverstripe-international-phone-number-field

Composer 安装命令:

composer require innoweb/silverstripe-international-phone-number-field

包简介

Adds a phone filed using Google's libphonenumber.

README 文档

README

Version License

Introduction

Adds a database and form field for international phone numbers using Google's libphonenumber and the intl-tel-input plugin.

IP Geo Location services supported:

Requirements

Note: this version is compatible with SilverStripe 6. For SilverStripe 5, please see the 5 release line.

Installation

Install the module using composer:

composer require innoweb/silverstripe-international-phone-number-field dev-master

Then run dev/build.

Usage

Database field

This module provides a database field to be used for data objects:

private static $db = [
	...
	'PhoneNumber' => 'Phone',
	...
];

This stores the phone number in the database as a varchar.

In the CMS the data type Phone renders as a InternationalPhoneNumberField.

In templates, the following formatting functions are available:

  • $PhoneNumber.International: Returns the phone number in international format, e.g. "+41 44 668 1800"
  • $PhoneNumber.National: Returns the phone number in national format, e.g. "044 668 1800"
  • $PhoneNumber.E164: Returns the phone number in international format, but with no formatting applied, e.g. "+41446681800"
  • $PhoneNumber.URL or $PhoneNumber.RFC3966: Returns the phone number in international format, but with all spaces and other separating symbols replaced with a hyphen, and with any phone number extension appended with ";ext=". It also will have a prefix of "tel:" added, e.g. "tel:+41-44-668-1800".

Form field

The InternationalPhoneNumberField can be used for any Varchar field storing a phone number.

Configuration

To set the field to use the user's current location as default and customise the field, you can configure the following options for the InternationalPhoneNumberField class:

  • geolocation_service: Uses IP location to determine the current users's country code. This can be 'ipstack', 'ipinfo', 'ipgeolocation', 'ipapi' or false. Defaults to false.
  • geolocation_api_key: API key for ipstack.com, ipinfo.io or ipgeolocation. Defaults to false.
  • geolocation_protocol: Protocol to be used to connecto to geolocation service. Defaults to 'https'.
  • initial_country: Country code for initially shown country in the phone number field. Defaults to 'auto', in which case the location is determined using geolocation if that's set up.
  • load_default_from_user_agent: Enable loading the default country from the user agent's timezone settings instead of a geo ip service. This is only used if geolocation_service is false and initial_country is auto. Defaults to true.
  • only_countries: Array of country codes available for selection. Defaults to false, all countries are listed.
  • preferred_countries: Array of country codes pushed to the top of the dropdown list. Defaults to false, all countries are listed alphabetically.
  • excluded_countries: Array of country codes to be excluded from the dropdown lost. Defaults to false, all countries are listed.

License

BSD 3-Clause License, see License

innoweb/silverstripe-international-phone-number-field 适用场景与选型建议

innoweb/silverstripe-international-phone-number-field 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 30.47k 次下载、GitHub Stars 达 5, 最近一次更新时间为 2018 年 12 月 17 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「database」 「form」 「phone」 「silverstripe」 「field」 「geo-location」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 innoweb/silverstripe-international-phone-number-field 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 innoweb/silverstripe-international-phone-number-field 我们能提供哪些服务?
定制开发 / 二次开发

基于 innoweb/silverstripe-international-phone-number-field 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 30.47k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 5
  • 点击次数: 30
  • 依赖项目数: 4
  • 推荐数: 0

GitHub 信息

  • Stars: 5
  • Watchers: 2
  • Forks: 6
  • 开发语言: PHP

其他信息

  • 授权协议: BSD-3-Clause
  • 更新时间: 2018-12-17