Ankündigung

Einklappen
Keine Ankündigung bisher.

require_once Pfad Probleme

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • require_once Pfad Probleme

    Hallo

    ich versuche nun schon seit einiger Zeit alle meine Klassen, libs- und Funktions-Dateien über require_once überall einzubinden.
    Dazu hab ich eine init.php im Ordner /ProjName/core erstellt, die von allen weiteren Dateien eingebunden werden soll.

    PHP-Code:
    //starts session
    session_start();
    set_include_path ($_SERVER['DOCUMENT_ROOT']);
    define("PATH""/ProjName/");
    $path_var "/ProjName/";
    //requires all classes and libs on use (creation of an object)
    spl_autoload_register(function($class) {
        switch (
    $class) {
            default:
                require_once (
    $path_var.'classes/'.$class.'.php');
                break;
        }
        
    });
    //requires functions
    require_once(PATH.'functions/function.php');
    //usw... 
    die Dateien sind auch alle vorhanden.

    Ich hab hier extra einmal eine Konstante und einmal eine Variable verwendet, da so alle Fehler auftreten, die ich mir nicht erklären kann.

    Notice: Undefined variable: path_var in E:\Programme\xampp\htdocs\ProjName\core\init.php on line 15
    Warum ist die Variable hier nicht initialisiert?! (Netbeans hat mir das auch schon angezeigt, aber ich versteh es nicht).

    Wenn ich dort stattdessen die Konstante verwendet funktioniert es.

    Dafür bekomme ich dann:
    Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 65488 bytes) in E:\Programme\xampp\htdocs\ProjName\functions\funct ion.php on line 16
    Meine function.php sieht so aus:
    PHP-Code:
    <?php
    /**
     * use this similiar to assertions in Java
     * @param type $bool assertion statement
     * @param type $errmsg error message if assertion statement is wrong
     */
    function ass($bool$errmsg){
        if(!
    $bool) {
            
    Error::create(0$_SERVER['PHP_SELF'], "Assertion Error: ".$errmsg);
            die();
        }
            
    }
    ?>
    Die Datei hat nicht mal 16 Zeilen und wenn ich sie einzeln Aufrufe, kommt der Fehler auch nicht. Dementsprechend vermute ich, dass es an der require_once liegt.

    Bin sehr dankbar, wenn mir jemand erklären könnte warum es nicht funktioniert und noch besser wie ich es richtig mache.

    Vielen Dank für jegliche Hilfe!


  • #2
    Warum ist die Variable hier nicht initialisiert?! (Netbeans hat mir das auch schon angezeigt, aber ich versteh es nicht.
    http://php.net/manual/de/language.variables.scope.php

    Kommentar


    • #3
      Danke für den richtigen Link, jetzt hab ich das schonmal verstanden.
      Trotzdem, der zweite Fehler bleibt.

      Kommentar


      • #4
        Schreib mal irgendeine Ausgabe oben in function.php (echo 'foo'; oder so), damit du feststellen kannst, ob dein Hauptscript wirklich diese Datei einbindet.

        Kannst sonst auch mal versuchen, den Dateinamen beim require_once und im Dateisystem auf functionx.php oder so zu ändern. Vielleicht ist es irgendeine Bytecode-Caching-Geschichte, die noch eine alte Version von function.php im Speicher hat (warum auch immer).

        Kommentar

        Lädt...
        X