1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Fatal error: Uncaught Error: Class [...] not found in [...]

Dieses Thema im Forum "PHP" wurde erstellt von Davicito, 9. Dezember 2016.

  1. Davicito

    Davicito Erfahrenes Mitglied

    Hallo,
    ich habe ein Problem mit Namespaces und Use. Ich bekomme die Fehlermeldung das aus irgendeinem Grund meine Klasse nicht gefunden werden kann.

    Ausgabe der Fehlermeldung:
    Code (Text):
    1. Fatal error: Uncaught Error: Class 'MVC\Includes\HttpRequest\HttpRequest\HttpRequest' not found in /var/www/vhosts/s16956866.onlinehome-server.info/httpdocs/scheduler/index.php:23 Stack trace: #0 {main} thrown in /var/www/vhosts/s16956866.onlinehome-server.info/httpdocs/scheduler/index.php on line 23
    Ordnerstruktur:
    upload_2016-12-9_12-15-26.png

    index.php
    Code (PHP):
    1. <?php
    2.    namespace scheduler;
    3.  
    4.    define('DS', DIRECTORY_SEPARATOR);
    5.  
    6.    use MVC\Controller\FrontController as FC;
    7.    use MVC\Controller\ControllerFileSystemResolver as CFSR;
    8.    use MVC\Includes\HttpResponse\HttpResponse as HttpRes;
    9.    use MVC\Includes\HttpRequest\HttpRequest as HttpReq;
    10.  
    11.    /*include_once(dirname(__FILE__).DS."MVC".DS."Controller".DS."FrontController.php");
    12.    include_once(dirname(__FILE__).DS."MVC".DS."Controller".DS."ControllerFileSystemResolver.php");
    13.    include_once(dirname(__FILE__).DS."MVC".DS."Includes".DS."HttpResponse".DS."HttpResponse.php");
    14.    include_once(dirname(__FILE__).DS."MVC".DS."Includes".DS."HttpRequest".DS."HttpRequest.php");
    15.  
    16.    */
    17.    include(".".DS."MVC".DS."Controller".DS."FrontController.php");
    18.    include(".".DS."MVC".DS."Controller".DS."ControllerFileSystemResolver.php");
    19.    include(".".DS."MVC".DS."Includes".DS."HttpResponse".DS."HttpResponse.php");
    20.    include(".".DS."MVC".DS."Includes".DS."HttpRequest".DS."HttpRequest.php");
    21.  
    22. // Instancen für den Request und Response werden erzeugt. Sie dienen der Server-/Client-Kommunikation.
    23.    $req = new HttpReq\HttpRequest();
    24.    $res = new HttpRes\HttpResponse();
    25.  
    26.    // Eine Instance des FileSystemControllers wird erzeugt und ein StandardUnterkontroller wird übergeben.
    27.    $resolver = new CFSR\ControllerFileSystemResolver('Controller', 'AuthController');
    28.      
    29.    // Nun wird der Froncontroller des MVC-Modells geladen, welches - mitteld Resolver-Objektes - eine Unterkontrollerklasse
    30.    // übergeben bekommt und führt dessen "run"-Methode aus.
    31.    $controller = new FC\FrontController($resolver);
    32.    $controller->run($req, $res);
    33. ?>
    Ich habe mir dazu einige Sachen im Internet angesehen und durchgelesen... stehe aber gerade etwas auf dem Schlauch. Hoffe jemand könnte mir sagen, was ich vielleicht hier übersehen habe.


    Liebe Grüße
     
    Zuletzt bearbeitet: 9. Dezember 2016
  2. Bratkartoffel

    Bratkartoffel gebratene Kartoffel Premium-User

    Hi,

    ein Schuss ins Blaue: Müssten die include's nicht vor den use's stehen?

    Grüsse,
    BK
     
  3. Davicito

    Davicito Erfahrenes Mitglied

    Hi Bratkartoffel,

    wenn ich die includes vor die use's mache, erhalte ich weiterhin die selbe Fehlermeldung

    LG
     
  4. Facebash

    Facebash Grünschnabel

    nach deiner Ordnerstruktur brauchst du wohl eher:

    Code (Text):
    1. use MVC\Includes\HttpResponse as HttpRes;
    2. use MVC\Includes\HttpRequest as HttpReq;
     
  5. Davicito

    Davicito Erfahrenes Mitglied

    @Facebash
    dann würden die Klassen direkt im Includes-Verzeichnis liegen. Sie liegen aber im HttpResponse- und im HttpRequest-Verzeichnis.

    upload_2016-12-9_17-41-51.png
     
  6. Facebash

    Facebash Grünschnabel

    Richtig.....
    Ist schwierig so zu debuggen.
    Am besten verwendest du gleich autoloader...
     
Die Seite wird geladen...