1. Go to this page and download the library: Download cocoon-projet/pipe 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/ */
cocoon-projet / pipe example snippets
use Cocoon\Pipe\Pipe;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\MiddlewareInterface;
// Création du pipeline
$pipe = new Pipe();
// Ajout de middlewares
$pipe->add(new SecurityMiddleware())
->add(new AuthMiddleware())
->add(new LoggerMiddleware());
// Vous pouvez aussi ajouter des middlewares via leur nom de classe
$pipe->add(App\Middlewares\SecurityMiddleware::class)
->add(App\Middlewares\AuthMiddleware::class)
->add(App\Middlewares\LoggerMiddleware::class);
// Traitement d'une requête
$response = $pipe->handle($request);
class SimpleMiddleware implements MiddlewareInterface
{
public function process(
ServerRequestInterface $request,
RequestHandlerInterface $handler
): ResponseInterface {
// Traitement avant
$response = $handler->handle($request);
// Traitement après
return $response;
}
}
use Cocoon\Pipe\Attribute\Priority;
#[Priority(100)]
class HighPriorityMiddleware implements MiddlewareInterface
{
public function process(
ServerRequestInterface $request,
RequestHandlerInterface $handler
): ResponseInterface {
return $handler->handle($request);
}
}
use Cocoon\Pipe\Attribute\Route;
#[Route('api/*', methods: ['GET', 'POST'])]
class ApiMiddleware implements MiddlewareInterface
{
public function process(
ServerRequestInterface $request,
RequestHandlerInterface $handler
): ResponseInterface {
return $handler->handle($request);
}
}
use Cocoon\Pipe\Conditional\ConditionalMiddlewareInterface;
class AuthMiddleware implements MiddlewareInterface, ConditionalMiddlewareInterface
{
public function process(
ServerRequestInterface $request,
RequestHandlerInterface $handler
): ResponseInterface {
return $handler->handle($request);
}
public function shouldExecute(ServerRequestInterface $request): bool
{
return !$request->hasHeader('Authorization');
}
}
#[Route('api/*')] // Correspond à /api/users, /api/posts, etc.
#[Route('public/**')] // Correspond à tous les sous-chemins de public/
#[Route('/^\/admin\/.*$/')] // Correspond à tous les chemins commençant par /admin/
#[Route('api/*', methods: ['GET', 'POST'])]
use Tracy\Debugger;
// Configuration de base
Debugger::enable(Debugger::DEVELOPMENT);
Debugger::$logDirectory = __DIR__ . '/logs';
// Configuration recommandée
$logDir = __DIR__ . '/logs';
if (!is_dir($logDir)) {
mkdir($logDir, 0777, true);
}
// Nettoyage automatique des logs
$now = time();
$maxAge = 7 * 24 * 60 * 60; // 7 jours
foreach (glob($logDir . '/*') as $file) {
if (is_file($file) && $now - filemtime($file) >= $maxAge) {
unlink($file);
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.