PHP reference package for Tanzania's regions and administrative divisions
# TanzaniaRegions
PHP reference package for Tanzania's regions (mikoa), districts (wilaya), and wards (kata) — imejengwa kwa muundo wa `id` / `parent_id` unaofaa kwa dropdown zenye ngazi (region → district → ward).
## Muundo wa Data
```
Mkoa (Region)
└── Wilaya (District) — parent: region_id
└── Kata (Ward) — parent: district_id
```
31 mikoa (26 Bara + 5 Zanzibar) zote zipo kwenye `data/regions.json`.
Wilaya na kata zinaongezwa kidogo kidogo — angalia `CONTRIBUTING.md`.
## Installation
```bash
composer require rawasen/tanzania-regions
```
## Matumizi (Usage)
```php
use Rawasen\TanzaniaRegions\TanzaniaRegions;
// Mikoa yote
$regions = TanzaniaRegions::regions();
// Wilaya za mkoa fulani (mfano: Dar es Salaam, id = 2)
$districts = TanzaniaRegions::districts(2);
// Kata za wilaya fulani (mfano: Ilala, id = 1)
$wards = TanzaniaRegions::wards(1);
// Tafuta mkoa kwa jina
$region = TanzaniaRegions::findRegion('Dar');
```
## Mfano wa Dropdown (HTML + vanilla JS)
```html
-- Chagua Mkoa --
">
-- Chagua Wilaya --
const districtsData = ;
document.getElementById('region').addEventListener('change', function () {
const regionId = parseInt(this.value);
const districtSelect = document.getElementById('district');
districtSelect.innerHTML = ' -- Chagua Wilaya -- ';
districtsData
.filter(d => d.region_id === regionId)
.forEach(d => {
const opt = document.createElement('option');
opt.value = d.id;
opt.textContent = d.name;
districtSelect.appendChild(opt);
});
});
```
## Matumizi Yanayowezekana
- **Nipangishe** — location filters kwa property listings (Mkoa → Wilaya → Kata)
- **food_delivery** — delivery zones kwa mkoa/wilaya
- **bus-ticketing** — routes kati ya mikoa
- **ecommerce_api** — shipping address forms
## Roadmap
- [x] Mikoa yote 31 (regions.json) — imekamilika
- [ ] Wilaya zote 184+ (districts.json) — inaendelea, angalia CONTRIBUTING.md
- [ ] Kata zote ~3,438 (wards.json) — mpango wa baadaye
- [ ] REST API endpoint (hiari)
- [ ] JS/npm packa …