inisiatif / common
Common package using in Inisiatif Zakat Indonesia
Installs: 7 736
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/inisiatif/common
Requires
- php: ^8.1
- ext-json: *
- ramsey/uuid: ^4.0
Requires (Dev)
- laravel/pint: ^1.0
- laravel/telescope: ^4.6
- phpunit/phpunit: ^9.0
- vimeo/psalm: ^5.13
This package is auto-updated.
Last update: 2026-02-02 07:40:04 UTC
README
Common package yang digunakan di Inisiatif Zakat Indonesia.
Requirements
- PHP 8.2, 8.3, atau 8.4
- Laravel 10.x, 11.x, atau 12.x
Installation
composer require inisiatif/common
Configuration
Package ini akan otomatis register service provider melalui Laravel package discovery.
Publish Configuration (Optional)
php artisan vendor:publish --provider="Inisiatif\Package\Common\Providers\CommonServiceProvider"
Environment Variables
| Variable | Default | Description |
|---|---|---|
COMMON_BRANCH_TABLE_NAME |
branches |
Nama tabel untuk model Branch |
Features
Models
Branch
Model untuk menyimpan data cabang/branch.
use Inisiatif\Package\Common\Models\Branch; $branch = Branch::find($id);
Concerns (Traits)
UuidPrimaryKey
Trait untuk menggunakan UUID sebagai primary key.
use Inisiatif\Package\Common\Concerns\UuidPrimaryKey; class MyModel extends Model { use UuidPrimaryKey; }
IntegerPrimaryKey
Trait untuk model dengan integer primary key.
HasBranch
Trait untuk model yang memiliki relasi ke Branch.
use Inisiatif\Package\Common\Concerns\HasBranch; class MyModel extends Model { use HasBranch; }
TaggableCacheAware
Trait untuk repository yang membutuhkan cache dengan tagging.
EloquentAwareRepository
Trait untuk repository pattern dengan Eloquent.
Contracts (Interfaces)
| 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 |
Abstract Classes
AbstractRepository
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; }
Exceptions
| 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 |
Migrations
Package ini menyediakan migration untuk tabel branches. Untuk menonaktifkan migration:
use Inisiatif\Package\Common\Common; // Di AppServiceProvider boot method Common::ignoreMigrations();
Development
Running Tests
composer test
Static Analysis
composer analyse
Code Formatting
composer format
License
Proprietary - Inisiatif Zakat Indonesia