1. Go to this page and download the library: Download zaengle/pipeline 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/ */
zaengle / pipeline example snippets
use App\RegisterTraveler;
use App\Pipes\CreateUser;
use App\Pipes\HandleMailingList;
use Zaengle\Pipeline\Pipeline;
class FicticiousRegisterController {
public function __invoke()
{
$traveler = (new RegisterTraveler())->setRequest(request()->all());
$pipes = [
CreateUser::class,
HandleMailingList::class,
// any other items that need to happen during registration...
];
$response = app(Pipeline::class)->pipe($traveler, $pipes, $useTransactions = true);
if ($response->passed()) {
return response()->json('Welcome!');
} else {
return response()->json('Your registration failed with the following error: ' . $response->getMessage());
}
}
}
$traveler = (new RegisterTraveler())->setRequest(request()->all());
use Zaengle\Pipeline\Contracts\AbstractTraveler;
class RegisterTraveler extends AbstractTraveler {
}
use Zaengle\Pipeline\Contracts\AbstractTraveler;
class RegisterTraveler extends AbstractTraveler {
private $request;
private $user;
// custom methods
public function setRequest($request)
{
$this->request = $request;
return $this;
}
public function getRequest()
{
return $this->request;
}
public function setUser($user)
{
$this->user = $user;
return $this;
}
public function getUser()
{
return $this->user;
}
}
use App\User;
use Zaengle\Pipeline\Contracts\PipeInterface;
class CreateUser implements PipeInterface {
public function handle(RegisterTraveler|AbstractTraveler $traveler, \Closure $next): RegisterTraveler
{
$traveler->setUser(
User::create([
'email' => $traveler->getRequest()->email,
'password' => $traveler()->getRequest()->password,
])
);
return $next($traveler);
}
}
use App\MailingService;
use Zaengle\Pipeline\Contracts\PipeInterface;
class HandleMailingList implements PipeInterface
{
public function handle(RegisterTraveler|AbstractTraveler $traveler, \Closure $next): RegisterTraveler
{
if ($traveler->getRequest()->subscribe) {
MailingService::subscribe($traveler->getUser()->email);
$traveler->getUser()->update([
'subscriber' => true,
]);
}
return $next($traveler);
}
}
// use Zaengle\Pipeline\Pipeline;
$response = app(Pipeline::class)->pipe($traveler, $pipes, $useTransactions = true);
use TestCase;
use App\User;
use App\RegisterTraveler;
use App\Pipes\CreateUser;
class CreateUserTest extends TestCase {
/** @test */
public function it_creates_a_user()
{
$traveler = (new RegisterTraveler)->setRequest(['email' => 'test', 'password' => 'password']);
(new CreateUser)->handle($traveler, function () {});
$this->assertInstanceOf(User::class, $traveler->getUser());
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.