Ankündigung

Einklappen
Keine Ankündigung bisher.

MVC in PHP

Einklappen

Neue Werbung 2019

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

  • MVC in PHP

    Moin,

    ich programmiere gerade eine Anwendung, mit der ich meine Französisch-Kenntnisse verbessern möchte. Es ist eine Art "Online-Vokabelheft", also in der man Vokabeln hinzufügen, bearbeiten und löschen kann. Dabei werden die jeweiligen Beziehungen und die Übersetzung(en) entfernt. Dazu wollte ich das MVC-Entwurfsmuster verwenden. Ich komme aus der Java Welt, dort ist mir dieses Entwurfsmuster schon ein wenig vertraut. Nun frage ich mich aber, wie genau der Controller und der jeweilige View aufgebaut sind. Muss ich für jedes Model einen neuen Controller plus View erstellen? Und wann benutzt man JavaScript? Und falls man es benutzt, gehört es mit in den View?

    Entschuldigt bitte meine newbie Fragen ^^ Ich bin wie gesagt relativ neu in PHP.

  • #2
    Muss ich für jedes Model einen neuen Controller plus View erstellen?
    theoretisch ja, liegt an HTTP.

    Und wann benutzt man JavaScript?
    bei MVC gar nicht, weil's im Browser läuft.

    Kommentar


    • #3
      Zitat von Dormilich Beitrag anzeigen
      bei MVC gar nicht, weil's im Browser läuft.
      MVC wird auch in JavaScript verwendet

      Alles was an den Client/Browser ausgeliefert werden soll kommt in die View.
      "Software is like Sex, it's best if it's free." - Linus Torvalds

      Kommentar


      • #4
        Zitat von JaMa Beitrag anzeigen
        MVC wird auch in JavaScript verwendet
        aber nicht im Kontext dieser Problemstellung

        Kommentar


        • #5
          Moin. Da du ganz konkret nach der Verwendung von JavaScript gefragt hast, hier mal meine Sicht der Dinge: wenn ich eine Web-Anwendung baue, die sehr dynamisch werden soll, nutze ich PHP nur noch als REST-API und setze die gesamte Anwendung mit JavaScript um (in meinem Fall mit AngularJS). Dann erspart man sich diesen PHP-HTML-JS Murks und bewegt sich bei der UI-Entwicklung nur im JS-Kontext.
          [SIZE="1"]Atwood's Law: any application that can be written in JavaScript, will eventually be written in JavaScript.[/SIZE]

          Kommentar


          • #6
            Zitat von lottikarotti Beitrag anzeigen
            Moin. Da du ganz konkret nach der Verwendung von JavaScript gefragt hast, hier mal meine Sicht der Dinge: wenn ich eine Web-Anwendung baue, die sehr dynamisch werden soll, nutze ich PHP nur noch als REST-API und setze die gesamte Anwendung mit JavaScript um (in meinem Fall mit AngularJS). Dann erspart man sich diesen PHP-HTML-JS Murks und bewegt sich bei der UI-Entwicklung nur im JS-Kontext.
            Naja, die Business-Logik der Anwendung läuft dann trotzdem nach am Server. Nur die Präsentationslogik wurde vollkommen auf den Client ausgelagert. Also nix von "gesamter Anwendung".

            Das hängt natürlich auch stark von der Art der Anwendung ab. Wenn es eine Anwendung ist, die ohne Server laufen kann (z.B. eine Bildbearbeitung), dann kann diese auch vollständig am Client laufen. Aber jetzt mal als Beispiel ein Forum, dann ist der Client einfach nur für die Ein- und Ausgabe der Daten zuständig und sonst eigentlich nichts.

            Kommentar


            • #7
              Zitat von hellbringer Beitrag anzeigen
              Naja, die Business-Logik der Anwendung läuft dann trotzdem nach am Server.
              Nicht zwingend. Business-Logik kann durchaus auch clientseitig implementiert werden.

              Zitat von hellbringer Beitrag anzeigen
              Nur die Präsentationslogik wurde vollkommen auf den Client ausgelagert. Also nix von "gesamter Anwendung".
              JavaScript kann doch ein wenig mehr als nur Views darzustellen.

              Zitat von hellbringer Beitrag anzeigen
              Das hängt natürlich auch stark von der Art der Anwendung ab. Wenn es eine Anwendung ist, die ohne Server laufen kann (z.B. eine Bildbearbeitung), dann kann diese auch vollständig am Client laufen. Aber jetzt mal als Beispiel ein Forum, dann ist der Client einfach nur für die Ein- und Ausgabe der Daten zuständig und sonst eigentlich nichts.
              Jo, aber der TE will ja kein Forum bauen
              [SIZE="1"]Atwood's Law: any application that can be written in JavaScript, will eventually be written in JavaScript.[/SIZE]

              Kommentar


              • #8
                Zitat von lottikarotti Beitrag anzeigen
                Jo, aber der TE will ja kein Forum bauen
                Es trifft auch auf 99% aller anderen Webanwendunge zu. Und Online-Vokabelheft klingt jetzt nicht so, als würde man clientseitig Business-Logik brauchen.

                Kommentar


                • #9
                  Zitat von hellbringer Beitrag anzeigen
                  Es trifft auch auf 99% aller anderen Webanwendunge zu. Und Online-Vokabelheft klingt jetzt nicht so, als würde man clientseitig Business-Logik brauchen.
                  In meinem Kontext ist das aber nicht so. Und ich sprach explizit von "meiner Sicht der Dinge" in Bezug auf Anwendungen die "dynamisch werden soll[en]". Ich weiß auch nicht was das mit "99% aller Webanwendungen" zu tun hat

                  Da sich mir ohnehin nicht erschließt worauf genau du eigentlich hinaus willst, lasse ich das Thema nun ruhen

                  Du hingegen kannst dem TE aber gerne konstruktive Vorschläge für die Umsetzung seiner Idee unterbreiten. Wie wäre das?
                  [SIZE="1"]Atwood's Law: any application that can be written in JavaScript, will eventually be written in JavaScript.[/SIZE]

                  Kommentar


                  • #10
                    Macht es Ihm doch nicht so schwer. Der TE wollte wissen, was möglich ist und ist offensichtlich PHP Anfänger.
                    Folgende Unteschiede zu Java gibt es:
                    - Überladungen im Sinne von Java gibt es in PHP nicht, dafür aber default Parameter, die man dann mit if´s abfragen muss
                    - Viele Funktionen, die Java mitbringt gibt es nicht "ab Werk" in PHP oder sind verstreuter in Funktionen aufgeteilt. Deswegen empfiehlt sich bei PHP ein Framework zu benutzen. Das Framework ist bei PHP im Gegensatz zu Java kein Zwang, sondern kann frei gewählt werden. Meine Empfehlung wäre Symfony: Am Anfang schwer zu lernen, aber es beschleunigt die Webentwicklung ungemein. Außerdem bietet es einen starken Profiler für Lau. MVC ist dabei natürlich standard.

                    Nun, wo gibt es MVC? Man sollte hier zwischen Frontend, also den JavaScript/HTML/CSS Teil und dem Backend, der PHP Logik unterscheiden. MVC gibt es prinzipiell für beide. Ob man das auch wirklich im Frontend braucht, hängt von der Größe des Projektes ab. Nicht überall ist z. B. angular erforderlich. Manchmal tut es auch (noch) jQuery. MVC in diesem wird in JavaScript etwas anders verstanden. Das ist also wirklich Framework abghängig. Außerdem gibt es hier auch bessere fürs Frontend geeignete Konzepte, iw das MVVM.

                    Für das Model gibt es im Backend z. B. das ORM Doctrine. Soviel ich weiß ist das stark an Hibernate angelehnt, bzw. ist dessen PHP Implementation. Sollte also ein alter bekannter sein. Seit Doctrine 2 sind dort auch ganz normal Annotations möglich.

                    Das Beste ist hier echt informieren. MVC ist meistens bei Webanwendungen der Standard schlechthin. Ich denke meine Tipps/Anregungen sollten weiterhelfen für einen ersten Überblick.

                    Kommentar

                    Lädt...
                    X