Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Klasse erbt nicht?

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Klasse erbt nicht?

    Guten Tag liebe Community.
    Ich habe derzeit ein kleines Problem, meine Klasse will einfach nicht von einer anderen Klasse erben.
    Ich bin dabei ein kleines Routing-System zu erstellen, dazu wird mit MVC gearbeitet.

    Ich habe alles in der index.php required, leider funktioniert das nicht so ganz in den Klassen, wie ich es mir vorgestellt habe.
    Mein IndexController.php:
    Code:
    <?php
    namespace Joy\Controllers;
    use Joy\Classes\MVCClass\ControllerClass as Controller;
    class IndexController extends Controller  {
      public function Main() {
        echo "test";
      }
    }
    Bekomme folgenden Error, obwohl:
    Fatal error: Class 'Joy\Classes\MVCClass\ControllerClass' not found in /Applications/XAMPP/xamppfiles/htdocs/joy/controllers/IndexController.php on line 4
    Wenn ich sie in der Klasse require, bekomme ich als Fehlermeldung:

    Fatal error: Cannot redeclare class Joy\Classes\MVCClasses\ControllerClass in /Applications/XAMPP/xamppfiles/htdocs/joy/classes/mvcclasses/controllerclass.php on line 3
    Weil ich schon ControllerClass.php in der Index.php required habe. Wieso kann ich in Gottesnamen die Klasse nicht erben, wenn PHP mir schon so einen Müll ausspuckt?

    MfG.
    Dir gefällt mein Beitrag, ich habe Dir geholfen?
    Bewerte mich doch einfach!


  • #2
    Guck nochmal auf die Namespaces der beiden Fehlermeldungen, die sind unterschiedlich.

    Gewöhn dich langsam mal an Autoloader und Composer, dann kannst du dir das ganze requiren sparen und vielen Fehlern aus dem Weg gehen.
    Da du ohnehin schon mit PSR-0-Kompatiblen Pfaden arbeitest sollte der Umstieg nicht allzu schwer sein.
    Zitat von nikosch
    Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

    Kommentar


    • #3
      Zitat von tkausl Beitrag anzeigen
      Guck nochmal auf die Namespaces der beiden Fehlermeldungen, die sind unterschiedlich.

      Gewöhn dich langsam mal an Autoloader und Composer, dann kannst du dir das ganze requiren sparen und vielen Fehlern aus dem Weg gehen.
      Da du ohnehin schon mit PSR-0-Kompatiblen Pfaden arbeitest sollte der Umstieg nicht allzu schwer sein.
      Habs in "Classes" umgeändert, wobei ich immer noch die gleiche Fehlermeldung erhalte. Derzeit möchte ich mich erstmal so rumschlagen, bevor ich einen Autoloader oder gar einen Composer nutze. :P

      MfG.
      Dir gefällt mein Beitrag, ich habe Dir geholfen?
      Bewerte mich doch einfach!

      Kommentar


      • #4
        Zitat von NecmiH Beitrag anzeigen
        Derzeit möchte ich mich erstmal so rumschlagen, bevor ich einen Autoloader oder gar einen Composer nutze. :P
        Na du siehst ja wozu das führt. Prüfe deine Ordnerstruktur, prüfe deine Namespaces, prüfe deine Datei- und Klassennamen. Irgendwo dort liegt der Fehler.
        Zitat von nikosch
        Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

        Kommentar


        • #5
          Zitat von tkausl Beitrag anzeigen
          Na du siehst ja wozu das führt. Prüfe deine Ordnerstruktur, prüfe deine Namespaces, prüfe deine Datei- und Klassennamen. Irgendwo dort liegt der Fehler.
          Hab den Fehler mit einem guten Freund gelöst, lag wohl doch an dem Namespace und irgendwie an dem Pfad. Bin echt verwirrt.

          MfG.
          Dir gefällt mein Beitrag, ich habe Dir geholfen?
          Bewerte mich doch einfach!

          Kommentar


          • #6
            Dein Namespace heißt Joy\Classes\MVCClasses und nicht Joy\Classes\MVCClass

            Kommentar


            • #7
              Derzeit möchte ich mich erstmal so rumschlagen, bevor ich einen Autoloader oder gar einen Composer nutze.
              Das ist wirklich keine gute Idee. Dann hast du am Ende zig require_once-Zeilen (oder so was) in deinem Code, obwohl es bei einer sinnvollen Verzeichnisstruktur prinzipiell ein Dreizeiler in der index.php tun würde.

              Siehe zum Beispiel:

              - http://www.php.de/813858-post16.html
              - http://www.php.de/814688-post24.html

              Kommentar


              • #8
                Witzig. Früher haben sich alle über akretschmars Feldzug für postgres aufgeregt und jetzt missionieren alle für diverse Produkte und Konzepte. Composer, PSR-X, Angular...
                Lasst die Leute doch erstmal die Grundlagen begreifen, bevor Ihr ihnen gleich drei Abstraktionslayer aufschwatzt.
                --

                „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                --

                Kommentar


                • #9
                  Stimme dir teilweise zu, nikosch. Aber einer der Hauptunterschiede ist, das z.B. PSR-X nur Konvention und leicht umzusetzen ist, während man unter Umständen an das DBMS gebunden ist. Bei MySQL wären das vermutlich nicht die Features, weil es da wohl fast nichts gibt was andere Datenbanken nicht auch (ähnlich) können, sondern die Verfügbarkeit auf Shared Webspace etc.
                  Allerdings muss ich zustimmen das es für das Verständnis sicher vorteilhafter ist das mal "per Hand" zu machen.

                  Kommentar

                  Lädt...
                  X