"CMS" komplett überarbeiten und Web 2.0 fähig machen

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

  • "CMS" komplett überarbeiten und Web 2.0 fähig machen

    Hallo PHP-Freunde!

    Mein CMS, das ich ausschließlich privat benutze, soll überarbeitet werden! Es ist schon einige Jahre alt, schlecht designed und braucht eine Generalüberholung.

    Bisheriger Aufbau:
    Code:
    - root
      + admin
         + install
         + modules 
            + MODUL1
            + ...
         - index.php
      + classes
         - MySQL.class.php
         - ...
      + files
      + lang
      + lib
         + scriptaculous
         + tinyMCE
         + main.lib.js
         + main.lib.php
      + modules
         + MODUL1
         + ...
      + templates
         + default
         + tolles_template
         - ...
      - .htaccess
      - config.php
      - index.php
    Probleme, die dabei auftreten

    Problem #1:
    Die /root/index.php bindet alle Klassen aus dem /root/classes/ ein, sodass die im Contentbereich includeten Dateien davon Gebrauch machen können.
    Da ich teilweise AJAX* benutze, klappt das nicht so ganz, denn jede Datei, die durch AJAX aktualisiert werden soll, muss eigenständig und unabhängig aufrufbar sein.
    Ich müsste also zig Dateien includen und Objekte neu erstellen.

    Problem 2:
    Die Ordnerstruktur ist zwar übersichtlich, aber nicht wirklich gut handzuhaben. Wenn ich jetzt, wie bei #1 beschrieben, in den Templates eine unabhängige Datei erstellen möchte, muss ich erst zig Ordner zurück, sprich: include("../../../../../../...") etc.

    Problem 3:
    Die Module sind momentan nicht komplett unabhängig, da jedes Modul einen Ordner in /root/admin/modules und /root/modules/ benötigt. Außerdem wird die ModulName.class.php in den /root/classes/ Ordner geschoben.

    [list=a][*]Wie würdet ihr das Problem mit den absoluten Pfaden und AJAX lösen?[*]Würdet ihr die System-Klassen in den /classes/ Ordner und modulspezifische in die jeweiligen /modules/ Ordner packen?[/list=a]


    Die neue Version soll folgende Eigenschaften besitzen:
    - gutes Softwaredesign (MVC & OOP)
    - Templates
    - Mehrsprachig
    - Caching
    - Modular erweiterbar

    Für Designpatterns in PHP überlege ich mir ein Buch zu holen. Kennt zufällig jemand ein gutes online Tutorial?

    Bitte kommt jetzt nicht mit "Web 2.0 gibt's garnicht, das ist nur ein Modebegriff" oder "AJAX gibts schon ewig!". Will doch auch nur mit der Zeit gehen.

    Ich hoffe ihr könnt mir ein paar Tipps geben, die eventuell meine Probleme und Fragen lösen können.

    Liebe Grüße
    carapau
    Zuletzt geändert von carapau; 01.07.2008, 12:14.
    Lasst euch nicht lumpen, hoch den Humpen!

  • #2
    Mit auto_loading würdest du viele deiner Probleme erschlagen. Natürlich solltest du trotzdem eine durchdachte Ordnerstruktur wählen. Aber ohne deine Applikation näher zu kennen, kann ich keine konkrete vorschlagen.

    Kommentar


    • #3
      Original geschrieben von onemorenerd
      Mit auto_loading würdest du viele deiner Probleme erschlagen. Natürlich solltest du trotzdem eine durchdachte Ordnerstruktur wählen. Aber ohne deine Applikation näher zu kennen, kann ich keine konkrete vorschlagen.
      Danke für deine Antwort!

      Die Eigenschaften des neuen CMS habe ich oben aufgelistet:
      - gutes Softwaredesign (MVC & OOP)
      - Templates
      - Mehrsprachig
      - Caching
      - Modular erweiterbar
      Was für Informationen brauchst du noch? Es soll ein ganz normales CMS werden, das aber auch bei größeren Communities nicht einknickt. Ein "Alleskönner" halt.

      Edit: Zu auto_loading habe ich bisher noch nichts gefunden. Suche aber weiter.
      Zuletzt geändert von carapau; 01.07.2008, 12:43.
      Lasst euch nicht lumpen, hoch den Humpen!

      Kommentar


      • #4
        Die Features interessieren eigentlich recht wenig, wenn man über eine geschickte Ordnerstruktur nachdenkt. Vielmehr geht es um den Mechanismus, der fürs Laden von Code zuständig ist - Methoden wie load_module() oder use_template().
        Du brauchst jetzt aber keinen Code posten. Ich werde dir auch dann keine konkrete Ordnerstruktur vorschlagen. Die musst du dir schon selbst überlegen.
        Schau dir mal die Vorschläge in Tutorials und Büchern an. Es gibt so ein paar Gemeinsamkeiten, aber auch signifikante Unterschiede. Niemand behauptet, die einzig wahre Ordnerstruktur gefunden zu haben. Die gibts einfach nicht.

        http://www.php.net/manual/de/language.oop5.autoload.php
        Zuletzt geändert von onemorenerd; 01.07.2008, 13:03.

        Kommentar


        • #5
          Original geschrieben von onemorenerd
          ... load_module() oder use_template().
          # Templates laden
          use_template() gibt es nicht bei mir. Es gibt eine Var, die den Ordnernamen des Modules hat. Daraus wird dann der template_path (templates/TEMPLATE_ORDNER/) gebaut.

          # Modul laden
          load_module() gibts in dem Sinne auch nicht. Die Module sind alle im gleichen Ordner und werden über GET Parameter eingebunden (index.php?module=news), sprich: include(modules/$_GET['module']).

          Jedenfalls im Groben.

          Du brauchst jetzt aber keinen Code posten.
          Lasst euch nicht lumpen, hoch den Humpen!

          Kommentar


          • #6
            Original geschrieben von onemorenerd
            ... load_module() oder use_template().
            # Templates laden
            use_template() gibt es nicht bei mir. Es gibt eine Var, die den Ordnernamen des Modules hat. Daraus wird dann der template_path (templates/TEMPLATE_ORDNER/) gebaut.

            # Modul laden
            load_module() gibts in dem Sinne auch nicht. Die Module sind alle im gleichen Ordner und werden über GET Parameter eingebunden (index.php?module=news), sprich: include(modules/$_GET['module']).

            Jedenfalls im Groben.

            Du brauchst jetzt aber keinen Code posten.
            Lasst euch nicht lumpen, hoch den Humpen!

            Kommentar

            Lädt...
            X