PHP code example of prismaticoder / maker-checker-laravel
1. Go to this page and download the library: Download prismaticoder/maker-checker-laravel library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
prismaticoder / maker-checker-laravel example snippets
use Prismaticoder\MakerChecker\Models\MakerCheckerRequest
MakerCheckerRequest::all(); // Get all requests
MakerCheckerRequest::status('pending')->get(); // Get all pending requests
$request = MakerCheckerRequest::first();
$request->status; // the status of the request: pending | approved | rejected | failed | expired
$request->type; // the request type: create | update | delete | execute
$request->description; // the description provided for the request
$request->payload; // the payload passed when the request was initiated
$request->maker; // the request maker
$request->checker; // the request checker
$request->subject; // the subject on which the request is to be executed on (null for execute requests)
$request->made_at; // timestamp of when the request was made.
$request->checked_at; // timestamp of when the request was checked.
$request->remarks; // remarks added by the checker when checking.
$request->exception; // exception encountered in the event that the request failed during approval.
use App\Models\User;
use Primaticode\MakerChecker\Facades\MakerChecker;
//CREATE A USER
MakerChecker::request()
->toCreate(User::class, ['name' => 'Tobi David', 'email' => '[email protected]'])
->madeBy(auth()->user())
->save();
//UPDATE A USER
MakerChecker::request()
->toUpdate($user, ['name' => 'Tommy Ify'])
->madeBy(auth()->user())
->save()
//DELETE A USER
MakerChecker::request()
->toDelete($user)
->madeBy(auth()->user())
->save()
use Illuminate\Database\Eloquent\Model;
use Prismaticoder\MakerChecker\Traits\MakesRequests;
class User extends Model
{
use MakesRequests;
...
}
use App\Models\User;
//CREATE A USER
auth()->user()
->requestToCreate(User::class, ['name' => 'Tobi David', 'email' => '[email protected]'])
->save();
//UPDATE A USER
auth()->user()
->requestToUpdate($user, ['name' => 'Tommy Ify'])
->save()
//DELETE A USER
auth()->user()
->requestToDelete($user)
->save()
auth()->user()
->requestToCreate(User::class, ['name' => 'Tobi David', 'email' => '[email protected]'])
->description('Invitation of Tobi David as a collaborator.')
->save();
use Illuminate\Support\Facades\Http;
use Prismaticoder\MakerChecker\Contracts\ExecutableRequest;
use Prismaticoder\MakerChecker\Contracts\MakerCheckerRequestInterface;
class InitiatePayment extends ExecutableRequest
{
public function execute(MakerCheckerRequestInterface $request)
{
Http::post('payment-service.com/pay', $request->payload);
}
}
use Primaticode\MakerChecker\Facades\MakerChecker;
MakerChecker::approve($request, auth()->user(), $reason);
use Primaticode\MakerChecker\Facades\MakerChecker;
MakerChecker::approve($request, auth()->user()), $reason;
use Illuminate\Database\Eloquent\Model;
use Prismaticoder\MakerChecker\Traits\ChecksRequests;
class Admin extends Model
{
use ChecksRequests;
...
}
use Primaticode\MakerChecker\Facades\MakerChecker;
//Approve a request
auth()->user()->approve($request, $reason);
//Reject a request
auth()->user()->reject($request, $reason);
use Primaticode\MakerChecker\Events\RequestApproved;
use Primaticode\MakerChecker\Events\RequestFailed;
use Primaticode\MakerChecker\Events\RequestInitiated;
use Primaticode\MakerChecker\Events\RequestRejected;
Event::listen(RequestApproved::class, function (RequestApproved $event) {
$request = $event->request; // Get the request instance
// Perform additional actions based on the approved request
});
Event::listen(RequestRejected::class, function (RequestRejected $event) {
$request = $event->request; // Get the request instance
// Perform additional actions based on the rejected request
});
Event::listen(RequestInitiated::class, function (RequestInitiated $event) {
$request = $event->request; // Get the request instance
// Perform additional actions based on the initiated request
});
Event::listen(RequestFailed::class, function (RequestFailed $event) {
$request = $event->request; // Get the request instance
$exception = $event->exception; //Get the exception encountered
// Perform additional actions based on the failed request
});
use App\Models\User;
use Primaticode\MakerChecker\Models\MakerCheckerRequest;
use Throwable
auth()->user()
->requestToCreate(User::class, ['name' => 'Tobi David'])
->beforeApproval(function (MakerCheckerRequest $request) {
// Perform actions before the request is approved (if this action fails, the request is marked as failed)
})
->beforeRejection(function (MakerCheckerRequest $request) {
// Perform actions before the request is rejected (if this action fails, the request is marked as failed)
})
->afterApproval(function (MakerCheckerRequest $request) {
// Perform actions after the request is approved
})
->afterRejection(function (MakerCheckerRequest $request) {
// Perform actions after the request is rejected
})
->onFailure(function (MakerCheckerRequest $request, Throwable $exception) {
// Perform action when the request fails
})
->save();