Ankündigung

Einklappen
Keine Ankündigung bisher.

MVC im einsatz für ein CMS

Einklappen

Neue Werbung 2019

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

  • MVC im einsatz für ein CMS

    Hallo @alle,

    wir haben grad an der Uni ein projekt die wir gern mit php verwirklichen wollen.
    Erst habe ich ein logische frage :
    - wenn wir ein CMS basiert auf MVC entwicklen wollen :
    wie sollen wir angehen?
    - Ordnern Struktur usw.

    Ich habe mir gedacht mit so n struktur (siehe pic) wäre schon möglich es zu schaffen. Was meint ihr?

    Ich muss dazu sagen wir wollen(werden) keiner Framework benutzen, da wir nicht so viel zeit für Einarbeitung haben.

    Danke
    Angehängte Dateien

  • #2
    Ist deine Muttersprache deutsch? Ich hoffe nicht...

    Deine Fragestellung ist ganz schön allgemein gehalten. Was sollen wir dir darauf antworten? Ist es nur bei mir so, dass die Miniaturansicht der angehängten Grafik größer als die Grafik selbst ist?
    [I]Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)[/I]
    [I]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/I]

    Kommentar


    • #3
      Hi Dennis81,

      ja meine Muttersprache ist nicht Deutsch ich gebe mir aber mühe um es besser zu formulieren.

      Also wir wollen ein ganz einfache CMS erstellen, und dabei die MVC logik benutzen.
      Wie soll man rangehen? es ist ja bekanntlich dass man über ein problem erstmal gedanke machen muss, bevor mit der Programmierung anzufangen.
      Also die Ordner struktur sieht momentan so aus :
      Code:
      ROOT:
      	>Backend
      		>controllers
      		>modeles
      		>views
      	>Frontend
      		>controllers
      		>modeles
      		>views
      	>css
      	>images
      	>js
      	>library
      	index.php
      	init.php
      Die Datenbank ist schon modelliert und wir wollen kein framework benutzen.

      Ideen wie man ein einfaches CMS mit mvc erstellen kann sind willkommen!
      Danke!!

      Kommentar


      • #4
        - Die Anwendungsbeschreibung ist arg allgemein
        - Dateisystemstrukturen sind Geschmackssache. Mich würden jedenfalls x Modelle zu verschiedenen Zwecken in einem Ordner nerven
        - Habt Ihr schon mal mit MVC gearbeitet? Wenn nicht erstmal tun, dann bekommt Ihr einen Einblick
        - Ich würde tunlichst public ressources (CSS, Bilder) und Programmcode auf verschiedene Dateisystemebenen verlagern.
        [COLOR="#F5F5FF"]--[/COLOR]
        [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
        [COLOR="#F5F5FF"]
        --[/COLOR]

        Kommentar


        • #5
          Hi nikosch
          also hier paar punkten
          * Anwendungsbeschreibung
          - News verwalten
          - Benutzer verwalten
          - Artikel verwalten
          * Dateisystemstrukturen
          Genau es ist Geschmackssache, und da ich ein anfänger bin, freue ich mich natürlich auf paar vorschläge.

          *MVC
          Ja wir haben schon mit mvc gearbeitet, aber natürlich sind wir kein profi, und deswegen fragen wir uns ob es sinnvoll ist hier es zu benutzten, wenn ja wie?

          *Okay ich verlagere (Css,bildern) jeweils im Frontend und Backend Ordnern.

          Danke

          Kommentar


          • #6
            So siehst das ganze jetzt aus :

            Code:
            ROOT:
            	>Backend
            		>controllers
            		>modeles
            		>views
                            >templates
                              >css
                              >js
                              >images
            	>Frontend
            		>controllers
            		>modeles
            		>views
                            >templates
                              >css
                              >js
                              >images
            	>library
            	index.php
            	init.php

            Kommentar


            • #7
              IMHO auch nicht besser. Logisch ist das sicher so richtig, praktisch gesehen musst Du die gesamte Pfadtiefe bis zu den Ressourcen so public anlegen (Doc Root) oder umständlich mit .htaccess schützen.
              [COLOR="#F5F5FF"]--[/COLOR]
              [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
              [COLOR="#F5F5FF"]
              --[/COLOR]

              Kommentar


              • #8
                Folgendes habe ich in meinem Root .htaccess :
                Code:
                RewriteEngine on
                RewriteRule ^$ Frontend/ [L]
                RewriteRule ^admin$ Backend/index.php [QSA]
                für die weiterleitung ist das nicht genug??

                Kommentar


                • #9
                  Zitat von 3logy Beitrag anzeigen
                  Ich muss dazu sagen wir wollen(werden) keiner Framework benutzen, da wir nicht so viel zeit für Einarbeitung haben.
                  Ich glaube es dauert wesentlich länger ein eigenes System basierend auf MVC zu programmieren als sich in ein bestehendes Framework einzuarbeiten. Grad wenn ihr noch wenig Erfahrung habt werdet ihr jetzt kaum einschätzen können was ihr später mal brauchen werdet! Und dann fängt das gefrickel an. Entweder wird der Code dann hingepfuscht und keiner Blickt mehr durch oder ihr fangt das alles von neuem zu schreiben.

                  Kommentar


                  • #10
                    hi Flor1an!!

                    Das pikante dran ist : wir wollen ein ganz einfaches werk produzieren wie gesagt : news, benutzer, artikel verwalten(bzw. sehen).

                    Wir haben schon n CMS beispiel aus dem Buch von Herr Mark Lubkowitz geguckt aber :
                    1. das war kein PHP 5 sprich kein OOP
                    2. kein PDO
                    3. wir wollen es mit MVC umsetzen...

                    das beispiel aus dem Buch"Webseiten programmieren und gestalten 3.auflage" hat uns höchstens einem Tag im anspruch genommen.

                    So ist der stand also.

                    Kommentar


                    • #11
                      Zitat von 3logy Beitrag anzeigen
                      wir wollen ein ganz einfaches werk produzieren wie gesagt : news, benutzer, artikel verwalten(bzw. sehen).
                      Grad deswegen. Was ihr alles programmieren müsst um etwas "ganz einfaches" auf die Beine zu stellen. Bei nem fertigen Framework ist alles schon drin ihr müsst euch nicht um die Datenbank kümmern, nicht um den Request/Response, nicht um die Template/Views, Models sind schon da. Ihr braucht eigentlich nur noch die Logik einbauen. Dafür muss man nicht mal sehr tief ins Framework einsteigen.

                      Kommentar


                      • #12
                        Aber wie lernt man selbst dabei? wir wollen schliesslich php lernen, php framework zu benutzen vorrausgesetzt dass man sich schon mit php einigermaßen kennt oder?
                        Ausserdem ist das n gegebene projekt und der Dozent will php und die mvc logik sehen. Das Thema CMS haben wir selber gewählt.

                        Also die struktur ist jetzt so :

                        Code:
                         ROOT:
                        	>Backend
                                    >Framework
                        		>controllers
                        		>modeles
                                        >library
                        		>views
                                        >templates
                                          main.htm
                                          >css
                                          >js
                                          >images
                                      config.php
                                      index.php
                                      init.php
                        	>Frontend
                        	   >Framework
                        		>controllers
                        		>modeles
                                        >library
                        		>views
                                        >templates
                                          main.htm
                                          >css
                                          >js
                                          >images
                                      config.php
                                      index.php
                                      init.php 
                                 .htaccess
                        Ich will mal mit das Frontend anfangen :

                        * Soll ich ein zentrales Template machen mit platzhalter für die views?
                        * Soll ich verschiedene Template head.html; content.html; usw?
                        * index.php soll dann die seite darstellen(main.htm)?

                        Kommentar


                        • #13
                          Ein "View" ist nur eine Ansicht von Daten. Du kannst für ein und dieselben Daten viele verschiedene Views erstellen. Sinn einer View-Klasse wäre es dann, ein Template aus einer möglichen Reihe von Templates zu laden, die Variablen in diesem Template durch Werte zu ersetzen (die Werte müssen der View-Klasse natürlich bekannt gemacht werden) und es dann zu rendern.

                          Das "Model" stellt deine Daten dar - ganz abstrakt. Ob es nun eine Datei ist oder eine Datenbank sei mal dahingestellt, jedenfalls kapselt das Model die Daten ab und überprüft (validiert) Eingabewerte. Es ist für Laden/Speichern verantwortlich

                          Der "Controller" ist derjenige, der Daten und Ansicht verbindet, er enthält die sogenannte "business logic", d.h. die Verarbeitung von Eingaben und das Zusammenstellen von Daten für die Ausgabe, dabei aber nur als Vermittler - den Controller interessiert nicht, wie/wo die Daten herkommen oder gespeichert werden, das ist Sache des Models, auch nicht, wohin die Ausgabe erfolgt - der Controller steuert diese Dinge.
                          Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                          Kommentar


                          • #14
                            Okay ich glaube wenn ich das jetzt hinkriege ist alles selbstvertändlicher danach.

                            Sagen wir mal so... wir wollen im Frontend in der startseite wenn der user die seite aufruft, aktuellen news anzeigen.
                            wir haben ein Controller : newscontroller.php; ein model : newsmodel.php; und ein view : view.php .

                            ich habe als main.html im Ordner /Frontend/Templates folgendes :
                            Code:
                            <!DOCTYPE html>
                            <html xmlns="http://www.w3.org/1999/xhtml">
                                <head>
                                    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
                                    <title><@title@></title>
                                    <link href="css/layout.css" rel="stylesheet" type="text/css" />
                                </head>
                                <body>
                                    <div id="main">
                                        <div id="logo"><@title@></div>
                                        <div id="menu"><@menu@></div>
                                        <div id="left">
                                            <div id="navi"><@navigation@></div>
                                        </div>
                                        <div id="content"><@content@></div><div class="clear"></div>
                                        <div id="right">
                                            <div id="rightpanel"><@rightpanel@></div>
                                        </div>
                                    </div>
                                    <div id="footer">
                                        <p>footer</p>
                                    </div>
                                </body>
                            </html>
                            wie soll denn weiter gehen? wie sollen die nächste schritten erfolgen? an der startseite soll dann die news im "content" stehen.
                            im /Frontend/index.php habe ich erstmals folgendes :
                            Code:
                            <?php
                            define('DS', DIRECTORY_SEPARATOR);
                            define('ROOT', dirname(dirname(__FILE__))); 
                            define('SERVER', $_SERVER['SERVER_NAME']);
                            
                            require_once 'init.php';

                            im init.php sind zurzeit nur die funktionen : stripSlashesDeep(magi_quotes deaktivierung); unregisterGlobals;

                            Kommentar


                            • #15
                              wie soll denn weiter gehen?
                              Du erwartest nicht ernsthaft, dass wir jetzt hier MVC erklären und das mit Euch entwickeln? Der Hinweis auf ein fertiges Framework kam nicht umsonst. Entweder Ihr investiert viel Zeit darin, Euch mit dem Konzept, mit der Umsetzung von MVC auseinanderzusetzen (anscheinend ist das Eure Aufgabe [mit der Betonung auf Eure]) oder Ihr benutzt ein MVC-fähiges Framework.

                              MVC ist nicht eben schnell erklärt, schon gar nicht umgesetzt. Daher kommen ja die Kritiken hier.
                              [COLOR="#F5F5FF"]--[/COLOR]
                              [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                              [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                              [COLOR="#F5F5FF"]
                              --[/COLOR]

                              Kommentar

                              Lädt...
                              X