Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Bei Include nur function anzeigen lassen.

Einklappen

Neue Werbung 2019

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

  • #16
    Ich hör mir mal tkausl's Beitrag dazu an.
    Jo, das tu Du mal... Viel was anderes wird da nicht bei rauskommen...
    Competence-Center -> Enjoy the Informatrix
    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

    Kommentar


    • #17
      wenn du dein Projekt jetzt nicht nur zum Lernen umsetzt, sondern es wirklich einem Nutzen hat, dann würde ich dir ein CMS empfehlen.
      Anstonsten würde ich es mal mit einem OOP Ansatz probieren.
      Fatal Error: Windows wird gestartet

      Wie administriert man ein Netzwerk: Beispiel

      Kommentar


      • #18
        Zitat von Unlikus Beitrag anzeigen
        wenn du dein Projekt jetzt nicht nur zum Lernen umsetzt, sondern es wirklich einem Nutzen hat, dann würde ich dir ein CMS empfehlen.
        Anstonsten würde ich es mal mit einem OOP Ansatz probieren.
        CMS?

        heut ist einfach nicht der Tag wo ich lachen könnte, also spart dir deine Witze.

        meine Seite ist schon zu sehr aufgebaut, ich kann die zwei Module nicht einfach so umdrehen.

        Kommentar


        • #19
          Zitat von Arne Drews Beitrag anzeigen
          Wenn Du search.php NACH content.php abarbeitest, wie soll dann content.php wissen, was in search.php herauskommt?! Dreh es um und Du hast auch in content.php über den globalen Scope Zugriff auf die Daten aus search.php!
          Du kannst nicht auf Informationen zugreifen, die du erst später errechnest, wie soll das gehen? Dazu musst du nichtmal Programmierer sein um den Logikfehler zu erkennen. Was anderes als Arne kann ich dir da auch nicht sagen
          [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

          Kommentar


          • #20
            Zitat von 199708897 Beitrag anzeigen
            CMS?

            heut ist einfach nicht der Tag wo ich lachen könnte, also spart dir deine Witze.
            Das sollte kein Witz sein!
            Ich stelle einfach mal eine allgemeine Aussage in den Raum.

            Das Rad sollte auschließlich zu Lernzwecken neu erfunden werden.

            Und da du wohl gerade das Rad neu erfinden willst, will ich dir nur sagen, dass es weniger Arbeit ist es nicht zu tun und es bringt auch noch verdammt viele Vorteile.
            (sicherheit, erweiterbarkeit, support, auch andere werden bei deinem Projekt helfen können,...)
            Fatal Error: Windows wird gestartet

            Wie administriert man ein Netzwerk: Beispiel

            Kommentar


            • #21
              Solche Sachen kann man einigermaßen unkompliziert über eine Art Status-System (wird in etwas sinnvoller umgesetzt auch etwa Hooks genannt) lösen, in dem jedes Modul zu verschiedenen Ausführungszeitpunkten der Anwendung unterschiedliche Anweisungen ausführen kann.

              So kann etwa in einem init-Status ein Modul Werte global bereitstellen, die dann in einem späteren render-Status auch von anderen Modulen genutzt werden können.

              Ich skizziere es mal ganz quick & dirty:

              inc/search.php:

              PHP-Code:
              <?php

              if ($state === 'init') {
                  
              $GLOBALS['myproject']['myvar'] = 'foo';
                  return;
              }



              // Ansonsten HTML-Content rendern. $GLOBALS['myproject']['myvar'] steht dazu
              // dann zur Verfügung

              ?>

              <p>...</p>
              inc/content.php:

              PHP-Code:
              <?php

              if ($state === 'init') {
                  
              // Kein Code benötigt
                  
              return;
              }



              // HTML-Code, der $GLOBALS['myproject']['myvar'] nutzen kann

              ?>

              <p><?=$GLOBALS['myproject']['myvar']?></p>
              index.php:

              PHP-Code:
              <?php

              // Liste und Abfolge der Module

              $modules = array('search''content');



              // Erst Initialisieren, ...

              $state 'init';

              foreach (
              $modules as $module) {
                  include 
              __DIR__ '/inc/' $module '.php';
              }



              // ...dann "echt" rendern

              $state 'render';

              foreach (
              $modules as $module) {
                  include 
              __DIR__ '/inc/' $module '.php';
              }
              myproject ist ein Namespace im $GLOBALS-Array. Wenn man das schon nutzt, sollte man zumindest sein Zeugs mit einem eindeutigen Namensraum versehen, um nicht anderen Komponenten, die auch globale Werte setzen, in die Quere zu kommen.

              Das könnte hier statt $GLOBALS aber auch ein Array sein, das oben in index.php deklariert wird. Darauf komme ich leider jetzt erst, habe aber keine Lust mehr, zu editieren. Ist ja ohnehin nur eine Skizze.

              Kommentar


              • #22
                Wie immer, klasse ausgeführt, mermshaus.
                Das Ganze ändert allerdings nichts an der Reihenfolge, wie Du es ja auch selber definierst:
                Zitat von mermshaus
                PHP-Code:
                // Liste und Abfolge der Module

                $modules = array('search''content'); 
                ...und dazu sagt der TE:
                Zitat von 199708897
                Da muss es schon einen anderen Weg geben...
                Competence-Center -> Enjoy the Informatrix
                PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                Kommentar


                • #23
                  Zitat von Arne Drews Beitrag anzeigen
                  Wie immer, klasse ausgeführt, mermshaus.
                  Das Ganze ändert allerdings nichts an der Reihenfolge, wie Du es ja auch selber definierst:
                  Ich bin mir jetzt nicht ganz sicher, wer von uns beiden was falsch verstanden hat, aber wenn die Module wie in @mermshaus' Example in 2 Stadien durchlaufen, erst init, dann render, dann kann im render-stadium jedes modul auf die im init bereitgestellten Variablen zugreifen, ganz egal in welcher Reihenfolge diese durchlaufen.
                  [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

                  Kommentar


                  • #24
                    Stimmt, das habe ich wohl überlesen. Aber macht das Sinn? Ich denke da bspw. an Redundanz. Und auch gerade in Bezug auf die Gegebenheiten beim TE, werden wohl sicher sowohl in content, als auch in search ein PHP/HTML-Mix enthalten sein. Das würde zu doppelten Ausgaben führen.
                    Wenn man dann anfängt, das ganze umzubauen, kann man's auch gleich richtig machen...

                    EDIT
                    Oh, es scheint zu früh für mich zu sein...
                    Natürlich "fängt" mermshaus doppelte Ausgaben über $state ab, aber dennoch halte ich es für sinnvoller, das ganze komplett anders aufzubauen...
                    Competence-Center -> Enjoy the Informatrix
                    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                    Kommentar


                    • #25
                      Zitat von Arne Drews Beitrag anzeigen
                      Stimmt, das habe ich wohl überlesen. Aber macht das Sinn? Ich denke da bspw. an Redundanz. Und auch gerade in Bezug auf die Gegebenheiten beim TE, werden wohl sicher sowohl in content, als auch in search ein PHP/HTML-Mix enthalten sein. Das würde zu doppelten Ausgaben führen.
                      Wenn man dann anfängt, das ganze umzubauen, kann man's auch gleich richtig machen...

                      EDIT
                      Oh, es scheint zu früh für mich zu sein...
                      Natürlich "fängt" mermshaus doppelte Ausgaben über $state ab, aber dennoch halte ich es für sinnvoller, das ganze komplett anders aufzubauen...
                      @Danke an alle erstmal

                      Ich muss zwar alles umbauen, aber wenigstens habe ich den Fehler jetzt verstanden.

                      Kommentar

                      Lädt...
                      X