siberfx / turkiye-address
Laravel package for seeding Turkish address (city, district, neighborhood) tables from SQL dumps.
Requires
- php: ^8.4
- illuminate/support: ^12.0|^13.0
Requires (Dev)
- orchestra/testbench: ^10.0 || ^11.0
- phpunit/phpunit: ^11.5 || ^12.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Bu paket, Türkiye'nin şehir, ilçe ve mahalle verilerini Laravel projelerine kolayca entegre etmenizi sağlar. SQL dump dosyaları, dinamik tablo isimleri, seeder, migration ve Eloquent modelleri ile birlikte gelir.
Özellikler
- Türkiye'nin tüm şehir, ilçe ve mahalle verileri
- Esnek yapılandırma seçenekleri
- Performans için optimize edilmiş veri yükleme
- Kolay entegrasyon için hazır migration dosyaları
- Seçici yayınlama özelliği ile ihtiyacınız olan dosyaları yükleyin
- Laravel 12 ve 13 ile uyumlu (PHP 8.4)
Gereksinimler
- PHP 8.4+
- Laravel 12 veya 13
Kurulum
- Paketi Composer ile yükleyin:
composer require siberfx/turkiye-adresler-json
Servis sağlayıcısı paket bulma (package discovery) ile otomatik olarak kaydedilir; elle kayıt gerekmez.
Kullanım
Tüm Varlıkları Yayınlama
Tüm yapılandırma, migration ve seeder dosyalarını tek komutla yayınlayın:
php artisan turkiye:publish
Seçerek Yayınlama
Sadece ihtiyacınız olan dosyaları seçerek yayınlayabilirsiniz:
# Sadece config dosyasını yayınla php artisan turkiye:publish --config # Sadece migration dosyalarını yayınla php artisan turkiye:publish --migrations # Sadece seeder ve SQL dosyalarını yayınla php artisan turkiye:publish --seeders # Mevcut dosyaların üzerine yaz php artisan turkiye:publish --force
Migration'ları Çalıştırma
Yayınlanan migration dosyalarını çalıştırın:
php artisan migrate
Verileri Yükleme
Seeder'ı DatabaseSeeder.php dosyanıza ekleyin:
$this->call(\Siberfx\TurkiyePackage\Database\Seeders\TurkiyeSeeder::class);
Ardından verileri yükleyin:
php artisan db:seed
Yapılandırma
config/turkiye-package.php dosyasından tablo isimlerini ve model sınıflarını özelleştirebilirsiniz:
return [ 'cities_table' => env('TURKIYE_CITIES_TABLE', 'cities'), 'districts_table' => env('TURKIYE_DISTRICTS_TABLE', 'districts'), 'neighborhoods_table' => env('TURKIYE_NEIGHBORHOODS_TABLE', 'neighborhoods'), 'city_model' => 'Siberfx\\TurkiyePackage\\Models\\City', 'district_model' => 'Siberfx\\TurkiyePackage\\Models\\District', 'neighborhood_model' => 'Siberfx\\TurkiyePackage\\Models\\Neighborhood', ];
Modellerin Kullanımı
use Siberfx\TurkiyePackage\Models\City; use Siberfx\TurkiyePackage\Models\District; use Siberfx\TurkiyePackage\Models\Neighborhood; // Tüm şehirleri getir $iller = City::all(); // Belirli bir ile ait ilçeleri getir (city_id farklı tablo isimleri kullanılıyorsa değiştirilmnelidir ) $ilceler = District::where('city_id', 1)->get(); // Belirli bir ilçeye ait mahalleleri getir (district_id farklı tablo isimleri kullanılıyorsa değiştirilmnelidir ) $mahalleler = Neighborhood::where('district_id', 10)->get();
İlişkiler
Modeller arasında tanımlanmış ilişkileri kullanabilirsiniz:
// Bir şehrin tüm ilçeleri $il = City::find(1); $ilceler = $il->districts; // Bir ilçenin tüm mahalleleri $ilce = District::find(10); $mahalleler = $ilce->neighborhoods;
Sürüm Geçmişi
Detaylı değişiklikler için CHANGELOG.md dosyasına bakınız.
Katkıda Bulunma
Katkılarınızı bekliyoruz! Lütfen önce bir konu açarak yapmak istediğiniz değişikliği tartışın.
Lisans
Bu paket MIT lisansı altında lisanslanmıştır.
İletişim
SiberFX - info@siberfx.com
Proje Linki: https://github.com/siberfx/turkiye-il-ilce-mahalle