PHPackages                             madkhix/tr-address-ptt - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. madkhix/tr-address-ptt

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

madkhix/tr-address-ptt
======================

A Laravel package for Turkey's provinces, districts, neighborhoods, and postal codes.

13PHP

Since Jul 1Pushed 1y agoCompare

[ Source](https://github.com/Madkhix/tr-address-ptt)[ Packagist](https://packagist.org/packages/madkhix/tr-address-ptt)[ RSS](/packages/madkhix-tr-address-ptt/feed)WikiDiscussions main Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

tr-address-ptt
==============

[](#tr-address-ptt)

A Laravel package for Turkey's provinces, districts, subdistricts (quarters), neighborhoods, and postal codes. Easily import, query, and keep up-to-date address data from PTT's official source.

Installation
------------

[](#installation)

```
composer require madkhix/tr-address-ptt
```

Publishing Migrations, Seeders, and Config
------------------------------------------

[](#publishing-migrations-seeders-and-config)

```
php artisan vendor:publish --provider="TrAddressPtt\TrAddressServiceProvider" --tag="migrations"
php artisan migrate
php artisan vendor:publish --provider="TrAddressPtt\TrAddressServiceProvider" --tag="seeders"
php artisan vendor:publish --provider="TrAddressPtt\TrAddressServiceProvider" --tag="traddressptt-config"
```

> After running the Python scraper, copy the generated `tr-address-ptt-data.json` file to your Laravel project root (where the `artisan` file is located). You can also use the following artisan command to copy it automatically:
>
> ```
> php artisan traddress-ptt:publish-json
> ```

> You can change the JSON data file path in `config/traddressptt.php` if needed.

Migration Structure
-------------------

[](#migration-structure)

Each table has its own migration file:

- `cities`
- `districts`
- `subdistricts`
- `neighborhoods`
- `postcodes`

You can run all migrations at once:

```
php artisan migrate
```

Or migrate a specific table (advanced usage):

```
php artisan migrate --path=src/database/migrations/2024_01_03_000000_create_subdistricts_table.php
```

Seeder Structure
----------------

[](#seeder-structure)

Each table has its own seeder:

- `CitySeeder`
- `DistrictSeeder`
- `SubdistrictSeeder` (**independent, only seeds subdistricts**)
- `NeighborhoodSeeder` (**does not create subdistricts, only links to them**)
- `PostcodeSeeder`
- `TrAddressSeeder` (runs all in order)

Seed all data:

```
php artisan db:seed --class=Database\Seeders\TrAddressPttSeeder
```

Or seed a specific table:

```
php artisan db:seed --class=Database\Seeders\SubdistrictSeeder
php artisan db:seed --class=Database\Seeders\NeighborhoodSeeder
```

> **Note:**
>
> - Run `SubdistrictSeeder` before `NeighborhoodSeeder` if you seed them separately.
> - `NeighborhoodSeeder` will not create subdistricts, only link to existing ones.

Usage
-----

[](#usage)

```
use TrAddressPtt\Models\City;
use TrAddressPtt\Models\Subdistrict;
use TrAddressPtt\Models\Neighborhood;

$cities = City::all();
$subdistricts = Subdistrict::where('district_id', $districtId)->get();
$neighborhoods = Neighborhood::where('subdistrict_id', $subdistrictId)->get();
```

Data Structure
--------------

[](#data-structure)

The package uses a normalized structure:

- `subdistricts` table for quarters (semt), linked to districts
- `neighborhoods` table links to subdistricts via `subdistrict_id`

If your JSON data contains entries like:

```
{
  "name": "BEYAZEVLER MAH / MAHFESIĞMAZ / 01170"
}
```

- `name` → "BEYAZEVLER MAH"
- `subdistrict` → "MAHFESIĞMAZ" (stored in subdistricts table)
- `postcode` → "01170"

The seeders will automatically parse and store these fields in the correct tables and columns.

Updating Address Data (Fetching from PTT)
-----------------------------------------

[](#updating-address-data-fetching-from-ptt)

This package does **not** include the Python data fetcher script by default. To update the address data from the official PTT source, use the separate Python script available at:

**Usage:**

1. Clone or download the script from the repository above.
2. Run the script in your terminal: ```
    python fetch_tr_address_data.py
    ```
3. The script will generate a `tr-address-ptt-data.json` file.
4. Copy this file to your Laravel project root (where `artisan` is located).
5. Import the data using the package's artisan command: ```
    php artisan traddress-ptt:import-ptt tr-address-ptt-data.json
    ```

License
-------

[](#license)

MIT

###  Health Score

16

—

LowBetter than 4% of packages

Maintenance37

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity15

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/73113b9c3bd09353a1360ac6a167a50413186b631f14f1d079c0d43f880f75dc?d=identicon)[Madkhix](/maintainers/Madkhix)

---

Top Contributors

[![Madkhix](https://avatars.githubusercontent.com/u/62099980?v=4)](https://github.com/Madkhix "Madkhix (4 commits)")

---

Tags

citycodedistrictpostal-codestateturkey

### Embed Badge

![Health badge](/badges/madkhix-tr-address-ptt/health.svg)

```
[![Health](https://phpackages.com/badges/madkhix-tr-address-ptt/health.svg)](https://phpackages.com/packages/madkhix-tr-address-ptt)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
