Common package yang digunakan di Inisiatif Zakat Indonesia.
- PHP 8.2, 8.3, atau 8.4
- Laravel 10.x, 11.x, atau 12.x
composer require inisiatif/commonPackage 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 testcomposer analysecomposer formatProprietary - Inisiatif Zakat Indonesia