diff --git a/composer.json b/composer.json index 7ff2da0..5e8cb8e 100644 --- a/composer.json +++ b/composer.json @@ -17,16 +17,13 @@ }, "autoload": { "psr-4": { - "Aozisik\\Turkiye\\": "src/" - }, - "files": [ - "src/helpers.php" - ] + "Aozisik\\LaravelTurkiye\\": "src/" + } }, "extra": { "laravel": { "providers": [ - "Aozisik\\Turkiye\\Providers\\TurkiyeServiceProvider" + "Aozisik\\LaravelTurkiye\\Providers\\TurkiyeServiceProvider" ] } } diff --git a/readme.md b/readme.md index f60fce3..d52e923 100644 --- a/readme.md +++ b/readme.md @@ -3,7 +3,11 @@ Laravel Türkiye Paketi 🇹🇷 ![](https://travis-ci.org/aozisik/laravel-turkiye.svg?branch=master) -Türkiye'ye hizmet eden Laravel uygulamalarınız için doğrulama ve dil yardımcıları içerir. +Türkiye'ye hizmet eden Laravel uygulamalarınız için doğrulama yardımcıları içerir. Türkçe dil yardımcıları ayrı bir pakete taşınmıştır: +* [https://github.com/aozisik/turkce](https://github.com/aozisik/turkce) + + +## Kurulum Laravel 5.* kullanan projenize eklemek için: @@ -12,8 +16,7 @@ Laravel 5.* kullanan projenize eklemek için: Laravel 5.5 sürümünü kullanıyorsanız, paketin kurulumu otomatik tamamlanacaktır. Eğer daha eski bir sürüm kullanıyorsanız, aşağıdaki satırı app/config.php dosyanızda ilgili yere ekleyin. - Aozisik\Turkiye\Providers\TurkiyeServiceProvider::class, - + Aozisik\LaravelTurkiye\Providers\TurkiyeServiceProvider::class, ## Doğrulama @@ -30,37 +33,6 @@ değerlendirir. $this->validate($request, ['vergi_no' => 'required|vkn']); - -## Dil Yardımcıları - - -#### İyelik ve Hâl Ekleri - -İsimlerin yanına gelen ekleri koda gömdüğünüzde "Ahmet'nin" veya "Hikmet'ye" gibi Türkçe'ye uygun olmayan ve hiç doğal gözükmeyen bir sonuç elde edersiniz. Bu pakette gelen `ek` fonksiyonu tam olarak bu sorunu çözer. - - ek('İstanbul')->den(); // "İstanbul'dan" - ek('Hatice')->i(); // "Hatice'yi" - ek('Kemal')->in(); // "Kemal'in" - ek('Kazım')->e(); // "Kazım'a" - ek('Asu')->de(); // "Asu'da" - -Kullanılabilen ekler: - -* `i` (belirtme) -* `e` (yönelme) -* `de` (bulunma) -* `den` (ayrılma) -* `in` (iyelik) - - -#### Büyük-Küçük Harf Dönüştürme - -I ve i harfleri büyük-küçük harfe dönüştürülürken i ve I oluyor. Bu sinir bozucu problem için üç adet basit global fonksiyon sunuyoruz. - - tr_strtolower('İZMİRİN ILIK İLKBAHARLARI'); // izmirin ılık ilkbaharları - tr_strtoupper('izmirin ılık ilkbaharları'); // İZMİRİN ILIK İLKBAHARLARI - tr_ucwords('izmirin ılık ilkbaharları'); // İzmirin Ilık İlkbaharları - ## Katkıda Bulunma Bu paket Türkçe Laravel uygulamalarında ihtiyaç duyulabilecek özellikleri kullanışlı ve kolay erişilebilir bir şekilde sunmak için oluşturuldu. Faydalı olacağını düşündüğünüz eklemeleri testleriyle birlikte gönderirseniz mutlu oluruz. diff --git a/src/Contracts/Validator.php b/src/Contracts/Validator.php index bfd1614..e4ba112 100644 --- a/src/Contracts/Validator.php +++ b/src/Contracts/Validator.php @@ -1,5 +1,5 @@ kosulHafizasi = []; - $this->sonuc = $soz . '\''; - $this->sonHece = new SonHece($soz); - } - - public function kaynastirma($harf) - { - if ($this->sonHece->sonHarfUnlu()) { - $this->sonuc .= $harf; - } - return $this; - } - - public function kural($kosullar, $ek) - { - if ($this->ek) { - // İsabetli kural bulundu, başka kontrole gerek yok - return $this; - } - $kosullar = explode(',', $kosullar); - foreach ($kosullar as $kosul) { - if (!$this->kosulUyumu($kosul)) { - // Bir koşul sağlanmadığında bitir. - return $this; - } - } - $this->ek = $ek; - return $this; - } - - private function kosulUyumu($kosul) - { - if (!isset($this->kosulHafizasi[$kosul])) { - $this->kosulHafizasi[$kosul] = $this->sonHece->$kosul(); - } - return $this->kosulHafizasi[$kosul]; - } - - public function sonuc() - { - return $this->sonuc .= $this->ek; - } -} diff --git a/src/Turkce/Ek.php b/src/Turkce/Ek.php deleted file mode 100644 index ed7d14e..0000000 --- a/src/Turkce/Ek.php +++ /dev/null @@ -1,59 +0,0 @@ -soz = $soz; - } - - public function i() - { - return Cekim::yeni($this->soz) - ->kaynastirma('y') - ->kural('duz,ince', 'i') - ->kural('duz,kalin', 'ı') - ->kural('yuvarlak,ince', 'ü') - ->kural('yuvarlak,kalin', 'u') - ->sonuc(); - } - - public function in() - { - return Cekim::yeni($this->soz) - ->kaynastirma('n') - ->kural('duz,ince', 'in') - ->kural('duz,kalin', 'ın') - ->kural('yuvarlak,ince', 'ün') - ->kural('yuvarlak,kalin', 'un') - ->sonuc(); - } - - public function e() - { - return Cekim::yeni($this->soz) - ->kaynastirma('y') - ->kural('ince', 'e') - ->kural('kalin', 'a') - ->sonuc(); - } - - public function de() - { - return Cekim::yeni($this->soz) - ->kural('sert,ince', 'te') - ->kural('sert,kalin', 'ta') - ->kural('yumusak,ince', 'de') - ->kural('yumusak,kalin', 'da') - ->sonuc(); - } - - public function den() - { - return $this->de() . 'n'; - } -} diff --git a/src/Turkce/SonHece.php b/src/Turkce/SonHece.php deleted file mode 100644 index 3e4016e..0000000 --- a/src/Turkce/SonHece.php +++ /dev/null @@ -1,94 +0,0 @@ -sonSoz($soz); - $soz = str_replace(['i', 'I'], ['İ', 'ı'], $soz); - $soz = mb_strtolower($soz, 'UTF-8'); - - $this->soz = $soz; - $this->sonHarf = mb_substr($soz, -1); - $this->sonUnluHarf = $this->sonUnluHarfiBul(); - } - - private function sonSoz($soz) - { - $sozler = explode(' ', $soz); - return end($sozler); - } - - private function sonUnluHarfiBul() - { - $regex = '/' . implode('|', $this->unluler) . '/'; - preg_match_all($regex, $this->soz, $matches); - if (!$matches) { - return false; - } - return end($matches[0]); - } - - public function sonHarfUnlu() - { - return in_array($this->sonHarf, [ - 'a', 'e', 'ı', 'i', 'o', 'ö', 'u', 'ü' - ]); - } - - public function sert() - { - // Fıstıkçı şahap :) - return in_array($this->sonHarf, [ - 'f', 's', 't', 'k', 'ç', 'ş', 'h', 'p' - ]); - } - - public function yumusak() - { - return !$this->sert(); - } - - public function kalin() - { - $istisnalar = [ - 'mal', - 'lal', - 'hal' - ]; - // Kemal, Bilal, Zuhal gibi istisnalar için... - if (in_array(substr($this->soz, -3), $istisnalar)) { - return false; - } - - return in_array($this->sonUnluHarf, [ - 'a', 'ı', 'u', 'o' - ]); - } - - public function ince() - { - return !$this->kalin(); - } - - public function yuvarlak() - { - return in_array($this->sonUnluHarf, [ - 'o', 'ö', 'u', 'ü' - ]); - } - - public function duz() - { - return !$this->yuvarlak(); - } -} diff --git a/src/Validation/Iban.php b/src/Validation/Iban.php index 0f52609..2fdca41 100644 --- a/src/Validation/Iban.php +++ b/src/Validation/Iban.php @@ -1,7 +1,7 @@ assertEquals('çılgın koşu', tr_strtolower('ÇIlgın KoŞu')); - $this->assertEquals('iyelik ekleri', tr_strtolower('İyelİk eklerİ')); - $this->assertEquals('ılık rüzgarlar', tr_strtolower('ıLIK RÜZGARLAR')); - $this->assertEquals('izmir\'de ılık ilkbahar akşamı', tr_strtolower('İzmir\'de Ilık İlkbahar akşamı')); - } - - /** - * @test - */ - public function tr_strtoupper() - { - $this->assertEquals('IĞDIR\'DA ILIK İLKBAHAR AKŞAMI', tr_strtoupper('Iğdır\'da Ilık İlkbahar akşamı')); - } - - /** - * @test - */ - public function tr_ucwords() - { - $this->assertEquals('Çılgın Koşu', tr_ucwords('ÇILgın koŞu')); - $this->assertEquals('İyelik Ekleri', tr_ucwords('iYelik eklerİ')); - $this->assertEquals('Ilık Rüzgarlar', tr_ucwords('ıLIK RÜZGARLAR')); - $this->assertEquals('Iğdır\'da Ilık İlkbahar Akşamı', tr_ucwords('ığdIr\'da ılIk ilkbAhar Akşamı')); - } -} diff --git a/tests/Unit/LanguageTests.php b/tests/Unit/LanguageTests.php deleted file mode 100644 index c65dc7d..0000000 --- a/tests/Unit/LanguageTests.php +++ /dev/null @@ -1,98 +0,0 @@ -assertSuffix('Suat\'ı', 'Suat', 'i'); - - $this->assertSuffix('Asu\'yu', 'Asu', 'i'); - - $this->assertSuffix('Ümmü\'yü', 'Ümmü', 'i'); - $this->assertSuffix('Ahmet\'i', 'Ahmet', 'i'); - $this->assertSuffix('Kemal\'i', 'Kemal', 'i'); - $this->assertSuffix('Orhon\'u', 'Orhon', 'i'); - $this->assertSuffix('Topal\'ı', 'Topal', 'i'); - $this->assertSuffix('Tuğrul\'u', 'Tuğrul', 'i'); - $this->assertSuffix('Şükran\'ı', 'Şükran', 'i'); - $this->assertSuffix('Kamile\'yi', 'Kamile', 'i'); - $this->assertSuffix('Şefika\'yı', 'Şefika', 'i'); - } - - /** - * @test - */ - public function iyelik() - { - $this->assertSuffix('Asu\'nun', 'Asu', 'in'); - $this->assertSuffix('Suat\'ın', 'Suat', 'in'); - $this->assertSuffix('Ümmü\'nün', 'Ümmü', 'in'); - $this->assertSuffix('Ahmet\'in', 'Ahmet', 'in'); - $this->assertSuffix('Kemal\'in', 'Kemal', 'in'); - $this->assertSuffix('Orhon\'un', 'Orhon', 'in'); - $this->assertSuffix('Tuğrul\'un', 'Tuğrul', 'in'); - $this->assertSuffix('Şükran\'ın', 'Şükran', 'in'); - $this->assertSuffix('Kamile\'nin', 'Kamile', 'in'); - $this->assertSuffix('Şefika\'nın', 'Şefika', 'in'); - } - - /** - * @test - */ - public function e_hali() - { - $this->assertSuffix('Asu\'ya', 'Asu', 'e'); - $this->assertSuffix('Suat\'a', 'Suat', 'e'); - $this->assertSuffix('Ümmü\'ye', 'Ümmü', 'e'); - $this->assertSuffix('Ahmet\'e', 'Ahmet', 'e'); - $this->assertSuffix('Kemal\'e', 'Kemal', 'e'); - $this->assertSuffix('Tuğrul\'a', 'Tuğrul', 'e'); - $this->assertSuffix('Şükran\'a', 'Şükran', 'e'); - $this->assertSuffix('Kamile\'ye', 'Kamile', 'e'); - $this->assertSuffix('Şefika\'ya', 'Şefika', 'e'); - } - - /** - * @test - */ - public function de_hali() - { - $this->assertSuffix('Asu\'da', 'Asu', 'de'); - $this->assertSuffix('Suat\'ta', 'Suat', 'de'); - $this->assertSuffix('Ümmü\'de', 'Ümmü', 'de'); - $this->assertSuffix('Ahmet\'te', 'Ahmet', 'de'); - $this->assertSuffix('Kemal\'de', 'Kemal', 'de'); - $this->assertSuffix('Orhon\'da', 'Orhon', 'de'); - $this->assertSuffix('Tuğrul\'da', 'Tuğrul', 'de'); - $this->assertSuffix('Şükran\'da', 'Şükran', 'de'); - $this->assertSuffix('Kamile\'de', 'Kamile', 'de'); - $this->assertSuffix('Şefika\'da', 'Şefika', 'de'); - } - - /** - * @test - */ - public function den_hali() - { - $this->assertSuffix('Asu\'dan', 'Asu', 'den'); - $this->assertSuffix('Suat\'tan', 'Suat', 'den'); - $this->assertSuffix('Ümmü\'den', 'Ümmü', 'den'); - $this->assertSuffix('Ahmet\'ten', 'Ahmet', 'den'); - $this->assertSuffix('Kemal\'den', 'Kemal', 'den'); - $this->assertSuffix('Tuğrul\'dan', 'Tuğrul', 'den'); - $this->assertSuffix('Şükran\'dan', 'Şükran', 'den'); - $this->assertSuffix('Kamile\'den', 'Kamile', 'den'); - $this->assertSuffix('Şefika\'dan', 'Şefika', 'den'); - } - - private function assertSuffix($expected, $word, $suffix) - { - $this->assertEquals($expected, ek($word)->$suffix()); - } -} diff --git a/tests/Unit/ValidationTests.php b/tests/Unit/ValidationTests.php index e8bb946..81f1322 100644 --- a/tests/Unit/ValidationTests.php +++ b/tests/Unit/ValidationTests.php @@ -1,9 +1,9 @@