Ankündigung

Einklappen
Keine Ankündigung bisher.

MVC Methode oder lieber doch nicht?

Einklappen

Neue Werbung 2019

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

  • MVC Methode oder lieber doch nicht?

    Moin Leute,

    ich frage mich gerade, ob ich für meine Projekte MVC oder meine eigene Methode nehme.

    MVC - Struktur
    PHP-Code:
    classes
       
    model
       
    controller
       
    view
           
    footer.php
           
    header.php
           
    - ...
       - 
    Database.php
    images
    css
    js
    index.php 
    hier ist das MVC System nochmal beschrieben


    Meine Struktur sieht so aus:
    PHP-Code:
    + class
       - 
    Database.php
       
    alle anderen Klassen, die ich verwende
    modul
       
    login
       
    dashboard
       
    user
    other
       
    css
       
    images
       
    js
    index.php 
    Per URL erfahre ich, welches Modul und welche Datei ich gerade sehen möchte. Ich verwende dabei die ob_ Funktionen von PHP.

    Was meint ihr? Kann ich meins weiter verwenden oder sollte ich lieber zur MVC Methode umsteigen?


  • #2
    Die Ordnerstruktur ist sowas von egal. Nutze die, die du für übersichtlicher hällst!

    Ich würde dir empfehlen: nutze einfach ein vorhandenes Framework!

    Kommentar


    • #3
      Was spricht gegen "MVC"? (In welcher Ausprägung auch immer.)
      An Hand von ein paar Ordnern kann man da keine Entscheidung treffen.

      Aber: Probier's eben aus, wenns um nicht viel geht. Best Practices werden deswegen angewandt, weil viele Leute eben finden das es so am besten ist, nicht weil es jeder so macht wird eine Technik als "gut" angesehen. Wenn du also der Meinung ist dein Ansatz ist besser, dann probiers aus und schau auf welche Probleme du stößt. Wenn er so vorteilhaft ist, werden wir das in ein paar Jahren alle so machen.

      Kommentar


      • #4
        Bei dem jetzigen Projekt von einer Firma habe ich eine Grundvorlage bekommen. Für mich ist diese ein bisschen zu Komplex aufgebaut, da ich zwischen A B C (Model, Controller, Viewer) immer switchen muss während ich bei meiner Struktur nur die eine Datei habe und die dazugehörige Klasse habe. (Also beim programmieren) Ich arbeite das erstemal mit MVC, vllt liegt es einfach deswegen dran^^

        Kommentar


        • #5
          Ohne zu wissen was deine Vorgaben sind und was genau du bauen sollst, kann man auf deine Frage nur mit "Ja, und gleichzeitig: Nein." anworten.
          [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

          Kommentar


          • #6
            Das MVC-Konzept schreibt meines Wissens nach nicht vor, wie eine Ordnerstruktur dazu aussehen muss. Klar liegt es nahe, eigene Verzeichnisse für Models, Controllers und Views (Templates) anzulegen. Aber du könntest auch alles in einem Ordner werfen.

            Deine derzeitige Ordnerstruktur kann also auch für MVC genutzt werden, wobei es dann naheliegend wäre, sie wie folgt zu erweitern:
            Code:
            + classes
               + models
               + views
               + controllers
               - Database.php 
               - alle anderen Klassen, die ich verwende 
            + modules
               + login
                  + models
                  + views
                  + controllers
               + dashboard
                  + models
                  + views
                  + controllers
               + user 
                  + models
                  + views
                  + controllers
            + other 
               + css 
               + images 
               + js 
            - index.php
            Aber wie gesagt die Ordnerstruktur ist das eine, deine Anwendung das andere.

            Kommentar


            • #7
              Zitat von Jumper93 Beitrag anzeigen
              da ich zwischen A B C (Model, Controller, Viewer) immer switchen muss während ich bei meiner Struktur nur die eine Datei habe und die dazugehörige Klasse habe.
              Wenn du die Verantwortlichkeit von Controller, Model und View in einer Datei/Klasse dabei hast, ist das ziemlich sicher NICHT besser als MVC. Die Trennung ist zwar anfangs etwas aufwändiger, beim Änderungen oder Fehlersuche sparst du die Zeit aber zehnfach wieder ein.

              Kommentar


              • #8
                Hallöchen,

                ach, wenn wir schon bei Ordnerstrukturen sind. Ich mache das meistens in etwa so:
                Code:
                + config
                    - app.config.php
                    ...
                + migrations
                    ...
                + src
                    + Project
                        + Controller
                            - IndexController.php
                        + Model
                        + View
                        ...
                + tests
                    + Project
                        + Controller
                            - IndexControllerTest.php
                + vendor
                    (..)
                    - autoload.php
                + var
                    + cache
                    + logs
                    + user
                    ...
                + web
                    + css
                    + img
                    + js
                    .htaccess
                    index.php
                composer.json
                gruntfile.js
                makefile
                phpunit.xml.dist
                ..
                Das variiert natürlich stark, je nach Projektumfang. Bspw. unterteile ich den src-Ordner gerne in weitere Verzeichnisse (eines je Modul), auf welche der Autoloader anschließend angesetzt wird. Ist aber reine Geschmackssache und vom Kontext abhängig und hat .. ich will es auch mal sagen .. mit MVC nichts zu tun.

                Viele Grüße,
                lotti

                Kommentar


                • #9
                  Zitat von Tropi Beitrag anzeigen
                  Wenn du die Verantwortlichkeit von Controller, Model und View in einer Datei/Klasse dabei hast, ist das ziemlich sicher NICHT besser als MVC. Die Trennung ist zwar anfangs etwas aufwändiger, beim Änderungen oder Fehlersuche sparst du die Zeit aber zehnfach wieder ein.
                  Zeigt PHP nicht direkt an wo der fehler ist?
                  Thema ändern: ich kann eine weitere Klasse machen wo nur die SQL befehle wären (vererbung)^^ wäre ja dann aber wieder das mvc prinzip nur mit 2 klassen xD

                  Kommentar


                  • #10
                    Nee, wärs nich.
                    --

                    „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


                    • #11
                      stimmt... meine klassen steuern keine view_seiten.php

                      Kommentar


                      • #12
                        Schau dir mal an wofür SOLID steht. Und dann schau vor allem ob du das S und das O umsetzt. Es gibt auch genug Erklärungen mit Beispielen dazu - daher lass ich das an dieser Stelle mal weg. Aber einer Klasse mehrere Verantwortlichkeiten zu geben ist nicht gut. Lies dich dazu ein, wenn du was größeres vor hast, kommst du unweigerlich daran vorbei.

                        Kommentar


                        • #13
                          Ob eine Klasse nun mehr kann als eines in MVC bezweifle ich^^

                          Ich verwende für jedes Modul eine Klasse, sprich mein Modul Login hat eine Klasse namens Login.
                          Wenn ich bei meinen jetzigen Projekt (basiert auf der MVC Methode) so gucke ist das im grunde nichts anderes.

                          Kommentar


                          • #14
                            Zitat von Jumper93 Beitrag anzeigen
                            Ob eine Klasse nun mehr kann als eines in MVC bezweifle ich^^

                            Ich verwende für jedes Modul eine Klasse, sprich mein Modul Login hat eine Klasse namens Login.
                            Wenn ich bei meinen jetzigen Projekt (basiert auf der MVC Methode) so gucke ist das im grunde nichts anderes.
                            Und nochmal - egal nach welcher Methode du programmierst: die Ordnerstruktur ist vollkommen egal.

                            Viel wichtiger ist das SOLID Prinzip verstanden und umgesetzt zu haben (wie Tropi bereits geschrieben hat)!

                            Schau dir doch einfach mal bestehende Frameworks an - diese haben meistens ganz gute Beispiele und schlagen meistens eine Ordnerstruktur vor.

                            Kommentar


                            • #15
                              Vergess Ordner, denk in Objekte. Wie du das später speicherst kannst du dank Namespacing, Aliase und Autoloading immer noch verändern.
                              [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

                              Kommentar

                              Lädt...
                              X