inisiatif/common
Paket common untuk Inisiatif Zakat Indonesia (Laravel 10–12, PHP 8.2+): menyediakan model Branch, traits (UUID/int primary key, HasBranch), kontrak & abstract repository pattern, serta dukungan cache tagging untuk kebutuhan lintas aplikasi.
Common package yang digunakan di Inisiatif Zakat Indonesia.
composer require inisiatif/common
Package ini akan otomatis register service provider melalui Laravel package discovery.
php artisan vendor:publish --provider="Inisiatif\Package\Common\Providers\CommonServiceProvider"
| Variable | Default | Description |
|---|---|---|
COMMON_BRANCH_TABLE_NAME |
branches |
Nama tabel untuk model Branch |
Model untuk menyimpan data cabang/branch.
use Inisiatif\Package\Common\Models\Branch;
$branch = Branch::find($id);
Trait untuk menggunakan UUID sebagai primary key.
use Inisiatif\Package\Common\Concerns\UuidPrimaryKey;
class MyModel extends Model
{
use UuidPrimaryKey;
}
Trait untuk model dengan integer primary key.
Trait untuk model yang memiliki relasi ke Branch.
use Inisiatif\Package\Common\Concerns\HasBranch;
class MyModel extends Model
{
use HasBranch;
}
Trait untuk repository yang membutuhkan cache dengan tagging.
Trait untuk repository pattern dengan Eloquent.
| Interface | Description |
|---|---|
ResourceInterface |
Marker interface untuk model/resource |
ModelRepositoryInterface |
Interface untuk operasi repository model |
EloquentAwareRepositoryInterface |
Interface untuk repository dengan Eloquent |
TaggableCacheAwareInterface |
Interface untuk cache-aware repositories |
HasBranchInterface |
Interface untuk model yang memiliki branch |
Notable |
Interface untuk model yang dapat memiliki catatan |
Base class untuk implementasi repository pattern.
use Inisiatif\Package\Common\Abstracts\AbstractRepository;
use Inisiatif\Package\Common\Contracts\ResourceInterface;
class UserRepository extends AbstractRepository
{
protected $model = User::class;
}
// Model harus implement ResourceInterface
class User extends Model implements ResourceInterface
{
use UuidPrimaryKey;
}
| Exception | Description |
|---|---|
DomainException |
Base exception untuk domain errors |
DomainActionException |
Exception untuk action yang tidak valid |
DomainModelExistException |
Exception ketika model sudah ada |
DomainModelNotExistException |
Exception ketika model tidak ditemukan |
Package ini menyediakan migration untuk tabel branches. Untuk menonaktifkan migration:
use Inisiatif\Package\Common\Common;
// Di AppServiceProvider boot method
Common::ignoreMigrations();
composer test
composer analyse
composer format
Proprietary - Inisiatif Zakat Indonesia
How can I help you explore Laravel packages today?