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

Výnimky a preklady

Všetky výnimky balíka dedia z RoundlyConsulting\Requests\Exceptions\RequestException (RuntimeException), takže celú hierarchiu zachytíte naraz:

use RoundlyConsulting\Requests\Exceptions\InvalidStatusTransition;
use RoundlyConsulting\Requests\Exceptions\RequestException;

try {
    Requests::approve($request, $alice);
} catch (InvalidStatusTransition $e) {
    $e->getMessage(); // 'Cannot transition a request from Rejected to Approved.'
} catch (RequestException $e) {
    // any other package exception
}
  • InvalidStatusTransition — vyhodí ju ochrana, keď je zapnuté enforce_transitions a prechod nie je povolený. Obsahuje $from a $to.
  • RequestAlreadyResolved — vyhodí sa bez ohľadu na enforce_transitions pri akcii, ktorú žiadosť nemôže prijať: akýkoľvek presun zo stavu Cancelled, čokoľvek okrem reopen() pri žiadosti Expired a approve() / reject() po uzavretí schvaľovacieho kola. Obsahuje $status.
  • InvalidApprover — schvaľovateľ, ktorý nie je Eloquent model (samotné id), alebo deklarovaný schvaľovateľ, ktorý už neexistuje, keď znovu otvorená žiadosť obnovuje svoje kolo.

Vlastné výnimky schvaľovacieho enginu prechádzajú bez zmeny — najmä UnauthorizedApprovalException pre aktéra, ktorý nie je deklarovaný schvaľovateľ, ClosedApprovalRequestException pre rozhodnutie priamo na žiadosti, ktorej kolo sa skončilo, a InvalidApprovalRequestException pre kolo, ktoré sa nedá otvoriť (neuložený schvaľovateľ, jednoduchý zoznam schvaľovateľov spolu so stages(), nedosiahnuteľné kvórum).

use RoundlyConsulting\Requests\Exceptions\InvalidApprover;
use RoundlyConsulting\Requests\Exceptions\RequestAlreadyResolved;

try {
    Requests::approve($cancelledRequest, $alice);
} catch (RequestAlreadyResolved $e) {
    $e->status;   // Status::Cancelled — a cancelled request is final
}

Requests::make()->requireApprovalsFrom([$alice->id]);   // throws InvalidApprover — a bare id names no model type

Preklady

Správy sú preložiteľné cez namespace requests::messages. Publikujte ich tagom requests-translations, ak ich chcete prepísať alebo pridať jazyky:

// lang/vendor/requests/en/messages.php
return [
    'invalid_status_transition' => 'Cannot transition a request from :from to :to.',
    'request_already_resolved' => 'The request is already resolved (:status) and cannot be changed.',
    'approver_not_a_model' => 'An approver must be an Eloquent model, :type given: a bare id names no model type, so it could not be enforced.',
    'approver_missing' => 'The approval round cannot be reopened: approver :type #:id no longer exists.',
];

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.