/var/www/www.cadi-tco.re/src/Framework/Database/PaginatedArray.php
class PaginatedArray implements AdapterInterface
{
/**
* @var Array
*/
private $array;
/**
*
* @param \PDO $pdo
* @param string $query Requête permettant de récupérer X résultats
* @param string $queryCount Requête permettant de récupérer le nombre de résultats
* @param string|null $entity
* @param array params
*
*/
public function __construct(Array $array)
{
$this->array = $array;
}
/**
* Returns the number of results.
*
* @return integer The number of results.
*/
public function getNbResults(): int
{
return count($this->array);
}
/**
* Returns an slice of the results.
*
* @param integer $offset The offset.
* @param integer $length The length.
*
* @return array|\Traversable The slice.
/var/www/www.cadi-tco.re/src/Shop/Action/CompatibleProductListingAction.php
* @var ProductTable
*/
private $productTable;
public function __construct(RendererInterface $renderer, ProductTable $productTable, Auth $auth)
{
$this->renderer = $renderer;
$this->productTable = $productTable;
$this->auth = $auth;
}
public function __invoke(ServerRequestInterface $request)
{
$page = $request->getAttribute('page') ? $request->getAttribute('page') : 1;
$productId = $request->getAttribute('id');
$product = $this->productTable->findBy('id', $productId);
$productList = $this->productTable->getCompatibleProducts($productId);
//Pagination sur un tableau
$paginator = new PaginatedArray($productList);
$products = (new Pagerfanta($paginator))->setMaxPerPage(20)
->setCurrentPage($page);
return $this->renderer->render('@shop/compatible', compact('product', 'products', 'page'));
}
}
/var/www/www.cadi-tco.re/src/Framework/Middleware/CombinedMiddleware.php
public function __construct(ContainerInterface $container, array $middlewares)
{
$this->container = $container;
$this->middlewares = $middlewares;
}
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
$this->handler = $handler;
return $this->handle($request);
}
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = $this->getMiddleware();
if (is_null($middleware)) {
return $this->handler->handle($request);
} elseif (is_callable($middleware)) {
$response = call_user_func_array($middleware, [$request, [$this, 'handle']]);
if (is_string($response)) {
return new Response(200, [], $response);
}
return $response;
} elseif ($middleware instanceof \Psr\Http\Server\MiddlewareInterface) {
return $middleware->process($request, $this);
}
}
/**
*
* @return callable|null
*/
private function getMiddleware()
{
if (array_key_exists($this->index, $this->middlewares)) {
if (is_string($this->middlewares[$this->index])) {
$middleware = $this->container->get($this->middlewares[$this->index]);
} else {
$middleware = $this->middlewares[$this->index];
/var/www/www.cadi-tco.re/src/Framework/Middleware/CombinedMiddleware.php
public function __construct(ContainerInterface $container, array $middlewares)
{
$this->container = $container;
$this->middlewares = $middlewares;
}
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
$this->handler = $handler;
return $this->handle($request);
}
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = $this->getMiddleware();
if (is_null($middleware)) {
return $this->handler->handle($request);
} elseif (is_callable($middleware)) {
$response = call_user_func_array($middleware, [$request, [$this, 'handle']]);
if (is_string($response)) {
return new Response(200, [], $response);
}
return $response;
} elseif ($middleware instanceof \Psr\Http\Server\MiddlewareInterface) {
return $middleware->process($request, $this);
}
}
/**
*
* @return callable|null
*/
private function getMiddleware()
{
if (array_key_exists($this->index, $this->middlewares)) {
if (is_string($this->middlewares[$this->index])) {
$middleware = $this->container->get($this->middlewares[$this->index]);
} else {
$middleware = $this->middlewares[$this->index];
/var/www/www.cadi-tco.re/src/Framework/Middleware/CombinedMiddleware.php
* @var RequestHandlerInterface
*/
private $handler;
/**
*
* @param ContainerInterface $container
* @param array $middlewares
*/
public function __construct(ContainerInterface $container, array $middlewares)
{
$this->container = $container;
$this->middlewares = $middlewares;
}
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
$this->handler = $handler;
return $this->handle($request);
}
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = $this->getMiddleware();
if (is_null($middleware)) {
return $this->handler->handle($request);
} elseif (is_callable($middleware)) {
$response = call_user_func_array($middleware, [$request, [$this, 'handle']]);
if (is_string($response)) {
return new Response(200, [], $response);
}
return $response;
} elseif ($middleware instanceof \Psr\Http\Server\MiddlewareInterface) {
return $middleware->process($request, $this);
}
}
/**
/var/www/www.cadi-tco.re/src/Framework/Middleware/DispatcherMiddleware.php
public function __construct(\Psr\Container\ContainerInterface $container)
{
$this->container = $container;
}
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
$route = $request->getAttribute(\Framework\Router\Route::class);
if (is_null($route)) {
//Appelle le prochain middleware : cad le NotFoundMiddleware
return $handler->handle($request);
}
//Récupère l'action à appeller
$callback = $route->getCallable();
if (!is_array($callback)) {
$callback = [$callback];
}
//Permet d'appler d'autres middlewares
return (new CombinedMiddleware($this->container, $callback))->process($request, $handler);
}
}
/var/www/www.cadi-tco.re/src/Framework/Middleware/CombinedMiddleware.php
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
$this->handler = $handler;
return $this->handle($request);
}
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = $this->getMiddleware();
if (is_null($middleware)) {
return $this->handler->handle($request);
} elseif (is_callable($middleware)) {
$response = call_user_func_array($middleware, [$request, [$this, 'handle']]);
if (is_string($response)) {
return new Response(200, [], $response);
}
return $response;
} elseif ($middleware instanceof \Psr\Http\Server\MiddlewareInterface) {
return $middleware->process($request, $this);
}
}
/**
*
* @return callable|null
*/
private function getMiddleware()
{
if (array_key_exists($this->index, $this->middlewares)) {
if (is_string($this->middlewares[$this->index])) {
$middleware = $this->container->get($this->middlewares[$this->index]);
} else {
$middleware = $this->middlewares[$this->index];
}
$this->index ++;
return $middleware;
}
/var/www/www.cadi-tco.re/src/Framework/Middleware/RouterMiddleware.php
if($this->auth->getUser()){
$user = $this->auth->getUser();
$originalUser = $this->auth->getOriginalUser();
$fichier = fopen('public/uploads/logs/log'.date('ymd').'.txt', 'a');
$input = date('H:i:s').' : ';
if($originalUser) {
$input .= '['.$originalUser ->getFirstname().' '.$originalUser ->getlastname().']';
}
$input .= $user ->getFirstname().' '.$user ->getlastname().' - ';
$input .= $route->getName().' - '. json_encode($route->getParams());
if($request->getMethod() == "POST") {
$input .= ' - POST => ' . json_encode($request->getParsedBody());
}
$input .= "\n";
fwrite($fichier, $input);
fclose($fichier);
}
return $next($request);
} catch (\Pagerfanta\Exception\OutOfRangeCurrentPageException $exception) {
return new Response(404, [], $this->renderer->render('404'));
} catch (\Framework\Exception\NoRecordException $exception) {
return new Response(404, [], $this->renderer->render('404'));
}
}
}
/var/www/www.cadi-tco.re/src/Framework/Middleware/CombinedMiddleware.php
public function __construct(ContainerInterface $container, array $middlewares)
{
$this->container = $container;
$this->middlewares = $middlewares;
}
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
$this->handler = $handler;
return $this->handle($request);
}
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = $this->getMiddleware();
if (is_null($middleware)) {
return $this->handler->handle($request);
} elseif (is_callable($middleware)) {
$response = call_user_func_array($middleware, [$request, [$this, 'handle']]);
if (is_string($response)) {
return new Response(200, [], $response);
}
return $response;
} elseif ($middleware instanceof \Psr\Http\Server\MiddlewareInterface) {
return $middleware->process($request, $this);
}
}
/**
*
* @return callable|null
*/
private function getMiddleware()
{
if (array_key_exists($this->index, $this->middlewares)) {
if (is_string($this->middlewares[$this->index])) {
$middleware = $this->container->get($this->middlewares[$this->index]);
} else {
$middleware = $this->middlewares[$this->index];
/var/www/www.cadi-tco.re/src/Framework/Middleware/CombinedMiddleware.php
public function __construct(ContainerInterface $container, array $middlewares)
{
$this->container = $container;
$this->middlewares = $middlewares;
}
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
$this->handler = $handler;
return $this->handle($request);
}
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = $this->getMiddleware();
if (is_null($middleware)) {
return $this->handler->handle($request);
} elseif (is_callable($middleware)) {
$response = call_user_func_array($middleware, [$request, [$this, 'handle']]);
if (is_string($response)) {
return new Response(200, [], $response);
}
return $response;
} elseif ($middleware instanceof \Psr\Http\Server\MiddlewareInterface) {
return $middleware->process($request, $this);
}
}
/**
*
* @return callable|null
*/
private function getMiddleware()
{
if (array_key_exists($this->index, $this->middlewares)) {
if (is_string($this->middlewares[$this->index])) {
$middleware = $this->container->get($this->middlewares[$this->index]);
} else {
$middleware = $this->middlewares[$this->index];
/var/www/www.cadi-tco.re/src/Framework/Middleware/CsrfMiddleware.php
}
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
try {
if (in_array($request->getMethod(), ['POST', 'PUT', 'DELETE'])) {
$params = $request->getParsedBody()?: [];
if (!array_key_exists($this->formKey, $params)) {
return $this->reject($request);
} else {
$csrfList = $this->session[$this->sessionKey] ?? [];
if (in_array($params[$this->formKey], $csrfList)) {
$this->useToken($params[$this->formKey]);
return $handler->handle($request);
} else {
return $this->reject($request);
}
}
} else {
return $handler->handle($request);
}
} catch (CsrfInvalidException $e) {
$this->flashService->error($e->getMessage());
return new RedirectBackResponse($request);
}
}
public function generateToken(): string
{
$token = bin2hex(random_bytes(16));
$csrfList = $this->session[$this->sessionKey] ?? [];
$csrfList[] = $token;
$this->session[$this->sessionKey] = $csrfList;
$this->limitTokens();
return $token;
}
public function getFormKey()
/var/www/www.cadi-tco.re/src/Framework/Middleware/CombinedMiddleware.php
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
$this->handler = $handler;
return $this->handle($request);
}
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = $this->getMiddleware();
if (is_null($middleware)) {
return $this->handler->handle($request);
} elseif (is_callable($middleware)) {
$response = call_user_func_array($middleware, [$request, [$this, 'handle']]);
if (is_string($response)) {
return new Response(200, [], $response);
}
return $response;
} elseif ($middleware instanceof \Psr\Http\Server\MiddlewareInterface) {
return $middleware->process($request, $this);
}
}
/**
*
* @return callable|null
*/
private function getMiddleware()
{
if (array_key_exists($this->index, $this->middlewares)) {
if (is_string($this->middlewares[$this->index])) {
$middleware = $this->container->get($this->middlewares[$this->index]);
} else {
$middleware = $this->middlewares[$this->index];
}
$this->index ++;
return $middleware;
}
/var/www/www.cadi-tco.re/src/Framework/Middleware/RendererRequestMiddleware.php
//S'il y a un cookie popup, l'utilisateur a déjà vu le popup.
if (isset($_COOKIE['cookie-popup'])) {
if ($_COOKIE['cookie-popup'] == $popupName) { //On vérifie qu'il s'agit bien du popup actuel
$popup = false;
} else { //S'il s'agit d'un autre popup, on l'enregistre pour ne plus l'afficher la prochaine fois.
setcookie("cookie-popup", $popupName, time() + 86400 * $popup->getCookieTime(), '/');
}
} else { //S'il y en a pas, on l'enregistre pour ne plus l'afficher la prochaine fois.
setcookie("cookie-popup", $popupName, time() + 86400 * $popup->getCookieTime(), '/');
}
}
}
$this->renderer->addGlobal('domain', $domain);
$this->renderer->addGlobal('cookie', $cookie);
$this->renderer->addGlobal('cookieConsent', $cookieConsent);
$this->renderer->addGlobal('popup', $popup);
$this->renderer->addGlobal('popupQuestion', $popupQuestion);
$this->renderer->addGlobal('url', 'www.cadi.re');
return $handler->handle($request);
}
}
/var/www/www.cadi-tco.re/src/Framework/Middleware/CombinedMiddleware.php
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
$this->handler = $handler;
return $this->handle($request);
}
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = $this->getMiddleware();
if (is_null($middleware)) {
return $this->handler->handle($request);
} elseif (is_callable($middleware)) {
$response = call_user_func_array($middleware, [$request, [$this, 'handle']]);
if (is_string($response)) {
return new Response(200, [], $response);
}
return $response;
} elseif ($middleware instanceof \Psr\Http\Server\MiddlewareInterface) {
return $middleware->process($request, $this);
}
}
/**
*
* @return callable|null
*/
private function getMiddleware()
{
if (array_key_exists($this->index, $this->middlewares)) {
if (is_string($this->middlewares[$this->index])) {
$middleware = $this->container->get($this->middlewares[$this->index]);
} else {
$middleware = $this->middlewares[$this->index];
}
$this->index ++;
return $middleware;
}
/var/www/www.cadi-tco.re/src/Framework/Middleware/MethodMiddleware.php
<?php
namespace Framework\Middleware;
use Psr\Http\Message\ServerRequestInterface;
class MethodMiddleware
{
public function __invoke(ServerRequestInterface $request, callable $next)
{
$parsedBody = $request->getParsedBody();
if (array_key_exists('_method', $parsedBody) &&
in_array($parsedBody['_method'], ['DELETE', 'PUT'])
) {
$request = $request->withMethod($parsedBody['_method']);
}
return $next($request);
}
}
/var/www/www.cadi-tco.re/src/Framework/Middleware/CombinedMiddleware.php
public function __construct(ContainerInterface $container, array $middlewares)
{
$this->container = $container;
$this->middlewares = $middlewares;
}
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
$this->handler = $handler;
return $this->handle($request);
}
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = $this->getMiddleware();
if (is_null($middleware)) {
return $this->handler->handle($request);
} elseif (is_callable($middleware)) {
$response = call_user_func_array($middleware, [$request, [$this, 'handle']]);
if (is_string($response)) {
return new Response(200, [], $response);
}
return $response;
} elseif ($middleware instanceof \Psr\Http\Server\MiddlewareInterface) {
return $middleware->process($request, $this);
}
}
/**
*
* @return callable|null
*/
private function getMiddleware()
{
if (array_key_exists($this->index, $this->middlewares)) {
if (is_string($this->middlewares[$this->index])) {
$middleware = $this->container->get($this->middlewares[$this->index]);
} else {
$middleware = $this->middlewares[$this->index];
/var/www/www.cadi-tco.re/src/Framework/Middleware/CombinedMiddleware.php
public function __construct(ContainerInterface $container, array $middlewares)
{
$this->container = $container;
$this->middlewares = $middlewares;
}
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
$this->handler = $handler;
return $this->handle($request);
}
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = $this->getMiddleware();
if (is_null($middleware)) {
return $this->handler->handle($request);
} elseif (is_callable($middleware)) {
$response = call_user_func_array($middleware, [$request, [$this, 'handle']]);
if (is_string($response)) {
return new Response(200, [], $response);
}
return $response;
} elseif ($middleware instanceof \Psr\Http\Server\MiddlewareInterface) {
return $middleware->process($request, $this);
}
}
/**
*
* @return callable|null
*/
private function getMiddleware()
{
if (array_key_exists($this->index, $this->middlewares)) {
if (is_string($this->middlewares[$this->index])) {
$middleware = $this->container->get($this->middlewares[$this->index]);
} else {
$middleware = $this->middlewares[$this->index];
/var/www/www.cadi-tco.re/src/Framework/Middleware/PostMaxSizeMiddleware.php
private $flashService;
public function __construct(FlashService $flashService)
{
$this->flashService = $flashService;
}
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
if ($request->getMethod() === 'POST') {
$postMaxSize = $this->returnBytes(ini_get('post_max_size'));
$serverParams = $request->getServerParams();
if ($serverParams['CONTENT_LENGTH']>$postMaxSize) {
$this->flashService->error('Les éléments envoyés au formulaire sont trop importants');
return new RedirectResponse($request->getUri());
}
}
return $handler->handle($request);
}
private function returnBytes($size_str)
{
switch (substr($size_str, -1)) {
case 'M':
case 'm':
return (int)$size_str * 1048576;
case 'K':
case 'k':
return (int)$size_str * 1024;
case 'G':
case 'g':
return (int)$size_str * 1073741824;
default:
return $size_str;
}
}
}
/var/www/www.cadi-tco.re/src/Framework/Middleware/CombinedMiddleware.php
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
$this->handler = $handler;
return $this->handle($request);
}
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = $this->getMiddleware();
if (is_null($middleware)) {
return $this->handler->handle($request);
} elseif (is_callable($middleware)) {
$response = call_user_func_array($middleware, [$request, [$this, 'handle']]);
if (is_string($response)) {
return new Response(200, [], $response);
}
return $response;
} elseif ($middleware instanceof \Psr\Http\Server\MiddlewareInterface) {
return $middleware->process($request, $this);
}
}
/**
*
* @return callable|null
*/
private function getMiddleware()
{
if (array_key_exists($this->index, $this->middlewares)) {
if (is_string($this->middlewares[$this->index])) {
$middleware = $this->container->get($this->middlewares[$this->index]);
} else {
$middleware = $this->middlewares[$this->index];
}
$this->index ++;
return $middleware;
}
/var/www/www.cadi-tco.re/src/Framework/Middleware/RoutePrefixedMiddleware.php
public function __construct(ContainerInterface $container, string $prefix, $middleware)
{
$this->container = $container;
$this->prefix = $prefix;
$this->middleware = $middleware;
}
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
$path = $request->getUri()->getPath();
if (strpos($path, $this->prefix) === 0) {
if (is_string($this->middleware)) {
return $this->container->get($this->middleware)->process($request, $handler);
} else {
return $this->middleware->process($request, $handler);
}
}
return $handler->handle($request);
}
}
/var/www/www.cadi-tco.re/src/Framework/Middleware/CombinedMiddleware.php
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
$this->handler = $handler;
return $this->handle($request);
}
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = $this->getMiddleware();
if (is_null($middleware)) {
return $this->handler->handle($request);
} elseif (is_callable($middleware)) {
$response = call_user_func_array($middleware, [$request, [$this, 'handle']]);
if (is_string($response)) {
return new Response(200, [], $response);
}
return $response;
} elseif ($middleware instanceof \Psr\Http\Server\MiddlewareInterface) {
return $middleware->process($request, $this);
}
}
/**
*
* @return callable|null
*/
private function getMiddleware()
{
if (array_key_exists($this->index, $this->middlewares)) {
if (is_string($this->middlewares[$this->index])) {
$middleware = $this->container->get($this->middlewares[$this->index]);
} else {
$middleware = $this->middlewares[$this->index];
}
$this->index ++;
return $middleware;
}
/var/www/www.cadi-tco.re/src/Framework/Middleware/RoutePrefixedMiddleware.php
public function __construct(ContainerInterface $container, string $prefix, $middleware)
{
$this->container = $container;
$this->prefix = $prefix;
$this->middleware = $middleware;
}
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
$path = $request->getUri()->getPath();
if (strpos($path, $this->prefix) === 0) {
if (is_string($this->middleware)) {
return $this->container->get($this->middleware)->process($request, $handler);
} else {
return $this->middleware->process($request, $handler);
}
}
return $handler->handle($request);
}
}
/var/www/www.cadi-tco.re/src/Framework/Middleware/CombinedMiddleware.php
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
$this->handler = $handler;
return $this->handle($request);
}
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = $this->getMiddleware();
if (is_null($middleware)) {
return $this->handler->handle($request);
} elseif (is_callable($middleware)) {
$response = call_user_func_array($middleware, [$request, [$this, 'handle']]);
if (is_string($response)) {
return new Response(200, [], $response);
}
return $response;
} elseif ($middleware instanceof \Psr\Http\Server\MiddlewareInterface) {
return $middleware->process($request, $this);
}
}
/**
*
* @return callable|null
*/
private function getMiddleware()
{
if (array_key_exists($this->index, $this->middlewares)) {
if (is_string($this->middlewares[$this->index])) {
$middleware = $this->container->get($this->middlewares[$this->index]);
} else {
$middleware = $this->middlewares[$this->index];
}
$this->index ++;
return $middleware;
}
/var/www/www.cadi-tco.re/src/Auth/ForbiddenMiddleware.php
/**
* @var \Framework\Session\SessionInterface
*/
private $session;
/**
* @var string
*/
private $loginPath;
public function __construct(string $loginPath, SessionInterface $session)
{
$this->loginPath = $loginPath;
$this->session = $session;
}
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
try {
return $handler->handle($request);
} catch (ForbiddenException $exception) {
$this->session->set('auth.redirect', $request->getUri()->getPath());
(new FlashService($this->session))->error('Vous devez posséder un compte pour accéder à cette page');
return new RedirectResponse($this->loginPath);
} catch (ForbiddenProfilException $exception) {
$this->session->delete('auth.redirect');
(new FlashService($this->session))->error('Votre compte ne vous permet pas d\'accéder à cette page');
return new RedirectResponse($this->session->get('auth.back.redirect') ?? $this->loginPath);
}
}
}
/var/www/www.cadi-tco.re/src/Framework/Middleware/CombinedMiddleware.php
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
$this->handler = $handler;
return $this->handle($request);
}
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = $this->getMiddleware();
if (is_null($middleware)) {
return $this->handler->handle($request);
} elseif (is_callable($middleware)) {
$response = call_user_func_array($middleware, [$request, [$this, 'handle']]);
if (is_string($response)) {
return new Response(200, [], $response);
}
return $response;
} elseif ($middleware instanceof \Psr\Http\Server\MiddlewareInterface) {
return $middleware->process($request, $this);
}
}
/**
*
* @return callable|null
*/
private function getMiddleware()
{
if (array_key_exists($this->index, $this->middlewares)) {
if (is_string($this->middlewares[$this->index])) {
$middleware = $this->container->get($this->middlewares[$this->index]);
} else {
$middleware = $this->middlewares[$this->index];
}
$this->index ++;
return $middleware;
}
/var/www/www.cadi-tco.re/src/Framework/Middleware/TrailingSlashMiddleware.php
<?php
namespace Framework\Middleware;
use Psr\Http\Message\ServerRequestInterface;
class TrailingSlashMiddleware
{
public function __invoke(ServerRequestInterface $request, callable $next)
{
$uri = $request->getUri()->getPath();
if (!empty($uri) && $uri !== '/' && $uri[-1] === '/') {
return (new \GuzzleHttp\Psr7\Response())
->withStatus(301)
->withHeader('Location', substr($uri, 0, -1));
}
return $next($request);
}
}
/var/www/www.cadi-tco.re/src/Framework/Middleware/CombinedMiddleware.php
public function __construct(ContainerInterface $container, array $middlewares)
{
$this->container = $container;
$this->middlewares = $middlewares;
}
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
$this->handler = $handler;
return $this->handle($request);
}
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = $this->getMiddleware();
if (is_null($middleware)) {
return $this->handler->handle($request);
} elseif (is_callable($middleware)) {
$response = call_user_func_array($middleware, [$request, [$this, 'handle']]);
if (is_string($response)) {
return new Response(200, [], $response);
}
return $response;
} elseif ($middleware instanceof \Psr\Http\Server\MiddlewareInterface) {
return $middleware->process($request, $this);
}
}
/**
*
* @return callable|null
*/
private function getMiddleware()
{
if (array_key_exists($this->index, $this->middlewares)) {
if (is_string($this->middlewares[$this->index])) {
$middleware = $this->container->get($this->middlewares[$this->index]);
} else {
$middleware = $this->middlewares[$this->index];
/var/www/www.cadi-tco.re/src/Framework/Middleware/CombinedMiddleware.php
public function __construct(ContainerInterface $container, array $middlewares)
{
$this->container = $container;
$this->middlewares = $middlewares;
}
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
$this->handler = $handler;
return $this->handle($request);
}
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = $this->getMiddleware();
if (is_null($middleware)) {
return $this->handler->handle($request);
} elseif (is_callable($middleware)) {
$response = call_user_func_array($middleware, [$request, [$this, 'handle']]);
if (is_string($response)) {
return new Response(200, [], $response);
}
return $response;
} elseif ($middleware instanceof \Psr\Http\Server\MiddlewareInterface) {
return $middleware->process($request, $this);
}
}
/**
*
* @return callable|null
*/
private function getMiddleware()
{
if (array_key_exists($this->index, $this->middlewares)) {
if (is_string($this->middlewares[$this->index])) {
$middleware = $this->container->get($this->middlewares[$this->index]);
} else {
$middleware = $this->middlewares[$this->index];
/var/www/www.cadi-tco.re/vendor/middlewares/whoops/src/Whoops.php
$whoops->register();
$shutdown = function () use ($whoops) {
$whoops->allowQuit(true);
$whoops->writeToOutput(true);
$whoops->sendHttpCode(true);
$method = Run::SHUTDOWN_HANDLER;
$whoops->$method();
};
if ($this->system) {
$this->system->registerShutdownFunction($shutdown);
} else {
register_shutdown_function($shutdown);
}
}
try {
$response = $handler->handle($request);
} catch (\Throwable $exception) {
$response = $this->createResponse(500);
$response->getBody()->write($whoops->$method($exception));
$response = self::updateResponseContentType($response, $whoops);
} finally {
while (ob_get_level() >= $level) {
ob_end_clean();
}
}
if ($this->catchErrors) {
$whoops->unregister();
}
return $response;
}
/**
* Returns the whoops instance or create one.
*/
/var/www/www.cadi-tco.re/src/Framework/Middleware/CombinedMiddleware.php
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
$this->handler = $handler;
return $this->handle($request);
}
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = $this->getMiddleware();
if (is_null($middleware)) {
return $this->handler->handle($request);
} elseif (is_callable($middleware)) {
$response = call_user_func_array($middleware, [$request, [$this, 'handle']]);
if (is_string($response)) {
return new Response(200, [], $response);
}
return $response;
} elseif ($middleware instanceof \Psr\Http\Server\MiddlewareInterface) {
return $middleware->process($request, $this);
}
}
/**
*
* @return callable|null
*/
private function getMiddleware()
{
if (array_key_exists($this->index, $this->middlewares)) {
if (is_string($this->middlewares[$this->index])) {
$middleware = $this->container->get($this->middlewares[$this->index]);
} else {
$middleware = $this->middlewares[$this->index];
}
$this->index ++;
return $middleware;
}
/var/www/www.cadi-tco.re/src/Framework/Middleware/CombinedMiddleware.php
* @var RequestHandlerInterface
*/
private $handler;
/**
*
* @param ContainerInterface $container
* @param array $middlewares
*/
public function __construct(ContainerInterface $container, array $middlewares)
{
$this->container = $container;
$this->middlewares = $middlewares;
}
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
$this->handler = $handler;
return $this->handle($request);
}
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = $this->getMiddleware();
if (is_null($middleware)) {
return $this->handler->handle($request);
} elseif (is_callable($middleware)) {
$response = call_user_func_array($middleware, [$request, [$this, 'handle']]);
if (is_string($response)) {
return new Response(200, [], $response);
}
return $response;
} elseif ($middleware instanceof \Psr\Http\Server\MiddlewareInterface) {
return $middleware->process($request, $this);
}
}
/**
/var/www/www.cadi-tco.re/src/Framework/App.php
*/
public function pipe($routePrefix, $middleware = null): self
{
if ($middleware === null) {//Si le middleware n'est pas renseigné
// Le middleware est renseigné au premier paramètre.
$this->middlewares[] = $routePrefix;
} else {
$this->middlewares[] = new RoutePrefixedMiddleware($this->getContainer(), $routePrefix, $middleware);
}
return $this;
}
public function handle(ServerRequestInterface $request): ResponseInterface
{
$this->index++;
if ($this->index > 1) {
throw new \Exception();
}
$middleware = new CombinedMiddleware($this->getContainer(), $this->middlewares);
return $middleware->process($request, $this);
}
public function run(ServerRequestInterface $request): ResponseInterface
{
foreach ($this->modules as $module) {
$this->getContainer()->get($module);
}
return $this->handle($request);
}
public function getContainer():ContainerInterface
{
if ($this->container === null) {
$builder = new \DI\ContainerBuilder();
$env = getenv('ENV') ?: 'production';
if ($env === 'production') {
$builder->enableCompilation('tmp/di');
$builder->writeProxiesToFile(true, 'tmp/proxies');
//$builder->enableDefinitionCache();
/var/www/www.cadi-tco.re/src/Framework/App.php
return $this;
}
public function handle(ServerRequestInterface $request): ResponseInterface
{
$this->index++;
if ($this->index > 1) {
throw new \Exception();
}
$middleware = new CombinedMiddleware($this->getContainer(), $this->middlewares);
return $middleware->process($request, $this);
}
public function run(ServerRequestInterface $request): ResponseInterface
{
foreach ($this->modules as $module) {
$this->getContainer()->get($module);
}
return $this->handle($request);
}
public function getContainer():ContainerInterface
{
if ($this->container === null) {
$builder = new \DI\ContainerBuilder();
$env = getenv('ENV') ?: 'production';
if ($env === 'production') {
$builder->enableCompilation('tmp/di');
$builder->writeProxiesToFile(true, 'tmp/proxies');
//$builder->enableDefinitionCache();
}
if ($this->definition) {
$builder->addDefinitions($this->definition);
}
foreach ($this->modules as $module) {
if ($module::DEFINITIONS) {
$builder->addDefinitions($module::DEFINITIONS);
/var/www/www.cadi-tco.re/public/index.php
)
->pipe(
$container->get('superadmin.prefix'),
$container->get(Framework\Auth\RoleMiddlewareFactory::class)->makeForRole('superadmin')
)
->pipe(PostMaxSizeMiddleware::class)
->pipe(MethodMiddleware::class)
->pipe(RendererRequestMiddleware::class)//Ajoute des variables globales
->pipe(CsrfMiddleware::class)
->pipe(RouterMiddleware::class)
->pipe(DispatcherMiddleware::class)
->pipe(NotFoundMiddleware::class);
if(!empty($_COOKIE['cookie-debug'])) {
$fichier = fopen('timeScript.txt', 'a');
fwrite($fichier, 'pipes ok : '.date('H:i:s')."\n");
}
if (php_sapi_name() !=="cli") {
$response = $app->run(\GuzzleHttp\Psr7\ServerRequest::fromGlobals());
Http\Response\send($response);
if(!empty($_COOKIE['cookie-debug'])) {
$fichier = fopen('timeScript.txt', 'a');
fwrite($fichier, 'End : '.date('H:i:s')."\n");
}
}