PHPackages                             dapodik-org/dapodik-laravel-eloquent - 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. dapodik-org/dapodik-laravel-eloquent

ActiveLibrary

dapodik-org/dapodik-laravel-eloquent
====================================

Dapodik Eloquent for Laravel Framework

v2.1.8(2w ago)048↓75%MITPHPPHP &gt;=8.1

Since Jul 13Pushed 2w agoCompare

[ Source](https://github.com/dapodik-org/dapodik-laravel-eloquent)[ Packagist](https://packagist.org/packages/dapodik-org/dapodik-laravel-eloquent)[ Docs](https://github.com/dapodik-org/dapodik-laravel-eloquent)[ RSS](/packages/dapodik-org-dapodik-laravel-eloquent/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (10)Dependencies (10)Versions (21)Used By (0)

> **BACA SAJA** — File ini dikelola dari repositori utama [`dapodik-org/dapodik-laravel`](https://github.com/dapodik-org/dapodik-laravel). Jangan edit langsung di sini.

Dapodik Eloquent Laravel
========================

[](#dapodik-eloquent-laravel)

[![Latest Version on Packagist](https://camo.githubusercontent.com/eeda794db275bb059e8a2d1e4338939157c32589cf552f283c629df034145cc9/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6461706f64696b2d6f72672f6461706f64696b2d6c61726176656c2d656c6f7175656e742e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/dapodik-org/dapodik-laravel-eloquent)[![Laravel](https://camo.githubusercontent.com/ff89a86d424f2ad0ed1533e9e966e73de60f36d6c9b3b409bc52c0ee86ea5ae2/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d3925323025453225383025393325323031332d7265643f7374796c653d666c61742d737175617265266c6f676f3d6c61726176656c)](https://laravel.com)[![GitHub Tests Action Status](https://github.com/dapodik-org/dapodik-laravel/actions/workflows/tests.yml/badge.svg)](https://github.com/dapodik-org/dapodik-laravel/actions/workflows/tests.yml)[![GitHub Code Style Action Status](https://github.com/dapodik-org/dapodik-laravel/actions/workflows/fix-php-code-style-issues.yml/badge.svg)](https://github.com/dapodik-org/dapodik-laravel/actions/workflows/fix-php-code-style-issues.yml)[![Total Downloads](https://camo.githubusercontent.com/f7b4b4b812458d45f3163acec19431b235db547e6b9963b6315302c4da4a5746/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6461706f64696b2d6f72672f6461706f64696b2d6c61726176656c2d656c6f7175656e742e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/dapodik-org/dapodik-laravel-eloquent)

**Model Eloquent Dapodik untuk Laravel.**
Paket ini menyediakan model, migrasi, dan command untuk menerbitkan model Dapodik langsung ke aplikasi Laravel Anda.

Persyaratan
-----------

[](#persyaratan)

- PHP &gt;=8.1
- Laravel 9 – 13
- [Aplikasi Dapodik](https://dapo.dikdasmen.go.id/unduhan) sudah terinstal dan database sudah tersedia

Instalasi
---------

[](#instalasi)

```
composer require dapodik-org/dapodik-laravel-eloquent
```

### Dukungan database

[](#dukungan-database)

DriverStatusMySQL✅ DidukungMariaDB✅ DidukungPostgreSQL✅ DidukungSQL Server✅ DidukungSQLite✅ DidukungPublikasi migrasi
-----------------

[](#publikasi-migrasi)

```
php artisan vendor:publish --tag="dapodik-eloquent-migrations"
php artisan migrate
```

> **Catatan:** Secara default, migrasi **tidak akan berjalan otomatis** jika belum di-publish. Setel `auto_load_migrations` ke `true` pada config jika Anda ingin migrasi auto-load dari package.

### Publikasi migration via command

[](#publikasi-migration-via-command)

Publikasikan seluruh migration ke direktori `database/migrations/`:

```
php artisan dapodik:eloquent-publish-migration
```

Untuk satu migration saja, gunakan key migration seperti `agama`:

```
php artisan dapodik:eloquent-publish-migration agama
```

Gunakan `--force` untuk menimpa file yang sudah ada:

```
php artisan dapodik:eloquent-publish-migration --force
```

Publikasi konfigurasi
---------------------

[](#publikasi-konfigurasi)

```
php artisan vendor:publish --tag="dapodik-eloquent-config"
```

Publikasi model
---------------

[](#publikasi-model)

Publikasikan seluruh model ke aplikasi Anda:

```
php artisan dapodik:eloquent-publish
```

Untuk satu model saja, gunakan key model seperti `agama`:

```
php artisan dapodik:eloquent-publish agama
```

Perintah ini menyalin folder `Models` dari package ke `app/Models/Dapodik` dan mengubah namespace menjadi `App\Models\Dapodik\...`.

Pembuatan database
------------------

[](#pembuatan-database)

Buat database Dapodik jika belum ada:

```
php artisan dapodik:eloquent-db-create
```

Perintah ini membaca konfigurasi koneksi dari `DAPODIK_ELOQUENT_CONNECTION` (atau koneksi default) dan membuat database bila belum tersedia.

DriverPerilakuMySQL / MariaDB`CREATE DATABASE IF NOT EXISTS`PostgreSQLCek `pg_database` lalu `CREATE DATABASE`SQLiteTouch file databaseSQL ServerCek `sys.databases` lalu `CREATE DATABASE`Gunakan opsi `--connection` untuk koneksi tertentu:

```
php artisan dapodik:eloquent-db-create --connection=dapodik
```

Gunakan opsi `--database` untuk menentukan nama database:

```
php artisan dapodik:eloquent-db-create --database=dapodik_ref
```

### Koneksi terpisah (split connection)

[](#koneksi-terpisah-split-connection)

Saat `split_connection` diaktifkan, perintah ini otomatis membuat database/schema untuk setiap subdirektori model:

SubdirektoriMySQL / MariaDB / SQL ServerPostgreSQLSQLite`ref``{database}_ref`Schema `ref``{base}_ref.sqlite``public``{database}_public`Schema `public``{base}_public.sqlite``man_akses``{database}_man_akses`Schema `man_akses``{base}_man_akses.sqlite``pustaka``{database}_pustaka`Schema `pustaka``{base}_pustaka.sqlite``nilai``{database}_nilai`Schema `nilai``{base}_nilai.sqlite``audit``{database}_audit`Schema `audit``{base}_audit.sqlite``blob``{database}_blob`Schema `blob``{base}_blob.sqlite`Konfigurasi
-----------

[](#konfigurasi)

```
return [
    /*
     * Prefix tabel.
     */
    'prefix' => env('DAPODIK_ELOQUENT_PREFIX', 'dapodik'),

    /*
     * Suffix tabel.
     */
    'suffix' => env('DAPODIK_ELOQUENT_SUFFIX', null),

    /*
     * Nama koneksi database Laravel (dari config/database.php).
     * Biarkan null untuk menggunakan koneksi default.
     */
    'connection' => env('DAPODIK_ELOQUENT_CONNECTION', null),

    /*
     * Aktifkan split connection per subdirektori model.
     * Jika true, setiap subdirektori (ref, public, man_akses, dll.)
     * akan menggunakan koneksi terpisah: {connection}_{folder}.
     */
    'split_connection' => env('DAPODIK_ELOQUENT_SPLIT_CONNECTION', false),

    /*
     * Lewati drop tabel saat migrate:fresh.
     * Jika true, tabel dapodik tidak akan dihapus
     * saat php artisan migrate:fresh.
     */
    'skip_fresh' => env('DAPODIK_ELOQUENT_SKIP_FRESH', false),

    /*
     * Exclude tabel dari migration.
     * Lihat penjelasan di bawah untuk detailnya.
     */
    'exclude_tables' => [],

    /*
     * Muat migrasi otomatis dari direktori package jika belum di-publish.
     * Set ke true agar migrasi berjalan otomatis tanpa perlu publish.
     * Default: false — migrasi hanya berjalan setelah di-publish.
     */
    'auto_load_migrations' => env('DAPODIK_ELOQUENT_AUTO_LOAD_MIGRATIONS', false),
];
```

### Pengecualian tabel

[](#pengecualian-tabel)

Gunakan `exclude_tables` untuk mencegah tabel tertentu dibuat saat migrasi awal. File migration `create` yang sesuai akan **dihapus permanen** dari filesystem sebelum migrasi dijalankan.

> **Catatan:** Hanya berlaku untuk migration di folder `database/migrations/dapodik/`.

Pencocokan dilakukan terhadap:

- Nama file migration (tanpa timestamp): `create_dapodik_sync_log_table`
- Key tabel (snake\_case) dari mapping internal: `sync_log`
- FQCN model class: `\Dapodik\Laravel\Eloquent\Models\SyncLog::class`

Regex diapit `/` dan dicocokkan terhadap ketiga target di atas.

```
'exclude_tables' => [
    'create_dapodik_sync_log_table',            // nama file migration
    'sync_primer',                              // key tabel
    \Dapodik\Laravel\Eloquent\Models\SyncLog::class,
    '/^create_dapodik_sync_.+$/',               // regex nama file
    '/^create_dapodik_vld_.+$/',                // regex nama file
    '/^log_/',                                  // regex key tabel diawali log_
    '/_log_/',                                  // regex key tabel mengandung _log_
],
```

> Jika tabel sudah pernah di-exclude lalu ingin dikembalikan:
>
> ```
> php artisan vendor:publish --tag=dapodik-eloquent-migrations --force
> ```

### Skip fresh

[](#skip-fresh)

Saat `skip_fresh` diaktifkan (`true`), tabel dapodik **tidak akan dihapus** saat `php artisan migrate:fresh`. Berguna menjaga data Dapodik tetap aman sementara tabel lain di-reset.

```
'skip_fresh' => env('DAPODIK_ELOQUENT_SKIP_FRESH', false),
```

Atur lewat `.env`:

```
DAPODIK_ELOQUENT_SKIP_FRESH=true

```

### Koneksi terpisah (split connection)

[](#koneksi-terpisah-split-connection-1)

Saat `split_connection` diaktifkan, setiap subdirektori model menggunakan koneksi database terpisah:

SubdirektoriNama koneksi (jika connection = `dapodik`)`ref``dapodik_ref``public``dapodik_public``man_akses``dapodik_man_akses``pustaka``dapodik_pustaka``nilai``dapodik_nilai``audit``dapodik_audit``blob``dapodik_blob`Suffix database (MySQL, MariaDB, SQL Server):

```
dapodik_ref, dapodik_public, ...

```

Search path (PostgreSQL):

```
ref, public, man_akses, ...

```

File database terpisah (SQLite):

```
database/dapodik_ref.sqlite, database/dapodik_public.sqlite, ...

```

Pengujian
---------

[](#pengujian)

```
composer test:eloquent
```

Kontribusi
----------

[](#kontribusi)

Lihat [CONTRIBUTING.md](../../CONTRIBUTING.md) untuk detail.

Keamanan
--------

[](#keamanan)

Laporkan celah keamanan melalui [kebijakan keamanan](../../security/policy).

Kredit
------

[](#kredit)

- [Dapodik Org](https://github.com/dapodik-org)
- [Ade Reksi Susanto](https://github.com/adereksisusanto)
- [Semua kontributor](../../contributors)

Lisensi
-------

[](#lisensi)

MIT License. Lihat [LICENSE](LICENSE.md) untuk detail.

Peringatan
----------

[](#peringatan)

Dengan menggunakan library ini, data individu setiap entitas Dapodik akan dikirim ke pihak ketiga sesuai konfigurasi yang Anda atur. Penyalahgunaan data diancam dengan UU Perlindungan Data Pribadi No 27 Tahun 2022 Pasal 67.

Pastikan Anda memahami dan menyetujui risiko sebelum menggunakan library ini.

###  Health Score

44

—

FairBetter than 90% of packages

Maintenance96

Actively maintained with recent releases

Popularity11

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity51

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 96.4% 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.

###  Release Activity

Cadence

Every ~1 days

Total

20

Last Release

19d ago

Major Versions

v1.0.4 → v2.1.42026-07-22

v1.0.5 → v2.1.52026-07-22

v1.0.6 → v2.1.62026-08-02

v1.0.7 → v2.1.72026-08-02

v1.0.8 → v2.1.82026-08-12

PHP version history (2 changes)v1.0.0PHP &gt;=7.2.5

v2.0.0PHP &gt;=8.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/4c95f89ce76929c588868c4d5de17d5625c7bb72f7b97d793ce488a3829f5452?d=identicon)[dapodik-org](/maintainers/dapodik-org)

---

Top Contributors

[![actions-user](https://avatars.githubusercontent.com/u/65916846?v=4)](https://github.com/actions-user "actions-user (27 commits)")[![adereksisusanto](https://avatars.githubusercontent.com/u/34746706?v=4)](https://github.com/adereksisusanto "adereksisusanto (1 commits)")

---

Tags

laraveldapodikdapodik-orgdapodik-laraveldapodik-laravel-eloquent

### Embed Badge

![Health badge](/badges/dapodik-org-dapodik-laravel-eloquent/health.svg)

```
[![Health](https://phpackages.com/badges/dapodik-org-dapodik-laravel-eloquent/health.svg)](https://phpackages.com/packages/dapodik-org-dapodik-laravel-eloquent)
```

###  Alternatives

[laravel/ai

The official AI SDK for Laravel.

1.1k6.4M361](/packages/laravel-ai)[illuminate/queue

The Illuminate Queue package.

20433.5M1.9k](/packages/illuminate-queue)[psalm/plugin-laravel

Psalm plugin for Laravel

3365.5M359](/packages/psalm-plugin-laravel)[spatie/laravel-health

Monitor the health of a Laravel application

89313.5M196](/packages/spatie-laravel-health)[pressbooks/pressbooks

Pressbooks is an open source book publishing tool built on a WordPress multisite platform. Pressbooks outputs books in multiple formats, including PDF, EPUB, web, and a variety of XML flavours, using a theming/templating system, driven by CSS.

45945.2k1](/packages/pressbooks-pressbooks)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

255.2k](/packages/aedart-athenaeum)

PHPackages © 2026

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