• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

catch nie wyłapuje wyjątku

0 głosów
143 wizyt
pytanie zadane 25 marca 2019 w PHP przez Q_Nick Mądrala (5,010 p.)

Witam. Mam taki problem, że catch nie wyłapuje wyjątku, który powinien poinformować o tym, że strona nie została odnaleziona. Podaje całe kody plików:

index.php:

<?php
$config=require __DIR__.'/../config.php';
require __DIR__."/../app/vendor/autoload.php";
require __DIR__."/../app/functions.php";
require __DIR__.'/../app/database/db_connect.php';

use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing;

$request= Request::createFromGlobals();
$routes=require __DIR__.'/../app/routes.php';

$context=new Routing\RequestContext();
$context->fromRequest($request);
$matcher=new Routing\Matcher\UrlMatcher($routes, $context);

$response=new Response();

try{
    extract($matcher->match($request->getPathInfo()), EXTR_SKIP);
    ob_start();

    $db=new db_connect();

    include sprintf(__DIR__.'/../app/controllers/%s.php', explode('::', $_route)[0]);
    call_user_func($_route);

    $response=new Response(ob_get_clean());

}catch (Routing\Exception\RouteNotFoundException $e){
    $response->setStatusCode(404);
    $response->setContent('Brak strony o podanym adresie');

}catch (Exception $e){
    $response->setStatusCode(500);
    $response->setContent('Wewnętrzny błąd aplikacji');
}

$response->send();

routes.php:

<?php
use Symfony\Component\Routing\RouteCollection;
use Symfony\Component\Routing\Route;
$config=require __DIR__.'/../config.php';
$routes= new RouteCollection();

$routes->add('HomeController::index', new Route('/{lang}/home/{method}', array('lang'=>$config['default_lang'], 'controller'=>'home', 'method'=>'index')));
$routes->add('TestController::test', new Route('{lang}/test/test/{arg}', array('lang'=>$config['default_lang'], 'arg'=>'test')));
return $routes;

W teorii, po nie znalezieniu trasy w obiekcie $routes powinien zostać wyrzucony wyjątek, jednak tak się nie dzieje.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
2 odpowiedzi 546 wizyt
pytanie zadane 6 sierpnia 2016 w PHP przez Mavimix Dyskutant (8,470 p.)
0 głosów
2 odpowiedzi 826 wizyt
pytanie zadane 22 listopada 2018 w PHP przez marcolo Obywatel (1,530 p.)
0 głosów
1 odpowiedź 574 wizyt
pytanie zadane 24 maja 2018 w PHP przez OdsetekGlupoty Pasjonat (15,360 p.)

93,604 zapytań

142,529 odpowiedzi

322,997 komentarzy

63,092 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...