[OOP] Controller einbinden

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

  • [OOP] Controller einbinden

    Hallo Leute,
    ich versuche gerade einen Controller in mein im großen und ganzen schon stehenden Script einzubauen. Bekomme aber diese Fehlermeldung:


    Parse error: parse error, unexpected T_REQUIRE_ONCE, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /srv/www/htdocs/Browsergame/Controller.php on line 4

    Ich bin mir eigentlich überhaupt nicht sicher wie es überhaupt mit dem Klassenaufruf in einer Klasse bei PHP aussieht, also ob und wie es überhaupt möglich ist. Wäre also über jede Hilfe wirklich Dankbar.

    Um es vielleicht noch einmal zu erklären. In mein laufendes Programm aus Präsentation und Datenbank Klasse, hab ich jetzt den Auftrag erhalten einen Controller dazwischen zu schalten, dieser ist noch in den Kinderschuhen steckend unten zu sehen.


    <?
    class Controller {

    require_once ("db_class.php");
    private $db = new db_class;



    function Controller_con()
    {
    if(!$rueckg=$this->db->db_class_con())
    {
    echo "Verbindung zum DB-Server zur Zeit nicht m&ouml;glich! Fehlernummer: <BR>".$this->db->db_class_get_last_error()."<BR>";
    }
    else
    {
    return $rueckg;
    }
    }

    function Controller_select_db()
    {
    if(!$rueckg=$this->db->db_class_select_db())
    {
    echo "Auswahl der Datenbank Browsergame zur Zeit nicht m&ouml;glich. Fehlernummer: <BR>".$this->db->db_class_get_last_error()."<BR>";
    }
    else
    {
    return $rueckg;
    }
    }

    function Controller_close_db()
    {
    if(!$rueckg=$this->db->db_class_close())
    {
    echo "Datenbank nicht geschlossen: <BR>".$this->db->db_class_get_last_error()."<BR>";
    }
    else
    {
    return $rueckg;
    }
    }


    function Controller_anmelden($name)
    {

    if (!$passwo=$this->db->db_class_anmelden("Passwort","spieler","Benutzername",$name))
    {
    echo "Anmelden zur Zeit nicht m&ouml;glich. Fehlernummer: <BR>".$this->db->db_class_get_last_error()."<BR>";
    }

    else
    {
    return $passwo;
    }
    }

    // Ende der Klasse Controller
    }
    ?>

  • #2
    Bitte [ PHP ] Tags verwenden.
    PHP-Code:
    require_once ("db_class.php");
    private 
    $db = new db_class
    hat dort überhaupt nichts zusuchen. requiere / include außerhalb der Klasse, private $db; bleibt stehen und $this -> db = new db_class ( ); im Konstruktor. Du solltest dich auf jeden Fall weiter informieren: http://www.peterkropff.de/site/oop/oop.htm
    Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

    Kommentar


    • #3
      PHP-Code:
      <?
      require_once ("db_class.php"); 
      class Controller {
              private $db; 
              $this->db = new db_class;
      So hast du es doch gemeint, oder? Bekomm aber immer noch die selbe Fehlermeldung.

      Kommentar


      • #4
        Klammern ?

        Kommentar


        • #5
          $this->db = new db;

          gehört in den Konstruktor.
          Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
          var_dump(), print_r(), debug_backtrace und echo.
          Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
          Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
          Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

          Kommentar


          • #6
            PHP-Code:
            require_once ( "db_class.php" ); 

            class 
            Controller {

                 private 
            $db;

                 public function 
            __construct ( ) {
                      
            $this->db = new db_class;
                 }


            Informiere dich endlich.
            Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

            Kommentar

            Lädt...
            X