IkonFramework \ Database \ NoRecordException
No message IkonFramework\Database\NoRecordException thrown with message "" Stacktrace: #27 IkonFramework\Database\NoRecordException in /vhosts/dragonoi60086/home/http/src/Framework/Database/Query.php:216 #26 IkonFramework\Database\Query:fetchOrFail in /vhosts/dragonoi60086/home/http/src/Modules/Shop/Table/ProductTable.php:34 #25 App\Shop\Table\ProductTable:findSingleProduct in /vhosts/dragonoi60086/home/http/src/Modules/Artist/Actions/ArtisteProductAction.php:70 #24 App\Artist\Actions\ArtisteProductAction:__invoke in /vhosts/dragonoi60086/home/http/src/Framework/Middleware/CombinedMiddleware.php:41 #23 call_user_func_array in /vhosts/dragonoi60086/home/http/src/Framework/Middleware/CombinedMiddleware.php:41 #22 IkonFramework\Middleware\CombinedMiddleware:handle in /vhosts/dragonoi60086/home/http/src/Framework/Middleware/DispatcherMiddleware.php:33 #21 IkonFramework\Middleware\DispatcherMiddleware:process in /vhosts/dragonoi60086/home/http/src/Framework/Middleware/CombinedMiddleware.php:51 #20 IkonFramework\Middleware\CombinedMiddleware:handle in /vhosts/dragonoi60086/home/http/src/Framework/Middleware/RouterMiddleware.php:31 #19 IkonFramework\Middleware\RouterMiddleware:__invoke in /vhosts/dragonoi60086/home/http/src/Framework/Middleware/CombinedMiddleware.php:41 #18 call_user_func_array in /vhosts/dragonoi60086/home/http/src/Framework/Middleware/CombinedMiddleware.php:41 #17 IkonFramework\Middleware\CombinedMiddleware:handle in /vhosts/dragonoi60086/home/http/src/Framework/Middleware/RendererRequestMiddleware.php:34 #16 IkonFramework\Middleware\RendererRequestMiddleware:process in /vhosts/dragonoi60086/home/http/src/Framework/Middleware/CombinedMiddleware.php:51 #15 IkonFramework\Middleware\CombinedMiddleware:handle in /vhosts/dragonoi60086/home/http/src/Framework/Middleware/MethodMiddleware.php:15 #14 IkonFramework\Middleware\MethodMiddleware:__invoke in /vhosts/dragonoi60086/home/http/src/Framework/Middleware/CombinedMiddleware.php:41 #13 call_user_func_array in /vhosts/dragonoi60086/home/http/src/Framework/Middleware/CombinedMiddleware.php:41 #12 IkonFramework\Middleware\CombinedMiddleware:handle in /vhosts/dragonoi60086/home/http/src/Framework/Middleware/RoutePrefixedMiddleware.php:41 #11 IkonFramework\Middleware\RoutePrefixedMiddleware:process in /vhosts/dragonoi60086/home/http/src/Framework/Middleware/CombinedMiddleware.php:51 #10 IkonFramework\Middleware\CombinedMiddleware:handle in /vhosts/dragonoi60086/home/http/src/Modules/Auth/Middleware/ForbiddenMiddleware.php:30 #9 App\Auth\Middleware\ForbiddenMiddleware:__invoke in /vhosts/dragonoi60086/home/http/src/Framework/Middleware/CombinedMiddleware.php:41 #8 call_user_func_array in /vhosts/dragonoi60086/home/http/src/Framework/Middleware/CombinedMiddleware.php:41 #7 IkonFramework\Middleware\CombinedMiddleware:handle in /vhosts/dragonoi60086/home/http/src/Framework/Middleware/TrailingSlashMiddleware.php:18 #6 IkonFramework\Middleware\TrailingSlashMiddleware:__invoke in /vhosts/dragonoi60086/home/http/src/Framework/Middleware/CombinedMiddleware.php:41 #5 call_user_func_array in /vhosts/dragonoi60086/home/http/src/Framework/Middleware/CombinedMiddleware.php:41 #4 IkonFramework\Middleware\CombinedMiddleware:handle in /vhosts/dragonoi60086/home/http/vendor/middlewares/whoops/src/Whoops.php:89 #3 Middlewares\Whoops:process in /vhosts/dragonoi60086/home/http/src/Framework/Middleware/CombinedMiddleware.php:51 #2 IkonFramework\Middleware\CombinedMiddleware:handle in /vhosts/dragonoi60086/home/http/src/Framework/App.php:110 #1 IkonFramework\App:handle in /vhosts/dragonoi60086/home/http/src/Framework/App.php:124 #0 IkonFramework\App:run in /vhosts/dragonoi60086/home/http/web/index.php:41
Stack frames (28)
27
IkonFramework
\
Database
\
NoRecordException
/
src
/
Framework
/
Database
/
Query.php
216
26
IkonFramework
\
Database
\
Query
fetchOrFail
/
src
/
Modules
/
Shop
/
Table
/
ProductTable.php
34
25
App
\
Shop
\
Table
\
ProductTable
findSingleProduct
/
src
/
Modules
/
Artist
/
Actions
/
ArtisteProductAction.php
70
24
App
\
Artist
\
Actions
\
ArtisteProductAction
__invoke
/
src
/
Framework
/
Middleware
/
CombinedMiddleware.php
41
23
call_user_func_array
/
src
/
Framework
/
Middleware
/
CombinedMiddleware.php
41
22
IkonFramework
\
Middleware
\
CombinedMiddleware
handle
/
src
/
Framework
/
Middleware
/
DispatcherMiddleware.php
33
21
IkonFramework
\
Middleware
\
DispatcherMiddleware
process
/
src
/
Framework
/
Middleware
/
CombinedMiddleware.php
51
20
IkonFramework
\
Middleware
\
CombinedMiddleware
handle
/
src
/
Framework
/
Middleware
/
RouterMiddleware.php
31
19
IkonFramework
\
Middleware
\
RouterMiddleware
__invoke
/
src
/
Framework
/
Middleware
/
CombinedMiddleware.php
41
18
call_user_func_array
/
src
/
Framework
/
Middleware
/
CombinedMiddleware.php
41
17
IkonFramework
\
Middleware
\
CombinedMiddleware
handle
/
src
/
Framework
/
Middleware
/
RendererRequestMiddleware.php
34
16
IkonFramework
\
Middleware
\
RendererRequestMiddleware
process
/
src
/
Framework
/
Middleware
/
CombinedMiddleware.php
51
15
IkonFramework
\
Middleware
\
CombinedMiddleware
handle
/
src
/
Framework
/
Middleware
/
MethodMiddleware.php
15
14
IkonFramework
\
Middleware
\
MethodMiddleware
__invoke
/
src
/
Framework
/
Middleware
/
CombinedMiddleware.php
41
13
call_user_func_array
/
src
/
Framework
/
Middleware
/
CombinedMiddleware.php
41
12
IkonFramework
\
Middleware
\
CombinedMiddleware
handle
/
src
/
Framework
/
Middleware
/
RoutePrefixedMiddleware.php
41
11
IkonFramework
\
Middleware
\
RoutePrefixedMiddleware
process
/
src
/
Framework
/
Middleware
/
CombinedMiddleware.php
51
10
IkonFramework
\
Middleware
\
CombinedMiddleware
handle
/
src
/
Modules
/
Auth
/
Middleware
/
ForbiddenMiddleware.php
30
9
App
\
Auth
\
Middleware
\
ForbiddenMiddleware
__invoke
/
src
/
Framework
/
Middleware
/
CombinedMiddleware.php
41
8
call_user_func_array
/
src
/
Framework
/
Middleware
/
CombinedMiddleware.php
41
7
IkonFramework
\
Middleware
\
CombinedMiddleware
handle
/
src
/
Framework
/
Middleware
/
TrailingSlashMiddleware.php
18
6
IkonFramework
\
Middleware
\
TrailingSlashMiddleware
__invoke
/
src
/
Framework
/
Middleware
/
CombinedMiddleware.php
41
5
call_user_func_array
/
src
/
Framework
/
Middleware
/
CombinedMiddleware.php
41
4
IkonFramework
\
Middleware
\
CombinedMiddleware
handle
/
vendor
/
middlewares
/
whoops
/
src
/
Whoops.php
89
3
Middlewares
\
Whoops
process
/
src
/
Framework
/
Middleware
/
CombinedMiddleware.php
51
2
IkonFramework
\
Middleware
\
CombinedMiddleware
handle
/
src
/
Framework
/
App.php
110
1
IkonFramework
\
App
handle
/
src
/
Framework
/
App.php
124
0
IkonFramework
\
App
run
/
web
/
index.php
41
/
vhosts
/
dragonoi60086
/
home
/
http
/
src
/
Framework
/
Database
/
Query.php
    {
        $record = $this->execute()->fetch(\PDO::FETCH_ASSOC);
        if ($record === false) {
            return false;
        }
        if ($this->entity) {
            return Hydrator::hydrate($record, $this->entity);
        }
        return $record;
    }
 
    /**
     * @return mixed
     * @throws NoRecordException
     */
    public function fetchOrFail()
    {
        $record = $this->fetch();
        if ($record === false) {
            throw new NoRecordException();
        }
        return $record;
    }
 
    /**
     * @return QueryResult
     */
    public function fetchAll(): QueryResult
    {
        return new QueryResult(
            $this->execute()->fetchAll(\PDO::FETCH_ASSOC),
            $this->entity
        );
    }
 
 
    /**
     * @param int $columnNumber
     * @return mixed
     */
/
vhosts
/
dragonoi60086
/
home
/
http
/
src
/
Modules
/
Shop
/
Table
/
ProductTable.php
    {
        return $this->makeQuery()
            ->where("created_at < NOW() AND published = 1 AND p.bought = 0");
    }
 
    public function findPublicWithCategory(int $id): Query
    {
        return $this->makeQuery()
            ->where("p.created_at < NOW() AND p.published = 1) AND p.bought = 0 AND pc.category_id = $id")
            ->join('products_has_categories as pc', 'p.id = pc.product_id')
            ->join('categories_products as c', 'p.category_id = c.id')
            ->fields('p.name, p.slug, p.id, p.price_ttc, p.image, p.category_id, c.name as categoryName, c.slug as categorySlug');
    }
 
    public function findSingleProduct(int $id)
    {
        return $this->makeQuery()
            ->where('published = 1 AND created_at < NOW() AND p.bought = 0 AND id = :id')
            ->params(['id' => $id])
            ->fetchOrFail();
    }
 
    public function findBought(): Query
    {
        return $this->makeQuery()
            ->where("p.created_at < NOW() AND p.published = 1 AND p.bought = 1")
            ->join('artists as a', 'p.artist_id = a.id')
            ->fields('p.id as product_id, p.name, p.image, p.summary, a.firstname, a.lastname, a.alias, a.slug, a.id');
    }
 
    public function findPublicArtist(int $artistId)
    {
        return $this->makeQuery()
            ->where("created_at < NOW() AND published = 1 AND p.bought = 0 AND artist_id = " . $artistId)
            ->order("id DESC")
            ->fetchAll();
    }
}
 
/
vhosts
/
dragonoi60086
/
home
/
http
/
src
/
Modules
/
Artist
/
Actions
/
ArtisteProductAction.php
        FlashService $flashService,
        ArtistTable $artistTable,
        ProductTable $productTable,
        ProductImageTable $productImageTable,
        PageTable $pageTable
    )
    {
        $this->renderer = $renderer;
        $this->router = $router;
        $this->flashService = $flashService;
        $this->artistTable = $artistTable;
        $this->productTable = $productTable;
        $this->productImageTable = $productImageTable;
        $this->pageTable = $pageTable;
    }

    public function __invoke(ServerRequestInterface $request)
    {
        $slug = $request->getAttribute('slug');
        $product = $this->productTable->findSingleProduct($request->getAttribute('id'));
        $idProduct = $product->getId();
        if ($product->getSlug() !== $slug) {
            return $this->redirect('artist.product', [
                'slug' => $product->getSlug(),
                'id'   => $idProduct
            ]);
        }
        $images = $this->productImageTable->makeQuery()
            ->where('product_id = ' . $idProduct)
            ->order('position ASC')
            ->fetchAll();
        $artist = $this->artistTable->find($product->getArtistId());
        $tarif = $this->pageTable->findBy('category_id',5);

        return $this->renderer->render('@artist/shop',compact('product','artist', 'images', 'tarif'));
    }
}
/
vhosts
/
dragonoi60086
/
home
/
http
/
src
/
Framework
/
Middleware
/
CombinedMiddleware.php
     * @var int
     */
    private $index = 0;
 
    private $container;
 
 
    public function __construct(ContainerInterface $container, array $middlewares)
    {
        $this->container = $container;
        $this->middlewares = $middlewares;
    }
 
    public function handle(ServerRequestInterface $request): ResponseInterface
    {
        $middleware = $this->getMiddleware();
        if (is_null($middleware)) {
            throw new \Exception("Aucun middleware n'a intercepté cette requête.");
        } elseif (is_callable($middleware)) {
            $response =  call_user_func_array($middleware, [$request, [$this,'handle']]);
            if (is_string($response)) {
                return new Response(200, [], $response);
            }
            if (is_null($response)) {
                throw new \Exception("Aucun retour (return) dans l'action appelée.");
            }
            return $response;
            $this->index++;
        } elseif ($middleware instanceof MiddlewareInterface) {
            return $middleware->process($request, $this);
        }
    }
 
    /**
     * @return mixed|null
     */
    private function getMiddleware()
    {
        if (array_key_exists($this->index, $this->middlewares)) {
            if (is_string($this->middlewares[$this->index])) {
/
vhosts
/
dragonoi60086
/
home
/
http
/
src
/
Framework
/
Middleware
/
CombinedMiddleware.php
     * @var int
     */
    private $index = 0;
 
    private $container;
 
 
    public function __construct(ContainerInterface $container, array $middlewares)
    {
        $this->container = $container;
        $this->middlewares = $middlewares;
    }
 
    public function handle(ServerRequestInterface $request): ResponseInterface
    {
        $middleware = $this->getMiddleware();
        if (is_null($middleware)) {
            throw new \Exception("Aucun middleware n'a intercepté cette requête.");
        } elseif (is_callable($middleware)) {
            $response =  call_user_func_array($middleware, [$request, [$this,'handle']]);
            if (is_string($response)) {
                return new Response(200, [], $response);
            }
            if (is_null($response)) {
                throw new \Exception("Aucun retour (return) dans l'action appelée.");
            }
            return $response;
            $this->index++;
        } elseif ($middleware instanceof MiddlewareInterface) {
            return $middleware->process($request, $this);
        }
    }
 
    /**
     * @return mixed|null
     */
    private function getMiddleware()
    {
        if (array_key_exists($this->index, $this->middlewares)) {
            if (is_string($this->middlewares[$this->index])) {
/
vhosts
/
dragonoi60086
/
home
/
http
/
src
/
Framework
/
Middleware
/
DispatcherMiddleware.php
{
 
    private $container;
 
    public function __construct(ContainerInterface $container)
    {
        $this->container = $container;
    }
 
    public function process(ServerRequestInterface $request, RequestHandlerInterface $next): ResponseInterface
    {
        $route = $request->getAttribute(Route::class);
        if (is_null($route)) {
            return $next->handle($request);
        }
        $callback = $route->getCallback();
        if (!is_array($callback)) {
            $callback = [$callback];
        }
        return (new CombinedMiddleware($this->container, $callback))->handle($request);
    }
}
 
/
vhosts
/
dragonoi60086
/
home
/
http
/
src
/
Framework
/
Middleware
/
CombinedMiddleware.php
        $this->middlewares = $middlewares;
    }
 
    public function handle(ServerRequestInterface $request): ResponseInterface
    {
        $middleware = $this->getMiddleware();
        if (is_null($middleware)) {
            throw new \Exception("Aucun middleware n'a intercepté cette requête.");
        } elseif (is_callable($middleware)) {
            $response =  call_user_func_array($middleware, [$request, [$this,'handle']]);
            if (is_string($response)) {
                return new Response(200, [], $response);
            }
            if (is_null($response)) {
                throw new \Exception("Aucun retour (return) dans l'action appelée.");
            }
            return $response;
            $this->index++;
        } elseif ($middleware instanceof MiddlewareInterface) {
            return $middleware->process($request, $this);
        }
    }
 
    /**
     * @return mixed|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;
        }
        return null;
    }
}
/
vhosts
/
dragonoi60086
/
home
/
http
/
src
/
Framework
/
Middleware
/
RouterMiddleware.php
 
    public function __construct(Router $router)
    {
        $this->router = $router;
    }
 
    public function __invoke(ServerRequestInterface $request, callable $next)
    {
        $route = $this->router->match($request);
 
        if (is_null($route)) {
            return $next($request);
        }
        $params = $route->getParams();
        $request = array_reduce(array_keys($params), function ($request, $key) use ($params) {
            return $request->withAttribute($key, $params[$key]);
        }, $request);
 
        $request = $request->withAttribute(get_class($route), $route);
        return $next($request);
    }
}
 
/
vhosts
/
dragonoi60086
/
home
/
http
/
src
/
Framework
/
Middleware
/
CombinedMiddleware.php
     * @var int
     */
    private $index = 0;
 
    private $container;
 
 
    public function __construct(ContainerInterface $container, array $middlewares)
    {
        $this->container = $container;
        $this->middlewares = $middlewares;
    }
 
    public function handle(ServerRequestInterface $request): ResponseInterface
    {
        $middleware = $this->getMiddleware();
        if (is_null($middleware)) {
            throw new \Exception("Aucun middleware n'a intercepté cette requête.");
        } elseif (is_callable($middleware)) {
            $response =  call_user_func_array($middleware, [$request, [$this,'handle']]);
            if (is_string($response)) {
                return new Response(200, [], $response);
            }
            if (is_null($response)) {
                throw new \Exception("Aucun retour (return) dans l'action appelée.");
            }
            return $response;
            $this->index++;
        } elseif ($middleware instanceof MiddlewareInterface) {
            return $middleware->process($request, $this);
        }
    }
 
    /**
     * @return mixed|null
     */
    private function getMiddleware()
    {
        if (array_key_exists($this->index, $this->middlewares)) {
            if (is_string($this->middlewares[$this->index])) {
/
vhosts
/
dragonoi60086
/
home
/
http
/
src
/
Framework
/
Middleware
/
CombinedMiddleware.php
     * @var int
     */
    private $index = 0;
 
    private $container;
 
 
    public function __construct(ContainerInterface $container, array $middlewares)
    {
        $this->container = $container;
        $this->middlewares = $middlewares;
    }
 
    public function handle(ServerRequestInterface $request): ResponseInterface
    {
        $middleware = $this->getMiddleware();
        if (is_null($middleware)) {
            throw new \Exception("Aucun middleware n'a intercepté cette requête.");
        } elseif (is_callable($middleware)) {
            $response =  call_user_func_array($middleware, [$request, [$this,'handle']]);
            if (is_string($response)) {
                return new Response(200, [], $response);
            }
            if (is_null($response)) {
                throw new \Exception("Aucun retour (return) dans l'action appelée.");
            }
            return $response;
            $this->index++;
        } elseif ($middleware instanceof MiddlewareInterface) {
            return $middleware->process($request, $this);
        }
    }
 
    /**
     * @return mixed|null
     */
    private function getMiddleware()
    {
        if (array_key_exists($this->index, $this->middlewares)) {
            if (is_string($this->middlewares[$this->index])) {
/
vhosts
/
dragonoi60086
/
home
/
http
/
src
/
Framework
/
Middleware
/
RendererRequestMiddleware.php
    public function __construct(RendererInterface $renderer)
    {
        $this->renderer = $renderer;
    }
 
    /**
     * @param ServerRequestInterface $request
     * @param RequestHandlerInterface $handler
     * @return ResponseInterface
     */
    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
    {
        $domain = sprintf(
            '%s:://%s%s',
            $request->getUri()->getScheme(),
            $request->getUri()->getHost(),
            $request->getUri()->getPort() ? ':' .  $request->getUri()->getPort() : ''
        );
        $this->renderer->addGlobal('domain', $domain);
        return $handler->handle($request);
    }
}
 
/
vhosts
/
dragonoi60086
/
home
/
http
/
src
/
Framework
/
Middleware
/
CombinedMiddleware.php
        $this->middlewares = $middlewares;
    }
 
    public function handle(ServerRequestInterface $request): ResponseInterface
    {
        $middleware = $this->getMiddleware();
        if (is_null($middleware)) {
            throw new \Exception("Aucun middleware n'a intercepté cette requête.");
        } elseif (is_callable($middleware)) {
            $response =  call_user_func_array($middleware, [$request, [$this,'handle']]);
            if (is_string($response)) {
                return new Response(200, [], $response);
            }
            if (is_null($response)) {
                throw new \Exception("Aucun retour (return) dans l'action appelée.");
            }
            return $response;
            $this->index++;
        } elseif ($middleware instanceof MiddlewareInterface) {
            return $middleware->process($request, $this);
        }
    }
 
    /**
     * @return mixed|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;
        }
        return null;
    }
}
/
vhosts
/
dragonoi60086
/
home
/
http
/
src
/
Framework
/
Middleware
/
MethodMiddleware.php
<?php
 
namespace IkonFramework\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);
    }
}
 
/
vhosts
/
dragonoi60086
/
home
/
http
/
src
/
Framework
/
Middleware
/
CombinedMiddleware.php
     * @var int
     */
    private $index = 0;
 
    private $container;
 
 
    public function __construct(ContainerInterface $container, array $middlewares)
    {
        $this->container = $container;
        $this->middlewares = $middlewares;
    }
 
    public function handle(ServerRequestInterface $request): ResponseInterface
    {
        $middleware = $this->getMiddleware();
        if (is_null($middleware)) {
            throw new \Exception("Aucun middleware n'a intercepté cette requête.");
        } elseif (is_callable($middleware)) {
            $response =  call_user_func_array($middleware, [$request, [$this,'handle']]);
            if (is_string($response)) {
                return new Response(200, [], $response);
            }
            if (is_null($response)) {
                throw new \Exception("Aucun retour (return) dans l'action appelée.");
            }
            return $response;
            $this->index++;
        } elseif ($middleware instanceof MiddlewareInterface) {
            return $middleware->process($request, $this);
        }
    }
 
    /**
     * @return mixed|null
     */
    private function getMiddleware()
    {
        if (array_key_exists($this->index, $this->middlewares)) {
            if (is_string($this->middlewares[$this->index])) {
/
vhosts
/
dragonoi60086
/
home
/
http
/
src
/
Framework
/
Middleware
/
CombinedMiddleware.php
     * @var int
     */
    private $index = 0;
 
    private $container;
 
 
    public function __construct(ContainerInterface $container, array $middlewares)
    {
        $this->container = $container;
        $this->middlewares = $middlewares;
    }
 
    public function handle(ServerRequestInterface $request): ResponseInterface
    {
        $middleware = $this->getMiddleware();
        if (is_null($middleware)) {
            throw new \Exception("Aucun middleware n'a intercepté cette requête.");
        } elseif (is_callable($middleware)) {
            $response =  call_user_func_array($middleware, [$request, [$this,'handle']]);
            if (is_string($response)) {
                return new Response(200, [], $response);
            }
            if (is_null($response)) {
                throw new \Exception("Aucun retour (return) dans l'action appelée.");
            }
            return $response;
            $this->index++;
        } elseif ($middleware instanceof MiddlewareInterface) {
            return $middleware->process($request, $this);
        }
    }
 
    /**
     * @return mixed|null
     */
    private function getMiddleware()
    {
        if (array_key_exists($this->index, $this->middlewares)) {
            if (is_string($this->middlewares[$this->index])) {
/
vhosts
/
dragonoi60086
/
home
/
http
/
src
/
Framework
/
Middleware
/
RoutePrefixedMiddleware.php
        $this->prefix = $prefix;
        $this->middleware = $middleware;
    }
 
    /**
     * @param ServerRequestInterface $request
     * @param RequestHandlerInterface $handler
     * @return ResponseInterface
     */
    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)->handle($request, $handler);
            } else {
                return $this->middleware->process($request, $handler);
            }
        }
        return $handler->handle($request);
    }
}
 
/
vhosts
/
dragonoi60086
/
home
/
http
/
src
/
Framework
/
Middleware
/
CombinedMiddleware.php
        $this->middlewares = $middlewares;
    }
 
    public function handle(ServerRequestInterface $request): ResponseInterface
    {
        $middleware = $this->getMiddleware();
        if (is_null($middleware)) {
            throw new \Exception("Aucun middleware n'a intercepté cette requête.");
        } elseif (is_callable($middleware)) {
            $response =  call_user_func_array($middleware, [$request, [$this,'handle']]);
            if (is_string($response)) {
                return new Response(200, [], $response);
            }
            if (is_null($response)) {
                throw new \Exception("Aucun retour (return) dans l'action appelée.");
            }
            return $response;
            $this->index++;
        } elseif ($middleware instanceof MiddlewareInterface) {
            return $middleware->process($request, $this);
        }
    }
 
    /**
     * @return mixed|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;
        }
        return null;
    }
}
/
vhosts
/
dragonoi60086
/
home
/
http
/
src
/
Modules
/
Auth
/
Middleware
/
ForbiddenMiddleware.php
class ForbiddenMiddleware
{
 
    private $loginPath;
 
    private $flash;
 
    private $session;
 
    public function __construct(string $loginPath, FlashService $flash, SessionInterface $session)
    {
        $this->loginPath = $loginPath;
        $this->flash = $flash;
        $this->session = $session;
    }
 
    public function __invoke(ServerRequestInterface $request, callable $next)
    {
        try {
            return $next($request);
        } catch (ForbiddenException $exception) {
            return $this->redirectLogin($request);
        } catch (\TypeError $error) {
            if (strpos($error->getMessage(), \App\Auth\Entity\User::class) !== false) {
                return $this->redirectLogin($request);
            }
            throw $error;
        }
    }
 
    private function redirectLogin(ServerRequestInterface $request)
    {
        $this->session->set('auth.redirect', $request->getUri()->getPath());
        $this->flash->error('Vous devez posséder un compte pour accèder à cette page');
        return new RedirectResponse($this->loginPath);
    }
}
 
/
vhosts
/
dragonoi60086
/
home
/
http
/
src
/
Framework
/
Middleware
/
CombinedMiddleware.php
     * @var int
     */
    private $index = 0;
 
    private $container;
 
 
    public function __construct(ContainerInterface $container, array $middlewares)
    {
        $this->container = $container;
        $this->middlewares = $middlewares;
    }
 
    public function handle(ServerRequestInterface $request): ResponseInterface
    {
        $middleware = $this->getMiddleware();
        if (is_null($middleware)) {
            throw new \Exception("Aucun middleware n'a intercepté cette requête.");
        } elseif (is_callable($middleware)) {
            $response =  call_user_func_array($middleware, [$request, [$this,'handle']]);
            if (is_string($response)) {
                return new Response(200, [], $response);
            }
            if (is_null($response)) {
                throw new \Exception("Aucun retour (return) dans l'action appelée.");
            }
            return $response;
            $this->index++;
        } elseif ($middleware instanceof MiddlewareInterface) {
            return $middleware->process($request, $this);
        }
    }
 
    /**
     * @return mixed|null
     */
    private function getMiddleware()
    {
        if (array_key_exists($this->index, $this->middlewares)) {
            if (is_string($this->middlewares[$this->index])) {
/
vhosts
/
dragonoi60086
/
home
/
http
/
src
/
Framework
/
Middleware
/
CombinedMiddleware.php
     * @var int
     */
    private $index = 0;
 
    private $container;
 
 
    public function __construct(ContainerInterface $container, array $middlewares)
    {
        $this->container = $container;
        $this->middlewares = $middlewares;
    }
 
    public function handle(ServerRequestInterface $request): ResponseInterface
    {
        $middleware = $this->getMiddleware();
        if (is_null($middleware)) {
            throw new \Exception("Aucun middleware n'a intercepté cette requête.");
        } elseif (is_callable($middleware)) {
            $response =  call_user_func_array($middleware, [$request, [$this,'handle']]);
            if (is_string($response)) {
                return new Response(200, [], $response);
            }
            if (is_null($response)) {
                throw new \Exception("Aucun retour (return) dans l'action appelée.");
            }
            return $response;
            $this->index++;
        } elseif ($middleware instanceof MiddlewareInterface) {
            return $middleware->process($request, $this);
        }
    }
 
    /**
     * @return mixed|null
     */
    private function getMiddleware()
    {
        if (array_key_exists($this->index, $this->middlewares)) {
            if (is_string($this->middlewares[$this->index])) {
/
vhosts
/
dragonoi60086
/
home
/
http
/
src
/
Framework
/
Middleware
/
TrailingSlashMiddleware.php
<?php
 
namespace IkonFramework\Middleware;
 
use GuzzleHttp\Psr7\Response;
use Psr\Http\Message\ServerRequestInterface;
 
class TrailingSlashMiddleware
{
    public function __invoke(ServerRequestInterface $request, callable $next)
    {
        $uri = $request->getUri()->getPath();
        if (!empty($uri) && $uri !== '/' && $uri === "/") {
            return (new Response())
                ->withStatus(301)
                ->withHeader('Location', substr($uri, 0, -1));
        }
        return $next($request);
    }
}
 
/
vhosts
/
dragonoi60086
/
home
/
http
/
src
/
Framework
/
Middleware
/
CombinedMiddleware.php
     * @var int
     */
    private $index = 0;
 
    private $container;
 
 
    public function __construct(ContainerInterface $container, array $middlewares)
    {
        $this->container = $container;
        $this->middlewares = $middlewares;
    }
 
    public function handle(ServerRequestInterface $request): ResponseInterface
    {
        $middleware = $this->getMiddleware();
        if (is_null($middleware)) {
            throw new \Exception("Aucun middleware n'a intercepté cette requête.");
        } elseif (is_callable($middleware)) {
            $response =  call_user_func_array($middleware, [$request, [$this,'handle']]);
            if (is_string($response)) {
                return new Response(200, [], $response);
            }
            if (is_null($response)) {
                throw new \Exception("Aucun retour (return) dans l'action appelée.");
            }
            return $response;
            $this->index++;
        } elseif ($middleware instanceof MiddlewareInterface) {
            return $middleware->process($request, $this);
        }
    }
 
    /**
     * @return mixed|null
     */
    private function getMiddleware()
    {
        if (array_key_exists($this->index, $this->middlewares)) {
            if (is_string($this->middlewares[$this->index])) {
/
vhosts
/
dragonoi60086
/
home
/
http
/
src
/
Framework
/
Middleware
/
CombinedMiddleware.php
     * @var int
     */
    private $index = 0;
 
    private $container;
 
 
    public function __construct(ContainerInterface $container, array $middlewares)
    {
        $this->container = $container;
        $this->middlewares = $middlewares;
    }
 
    public function handle(ServerRequestInterface $request): ResponseInterface
    {
        $middleware = $this->getMiddleware();
        if (is_null($middleware)) {
            throw new \Exception("Aucun middleware n'a intercepté cette requête.");
        } elseif (is_callable($middleware)) {
            $response =  call_user_func_array($middleware, [$request, [$this,'handle']]);
            if (is_string($response)) {
                return new Response(200, [], $response);
            }
            if (is_null($response)) {
                throw new \Exception("Aucun retour (return) dans l'action appelée.");
            }
            return $response;
            $this->index++;
        } elseif ($middleware instanceof MiddlewareInterface) {
            return $middleware->process($request, $this);
        }
    }
 
    /**
     * @return mixed|null
     */
    private function getMiddleware()
    {
        if (array_key_exists($this->index, $this->middlewares)) {
            if (is_string($this->middlewares[$this->index])) {
/
vhosts
/
dragonoi60086
/
home
/
http
/
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 = Utils\Factory::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.
     */
/
vhosts
/
dragonoi60086
/
home
/
http
/
src
/
Framework
/
Middleware
/
CombinedMiddleware.php
        $this->middlewares = $middlewares;
    }
 
    public function handle(ServerRequestInterface $request): ResponseInterface
    {
        $middleware = $this->getMiddleware();
        if (is_null($middleware)) {
            throw new \Exception("Aucun middleware n'a intercepté cette requête.");
        } elseif (is_callable($middleware)) {
            $response =  call_user_func_array($middleware, [$request, [$this,'handle']]);
            if (is_string($response)) {
                return new Response(200, [], $response);
            }
            if (is_null($response)) {
                throw new \Exception("Aucun retour (return) dans l'action appelée.");
            }
            return $response;
            $this->index++;
        } elseif ($middleware instanceof MiddlewareInterface) {
            return $middleware->process($request, $this);
        }
    }
 
    /**
     * @return mixed|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;
        }
        return null;
    }
}
/
vhosts
/
dragonoi60086
/
home
/
http
/
src
/
Framework
/
App.php
            $this->middlewares[] = $routePrefix;
        } else {
            $this->middlewares[] = new RoutePrefixedMiddleware($this->getContainer(), $routePrefix, $middleware);
        }
        return $this;
    }
 
    /**
     * @param ServerRequestInterface $request
     * @return ResponseInterface
     * @throws \Exception
     */
    public function handle(ServerRequestInterface $request): ResponseInterface
    {
        $this->index++;
        if ($this->index > 1) {
            throw new \Exception("Aucun middleware n'a intercepté cette requête.");
        }
        $middleware = new CombinedMiddleware($this->getContainer(), $this->middlewares);
        return $middleware->handle($request);
    }
 
 
    /**
     * @param ServerRequestInterface $request
     * @return ResponseInterface
     * @throws \Exception
     */
    public function run(ServerRequestInterface $request): ResponseInterface
    {
        foreach ($this->modules as $module) {
            $this->getContainer()->get($module);
        }
        return $this->handle($request);
    }
 
 
    /**
     * @return ContainerInterface
     */
/
vhosts
/
dragonoi60086
/
home
/
http
/
src
/
Framework
/
App.php
        $this->index++;
        if ($this->index > 1) {
            throw new \Exception("Aucun middleware n'a intercepté cette requête.");
        }
        $middleware = new CombinedMiddleware($this->getContainer(), $this->middlewares);
        return $middleware->handle($request);
    }
 
 
    /**
     * @param ServerRequestInterface $request
     * @return ResponseInterface
     * @throws \Exception
     */
    public function run(ServerRequestInterface $request): ResponseInterface
    {
        foreach ($this->modules as $module) {
            $this->getContainer()->get($module);
        }
        return $this->handle($request);
    }
 
 
    /**
     * @return ContainerInterface
     */
    public function getContainer(): ContainerInterface
    {
        if (!$this->container) {
            $builder = new \DI\ContainerBuilder();
            $env = getenv('ENV') ?: 'production';
            $env = 'dev';
            if ($env === 'production') {
                $builder->setDefinitionCache(new FilesystemCache('ressources/tmp/di'));
                $builder->writeProxiesToFile(true, 'ressources/tmp/proxies');
            }
            foreach ($this->definitions as $definition) {
                $builder->addDefinitions($definition);
            }
            foreach ($this->modules as $module) {
/
vhosts
/
dragonoi60086
/
home
/
http
/
web
/
index.php
        \App\Page\Actions\HomepageAction::class,
        'homepage'
    );
 
    $app->pipe(\Middlewares\Whoops::class)
        ->pipe(\IkonFramework\Middleware\TrailingSlashMiddleware::class)
        ->pipe(\App\Auth\Middleware\ForbiddenMiddleware::class)
        ->pipe(
            $container->get('admin.prefix'),
            $container->get(\IkonFramework\Auth\RoleMiddlewareFactory::class)->makeForRole('admin')
        )
        ->pipe(\IkonFramework\Middleware\MethodMiddleware::class)
        ->pipe(\IkonFramework\Middleware\RendererRequestMiddleware::class)
        //->pipe(\IkonFramework\Middleware\CsrfMiddleware::class)
        ->pipe(\IkonFramework\Middleware\RouterMiddleware::class)
        ->pipe(\IkonFramework\Middleware\DispatcherMiddleware::class)
        ->pipe(\IkonFramework\Middleware\NotFoundMiddleware::class);
 
    if (php_sapi_name() !== 'cli') {
        $response = $app->run(\GuzzleHttp\Psr7\ServerRequest::fromGlobals());
        \Http\Response\send($response);
    }
 

Environment & details:

empty
empty
empty
empty
empty
Key Value
USER dragonoi60086
HOME /vhosts/dragonoi60086/home
SCRIPT_NAME /index.php
REQUEST_URI /artiste/produit/icare-16
QUERY_STRING
REQUEST_METHOD GET
SERVER_PROTOCOL HTTP/1.0
GATEWAY_INTERFACE CGI/1.1
REDIRECT_URL /artiste/produit/icare-16
REMOTE_PORT 44066
SCRIPT_FILENAME /vhosts/dragonoi60086/home/http/web/index.php
SERVER_ADMIN [no address given]
CONTEXT_DOCUMENT_ROOT /vhosts/dragonoi60086/home/http/web/
CONTEXT_PREFIX
REQUEST_SCHEME http
DOCUMENT_ROOT /vhosts/dragonoi60086/home/http/web/
REMOTE_ADDR 127.0.0.1
SERVER_PORT 80
SERVER_ADDR 127.0.0.1
SERVER_NAME dragonoir.ikon-k.com
SERVER_SOFTWARE Apache
SERVER_SIGNATURE <address>Apache Server at dragonoir.ikon-k.com Port 80</address>
PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HTTP_USER_AGENT claudebot
HTTP_ACCEPT */*
HTTP_CONNECTION close
HTTP_X_FORWARDED_FOR 18.232.188.122
HTTP_X_REAL_IP 18.232.188.122
HTTP_HOST dragonoir.ikon-k.com
proxy-nokeepalive 1
REDIRECT_STATUS 200
FCGI_ROLE RESPONDER
PHP_SELF /index.php
REQUEST_TIME_FLOAT 1711648950.8571
REQUEST_TIME 1711648950
empty
0. Whoops\Handler\PrettyPageHandler