TR Phone: PHP Türkiye Telefon Doğrulama Paketi

PHP için Türkiye Telefon Numarası Doğrulama ve Normalizasyon Paketi

PHP için Türkiye Telefon Numarası Doğrulama ve Normalizasyon Paketi

TR Phone: PHP için Türkiye Telefon Numarası Doğrulama ve Normalizasyon Paketi

Web projelerinde telefon numarası almak kolay görünse de veriler kullanılmaya başlandığında farklı yazım biçimleri sorun oluşturabiliyor.

Aynı telefon numarası kullanıcı tarafından farklı şekillerde girilebilir:

0555 000 00 00
5550000000
+90 555 000 00 00
0090 555 000 00 00
(0555) 000 00 00
0555-000-00-00

CRM sistemleri, randevu yazılımları, WhatsApp entegrasyonları, e-ticaret projeleri ve müşteri veritabanlarında bu verilerin tutarlı biçimde saklanması gerekir.

Bu ihtiyaca yönelik olarak geliştirdiğimiz TR Phone paketini açık kaynak olarak yayımladık.

TR Phone, PHP projelerinde Türkiye telefon numaralarının doğrulanması, normalleştirilmesi ve standart formatlara dönüştürülmesi için geliştirilmiş, framework bağımsız bir PHP paketidir.

TR Phone ne yapıyor?

Paket farklı biçimlerde girilen Türkiye telefon numaralarını ayrıştırarak standart bir yapıya dönüştürür.

Örneğin:

use Kariha\TrPhone\PhoneNumber;

$phone = PhoneNumber::parse('0555 000 00 00');

echo $phone->e164();
// +905550000000

echo $phone->national();
// 0555 000 00 00

echo $phone->international();
// +90 555 000 00 00

echo $phone->digits();
// 5550000000

Böylece kullanıcı telefon numarasını hangi yaygın biçimde girerse girsin uygulama tarafında tutarlı bir veri elde edilebilir.

TR Phone temel olarak şu özellikleri sunar:

  • Türkiye mobil ve coğrafi sabit hat numaralarının doğrulanması
  • 0, +90 ve 0090 ile başlayan numaraların işlenmesi
  • E.164, ulusal, uluslararası ve kompakt format çıktıları
  • Mobil ve sabit hat ayrımı
  • Sabit hatlarda şehir ve alan kodu bilgisi
  • Mobil numaralarda prefix tahsis bilgisi
  • M2M, GMPCS, GSM-R ve mobil sanal şebeke gibi özel 5XX hizmetlerinin tanımlanması
  • Hatalı veya desteklenmeyen numaraların güvenli şekilde reddedilmesi

Harici API kullanmıyor

TR Phone tamamen PHP içerisinde çalışır.

Telefon numarası herhangi bir API'ye gönderilmez, harici bir servisten doğrulama yapılmaz ve paket bir veritabanına ihtiyaç duymaz.

Bu nedenle form doğrulama, veri temizleme ve normalizasyon işlemleri doğrudan uygulama içerisinde gerçekleştirilebilir.

Composer ile kurulum

Paket Packagist üzerinden doğrudan kurulabilir:

composer require kariha/tr-phone

Ardından bir formdan gelen telefon numarası kolayca kontrol edilebilir:

use Kariha\TrPhone\PhoneNumber;

$phone = PhoneNumber::tryParse($input);

if ($phone === null) {
    // Geçersiz veya desteklenmeyen telefon numarası
}

Daha basit kullanım için TrPhone sınıfı da kullanılabilir:

use Kariha\TrPhone\TrPhone;

if (TrPhone::validate('+90 532 123 45 67')) {
    // Geçerli Türkiye telefon numarası
}

$normalized = TrPhone::normalize('0532 123 45 67');
// 5321234567

Mobil operatör bilgisi hakkında önemli not

Türkiye'de mobil numara taşınabilirliği bulunduğu için bir telefon numarasının prefix'i güncel operatörü kesin olarak göstermez.

Örneğin 532 prefix'i ilk tahsis bilgisi açısından Turkcell ile ilişkilidir ancak numara daha sonra başka bir operatöre taşınmış olabilir.

Bu nedenle TR Phone operatör bilgisini güncel hat operatörü olarak değil, prefix bazlı tahsis bilgisi olarak sunar.

BTK numaralandırma planı

Paket içerisindeki Türkiye numaralandırma verileri BTK tarafından yayımlanan Genel Numaralandırma Planı ve Ulusal Numaralandırma Planı esas alınarak hazırlanmıştır.

Alan kodları ve desteklenen prefix'ler otomatik testlerle kontrol edilmektedir.

Framework bağımsız

TR Phone yalnızca PHP ve Composer gerektirir.

Laravel, Symfony, WordPress veya herhangi bir framework zorunluluğu bulunmaz. Özel PHP projelerinde ve Composer destekleyen diğer PHP uygulamalarında kullanılabilir.

Paket PHP 8.1, 8.2, 8.3 ve 8.4 sürümlerinde GitHub Actions üzerinden otomatik olarak test edilmektedir.

Kod kalitesi için PHPUnit, PHPStan ve PHP CS Fixer kontrolleri de geliştirme sürecine dahil edilmiştir.

Açık kaynak

TR Phone, MIT lisansı ile açık kaynak olarak yayımlanmıştır.

Kaynak kodunu inceleyebilir, kendi projelerinizde kullanabilir, hata bildirimi veya geliştirme önerisi gönderebilirsiniz.

GitHub:
https://github.com/kariha-dev/tr-phone

Packagist:
https://packagist.org/packages/kariha/tr-phone

TR Phone'u kendi projelerimizde karşılaştığımız gerçek bir veri standardizasyonu ihtiyacından yola çıkarak geliştirdik. Türkiye numaralandırma planındaki değişikliklere göre paketi güncel tutmayı planlıyoruz.

902522750175