NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky
Credits for Laravel

Konfigurácia

Balík má rozumné predvolené hodnoty a funguje bez akejkoľvek konfigurácie. Publikovaný config/credits.php v plnom znení:

<?php

declare(strict_types=1);

use RoundlyConsulting\Credits\Models\Credit;

return [

    'model' => Credit::class,

    'key_type' => env('CREDITS_KEY_TYPE', 'bigint'),

    'primary_key_type' => env('CREDITS_PRIMARY_KEY_TYPE', 'bigint'),

    'allow_overdraft' => env('CREDITS_ALLOW_OVERDRAFT', false),

    'minimum_balance' => 0,

    'default_bucket' => 'default',

    'scale' => 0,

    'rounding' => env('CREDITS_ROUNDING', 'half_away_from_zero'),

    'currencies' => [
        // 'store_credit' => 'EUR',
        // 'points' => 'PTS',
    ],

    'modifiable' => [
        //
    ],

];

Všetky kľúče

KľúčPredvolenéEnvÚčel
modelCredit::class—Eloquent model pre záznamy knihy pohybov. Nastavte vlastnú podtriedu Credit, ak chcete upraviť správanie alebo tabuľku; trieda, ktorá nie je Credit ani jeho podtrieda, vyhodí InvalidConfigurationException.
key_typebigintCREDITS_KEY_TYPETyp kľúča vašich modelov s kreditmi (morph stĺpec creditable_id): bigint, uuid alebo ulid; iná hodnota vyhodí InvalidConfigurationException. Zafixuje sa pri spustení migrácie.
primary_key_typebigintCREDITS_PRIMARY_KEY_TYPEVlastné id tabuľky credits: bigint, uuid alebo ulid; iná hodnota vyhodí InvalidConfigurationException. Zafixuje sa pri spustení migrácie.
allow_overdraftfalseCREDITS_ALLOW_OVERDRAFTPri false odpis, ktorý by skupinu dostal pod minimum_balance, vyhodí InsufficientCreditsException. True globálne povolí odpisy pod minimum_balance. Hodnota z env sa číta ako boolean: 1, true, on a yes ho zapnú; 0, false, off a no ho nechajú vypnuté; čokoľvek iné vyhodí InvalidConfigurationException s názvom kľúča.
minimum_balance0—Spodná hranica, ktorá platí, keď prečerpanie nie je povolené. Celé číslo (int) alebo kanonický celočíselný reťazec („50“, „-100“); prázdna hodnota ('') sa považuje za nenastavenú, takže platí 0; čokoľvek iné („fifty“, „50.5“) vyhodí InvalidConfigurationException namiesto toho, aby sa z toho stala 0.
default_bucket'default'—Skupina pre čítanie aj zápis, keď ju volanie neuvedie. Zostatok bez skupiny vráti len túto skupinu — nikdy nesčítava naprieč skupinami. Prázdna hodnota sa považuje za nenastavenú, takže platí 'default'; hodnota, ktorá nie je reťazec, vyhodí InvalidConfigurationException.
scale0—Počet desatinných miest, ktoré uložené celé čísla reprezentujú. Čítajú ho len pomocníky zobrazenia; skupina v mene ho ignoruje. Celé číslo od 0 do 36 (alebo jeho kanonický reťazec); čokoľvek iné vyhodí InvalidConfigurationException.
roundinghalf_away_from_zeroCREDITS_ROUNDINGPredvolený režim zaokrúhľovania pri zobrazení — prípad \RoundingMode v snake_case. Nenastavená hodnota (chýbajúca, null alebo prázdne CREDITS_ROUNDING=) znamená half_away_from_zero; neznáma hodnota vyhodí pri prvom použití InvalidMoneyConfiguration.
currencies[]—Názov skupiny → kód meny z money (ISO alebo vlastná). Vyhodnotí sa lenivo, pri prvom použití.
modifiable[]—Closures pre credits:modify. Každá dostane callback $modify, ktorým zmenu aplikuje na entitu Creditable. Hodnota, ktorá nie je pole, alebo položka, ktorú nemožno zavolať, vyhodí InvalidConfigurationException.

Prostredie (env)

Kľúče, ktoré sa líšia podľa nasadenia, sa dajú nastaviť cez env:

CREDITS_KEY_TYPE=bigint
CREDITS_PRIMARY_KEY_TYPE=bigint
CREDITS_ALLOW_OVERDRAFT=false
CREDITS_ROUNDING=half_away_from_zero

Čo rozhodnúť hneď na začiatku

  • key_type a primary_key_type sa čítajú pri spustení migrácie — zvoľte ich pred publikovaním a migráciou. Neskoršia zmena je dátová migrácia, nie zmena konfigurácie.
  • Nerozpoznaný typ kľúča vyhodí InvalidConfigurationException s názvom kľúča — nikdy sa nenahradí hodnotou bigint.
  • Prísne sa čítajú aj všetky ostatné nastavenia: nenastavený kľúč — chýbajúci, null alebo prázdny (KEY= v .env) — použije predvolenú hodnotu a prítomná hodnota zlého tvaru — fifty ako spodná hranica, pole ako skupina, reťazec namiesto zoznamu closures — vyhodí InvalidConfigurationException s názvom kľúča. Preklep sa nikdy neprevedie na 0 ani nenahradí predvolenou hodnotou.
  • credits.currencies sa vyhodnocuje lenivo pri každom použití, nikdy pri štarte, takže vlastná mena zaregistrovaná v boot() vášho providera bude prijatá.
  • credits.rounding musí pomenovať prípad \RoundingMode v snake_case; staré celočíselné PHP_ROUND_* sa odmietnu.
  • CREDITS_ALLOW_OVERDRAFT sa číta ako boolean — off, no aj false prečerpanie naozaj nechajú vypnuté a php artisan about ukáže presne to, čo ochrana uplatňuje.

Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

Ďalšie spôsoby podpory vrátane kryptomien

Odoslaním daru súhlasíte s našimi podmienkami prijímania darov.

Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.