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

Balík funguje aj bez publikovanej konfigurácie. Celý súbor config/requests.php:

// config/requests.php
return [
    'model' => RoundlyConsulting\Requests\Models\Request::class,

    // bigint, uuid or ulid — the key type of the polymorphic author column
    'key_type' => env('REQUESTS_KEY_TYPE', 'bigint'),

    'enforce_transitions' => false,
    'default_ttl' => null,
    'register_facade_alias' => true,
];

Všetky kľúče

KľúčPredvolenéÚčel
modelRequest::classModel, cez ktorý sa žiadosti vytvárajú a načítavajú. Nasmerujte ho na podtriedu, ak chcete rozšíriť správanie; trieda, ktorá nededí z balíkového Request, vyhodí InvalidConfigurationException.
key_typebigintTyp kľúča polymorfného stĺpca autora — bigint, uuid alebo ulid (env REQUESTS_KEY_TYPE). Číta sa pri spustení migrácie; iná hodnota vyhodí InvalidConfigurationException.
enforce_transitionsfalseVynúti graf životného cyklu: nepovolené prechody vyhodia InvalidStatusTransition. Riadi aj listener, ktorý premieta výsledok enginu do stavu. Fungujú env reťazce true/1/on/yes a false/0/off/no, prázdna hodnota sa považuje za nenastavenú (teda false); čokoľvek iné vyhodí InvalidConfigurationException.
default_ttlnullMinúty. Žiadosti bez explicitného termínu dostanú expires_at = now() + ttl. Nenastavená hodnota (null alebo prázdna) = bez automatickej expirácie; čokoľvek iné ako kladné celé číslo (najviac 52560000, sto rokov) vyhodí InvalidConfigurationException.
register_facade_aliastrueZaregistruje krátky alias triedy Requests. Automaticky sa vynechá, ak hostiteľská aplikácia tento názov už používa; plne kvalifikovaná fasáda funguje vždy. Prázdna hodnota sa považuje za nenastavenú (teda true); hodnota, ktorá nie je boolovským zápisom, vyhodí InvalidConfigurationException.

Prostredie (env)

Z env sa číta iba typ kľúča autora — nastavte ho pred spustením migrácie, keďže určuje stĺpec author_id:

REQUESTS_KEY_TYPE=uuid

Hodnoty z env() prichádzajú ako reťazce a balík ich podľa toho číta: '60' je TTL 60 minút a 'true'/'1'/'on'/'yes' (alebo 'false'/'0'/'off'/'no') prepínajú oba prepínače. Prázdna hodnota ('' či len medzery, samotný riadok KEY=) sa považuje za nenastavenú a platí predvolená. Akákoľvek iná hodnota prepínača vyhodí InvalidConfigurationException namiesto toho, aby sa potichu použila predvolená.

Vlastný model žiadosti

Rozšírte balíkový model o relácie, accessory či vlastné správanie a nasmerujte naň requests.model. Builder, relácie autora aj príkaz requests:expire používajú nakonfigurovanú triedu:

namespace App\Models;

use RoundlyConsulting\Requests\Models\Request;

class ExpenseClaim extends Request
{
    // Keep the package table — a subclass would otherwise look for "expense_claims".
    protected $table = 'requests';
}

// config/requests.php
'model' => App\Models\ExpenseClaim::class,

Nakonfigurovaná trieda musí byť RoundlyConsulting\Requests\Models\Request alebo jeho podtrieda — nič iné by nevedelo obslúžiť scopy, životný cyklus stavov ani schvaľovanie. Cudzí model — alebo neexistujúca trieda — vyhodí InvalidConfigurationException s názvom requests.model a nikdy sa potichu nenahradí balíkovým modelom.

Nastavenia schvaľovacieho enginu

Mechanika schvaľovania — pravidlá, viacstupňové schvaľovanie, delegovanie, expirácia a pomenované predvoľby workflowov — sa nastavuje v config/approvals.php, ktorý patrí balíku approvals-for-laravel. Publikujte ho tagom approvals-config, keď chcete definovať predvoľby workflowov.

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.