Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Common Laravel Package

inisiatif/common

Shared Laravel utilities for Inisiatif Zakat Indonesia: a Branch model, UUID and integer primary key traits, branch relations, Eloquent repository and tagged-cache abstractions, contracts, and common exceptions for consistent apps.

View on GitHub
Deep Wiki
Context7

Inisiatif Common Package

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

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin