php klassen programmierung

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

  • #16
    Original geschrieben von UzumakiNaruto
    Deklariere statische Klassen
    damit ich den die variablen auch von außerhalb verändern kann?
    static != public/private

    Wie wäre es, einfach einmal bei google was einzugeben?
    Ansonsten bietet php.net und phpbar.de recht gute Tutorials für OOP..

    Kommentar


    • #17
      http://peterkropff.de/site/php/statisches.htm
      public static

      In diesem Fall kann der Wert der Eigenschaft wirklich von jedem und überall geändert werden. Bei dieser Doppelpunkt-Sache (das mit dem komischen Namen) habe ich euch das schon gezeigt. Es ginge auch so:
      deswegen hatte ich gefragt
      Gruß
      Uzu

      private Homepage

      Kommentar


      • #18
        ...nur die Hälfte gelesen, oder das mit dem protected davor nicht verstanden?

        http://www.phpbar.de/w/static

        Edit: Das ganze müsstest du doch aus Java kennen?

        Edit2: Vielleicht noch der Hinweis: Du kannst die Eigenschaft (bei public static) natürlich ändern, aber der eigentliche Punkt ist, dass du darauf zugreifen kannst. Was du dann damit machst, bleibt dir überlassen..
        Zuletzt geändert von Blackgreetz; 05.07.2008, 14:00.

        Kommentar


        • #19
          Original geschrieben von Blackgreetz
          ...nur die Hälfte gelesen, oder das mit dem protected davor nicht verstanden?

          http://www.phpbar.de/w/static

          Edit: Das ganze müsstest du doch aus Java kennen?

          Edit2: Vielleicht noch der Hinweis: Du kannst die Eigenschaft (bei public static) natürlich ändern, aber der eigentliche Punkt ist, dass du darauf zugreifen kannst. Was du dann damit machst, bleibt dir überlassen..
          thx .. der text hinter diesem link war verständlicher ... vllt sollte peter sich seinen text nochmal angucken und evtl. überarbeiten .. den den von peter fand ich nicht ganz so verständlich.
          Gruß
          Uzu

          private Homepage

          Kommentar


          • #20
            PHP-Code:
            function site()
            {
               
            $template_design = new Template($this->_theme_dir."template_design.html");
               
            $template_design->replace("theme_dir"$this->_theme_dir);
               
            $template_design->replace("title"LoadConfig::getData("site_title"));
               
            $template_design->replace("header",  LoadConfig::getData("header"));
               
            $template_design->replace("navi",  $this->navi());
               
            $template_design->replace("footer",  LoadConfig::getData("footer"));
               return 
            $template_design->echo_template();

            darauf wolltet ihr mich hinweisen?!?!?!
            Gruß
            Uzu

            private Homepage

            Kommentar


            • #21
              hi,

              noch eine kleine frage zu OOP

              kann ich mit php irgendwie erkennen, ob in einer PHP-Datei OOP programmiert wurde oder muss ich die Datei einlesen und nach "class" suchen?
              Gruß
              Uzu

              private Homepage

              Kommentar


              • #22
                Einfacher: Mit get_defined_classes() (oder wie das hieß) die bisher definierten Klassen abfragen, dann die fragliche Datei includen und wieder get_defined_classes() machen. Gibt natürlich Ärger, wenn die inkludierte Datei Funktionen ausführt oder Klassen/Funktionen doppelt definiert. In dem Fall hilft tatsächlich nur auf "class" hin überprüfen.

                Kommentar


                • #23
                  http://de.php.net/manual/de/tokenizer.examples.php

                  und dann nach oop-typische Parser Tokens suchen.

                  ps: wozu brauchst du das?

                  Kommentar


                  • #24
                    hi,

                    ich habe mir die "vorschläge" noch nicht angeguckt, das werde ich morgen machen.

                    ich includiere eine php-datei und wenn eine klasse sich darin befindet, wird diese ja nicht automatisch mitgestartet.
                    den objektaufruf in klasse in der datei der klasse zu machen finde ich unschön, da dann ja immer beim include gleich ein objekt davon erzeugt wird.

                    also rausfinden ob die php-datei eine "klasse" ist und dann ein objekt erzeugen.
                    das war mein gedanke dabei.
                    Gruß
                    Uzu

                    private Homepage

                    Kommentar


                    • #25
                      Original geschrieben von UzumakiNaruto
                      ich includiere eine php-datei und wenn eine klasse sich darin befindet, wird diese ja nicht automatisch mitgestartet.
                      den objektaufruf in klasse in der datei der klasse zu machen finde ich unschön, da dann ja immer beim include gleich ein objekt davon erzeugt wird.

                      also rausfinden ob die php-datei eine "klasse" ist und dann ein objekt erzeugen.

                      sorry, ich konnte dir jetzt nicht ganz folgen, aber du wirst das schon machen, ich bin auch ganz zuversichtlich.

                      Kommentar


                      • #26
                        Original geschrieben von 3DMax

                        sorry, ich konnte dir jetzt nicht ganz folgen, aber du wirst das schon machen, ich bin auch ganz zuversichtlich.
                        ich includiere module und wenn ein modul in OOP programmiert wurde, möchte ich gerne ein objekt gleich erzeugen.

                        PHP-Code:
                        class a
                        {
                           
                        #[...]
                        }

                        $a news a(); 
                        das finde ich nicht so gut, ein objekt in der gleichen datei anzulegen.
                        verständlicher??
                        Gruß
                        Uzu

                        private Homepage

                        Kommentar


                        • #27
                          Das ist allerdings nicht das sauberste Konzept. Definiere doch ein Module-Interface, welches jedes Module implementieren muss. Bindest du ein Module ein, muss eine Klasse, die dieses Interface implementiert, definiert werden, welches du anschließend lädst. Als Namenskonvention, damit du den Klassennamen auch kennst, legst du entsprechend auch etwas fest und dann klappt's auch sauber.

                          Kommentar


                          • #28
                            Weißt du denn nicht, was für ein Objekt du erzeugen willst????


                            Ich verstehe auch nicht so recht, was du damit bezwecken willst, eine Datei zu includieren und die soll dann von sich aus ein Objekt erzeugen??? Vor allem würdest du dann doch immer die gleiche Variable nehmen müssen, weil sonst wüsstest du in deinem Script nicht, welche du jetzt ansprechen musst... Und sobald du dann die 2. Datei includest wird diese Variable wieder überschrieben. Ausserdem weißt du nicht, was die Klasse nun genau für Methoden hat!!! Dann kannst du mit dem Objekt doch garnicht effizient umgehen....


                            Eigentlich ist es doch meißt so, dass du ein Objekt erzeugen willst und dann suchen musst, in welcher Datei die Klasse dazu ist...

                            Und dazu gibt es Autoload ....

                            Dann musst du nicht einfach alle Dateien includieren, und dabei Objekte erzeugen, die du hinterher garnicht benötigst.... Damit haust du dir doch den Speicher voll.... Mit Autoload werden die Dateien dann includiert, wenn du die Objekte erstellst und benötigst....
                            Zuletzt geändert von case; 22.07.2008, 09:38.
                            signed oder unsigned... das ist hier die Frage

                            Kommentar


                            • #29
                              ein modul wird einmal pro seitenaufruf includet.

                              diese ganzen randbedingungen sind geklärt.

                              in $_GET['show'] gebe ich das Modul mit (z.b. news)
                              ein blick in die db, ahh die Klasse heißt News und schon könnte ich ein Objekt erzeugen.

                              das problem ist aber, sollte irgendwann mal ein Modul nicht als Klasse programmiert werden, sondern prozedural oder funktionsorientiert, dann läuft das Script gegen die Wand.
                              Gruß
                              Uzu

                              private Homepage

                              Kommentar


                              • #30
                                Wenn das Wörtchen wenn nicht wär, wär mein Vater Millionär. Sorge halt dafür dass der Fall a) nicht eintritt oder b) passe deine Scripte so an, dass das entsprechend abgefangen wird. Beispielsweise eine Factory-Klasse, die dafür sorgt, dass das Modul entsprechend eingebunden wird.

                                Setz dich darüber hinaus aber mit Design Pattern auseinander, insbesondere MVC. Ich denke, dass ist das, was du suchst.
                                [FONT="Helvetica"]twitter.com/unset[/FONT]

                                Shitstorm Podcast – Wöchentliches Auskotzen

                                Kommentar

                                Lädt...
                                X