Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 22

Thema: PHP Klassen Aufbau

  1. #1
    Großmeister(in) Avatar von MyXoToD
    Registriert seit
    07.11.2007
    Ort
    Mainz
    Alter
    24
    Beiträge
    507
    Danke
    0
    Bekam 1 mal "Danke" in 1 Posting

    Standard PHP Klassen Aufbau

    Hallo liebes Forum. Ich hab mich dazu entschlossen meine Seite mal Objektorientiert zu programmieren. Hab aber sofort zu beginn die ersten Schwierigkeite.

    Hier mal mein geplanter Aufbau:

    index.php
    PHP-Code:
    error_reporting(E_ALL);

    include(
    'includes/classes/myxotod.class.php');

    $myxotod = new myxotod
    myxotod.class.php
    PHP-Code:
    class myxotod {
        public function 
    myxotod() {
            include(
    'includes/cfg/config.cfg.php');
            include(
    'includes/classes/datenbank.class.php');
            
    $db = new database;
        }

    Erste Frage: Ist diese Art von Aufbau sinnvoll oder sollte ich das ganze anders machen? Mein problem hierbei ist folgendes:

    In der config.cfg.php ist ein Array, dieses heißt $config. Hier stehen unter anderem die Zugangsdaten zur Datenbank drin. Leider komme ich an diese in der datenbank.class.php nicht dran. In der datenbank Klasse versuche ich folgendes:

    global $config;
    $this->host = $config['host'];

    In $config['host'] scheint aber nichts drin zu stehen. :/
    Kann mir hier jemand weiterhelfen? Vielen Dank
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!
    Don't follow me, I run into walls.

  2. #2
    der/die Göttliche Avatar von jojo87
    Registriert seit
    23.03.2007
    Ort
    Leipzig
    Alter
    30
    Beiträge
    3.131
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: PHP Klassen Aufbau

    Irgendwie macht deine Herangehensweise keinen Sinn.
    Warum legst du die Konfiguration nicht im DB-Object ab?
    PHP-Code:
    include "config.php";
    require_once 
    "database.class.php";
    $db = new Database();
    $db->setConfig($config); 
    Achso: includes in Funktionsaufrufen: Großes Pfui!

  3. #3
    Großmeister(in)
    Themenstarter
    Avatar von MyXoToD
    Registriert seit
    07.11.2007
    Ort
    Mainz
    Alter
    24
    Beiträge
    507
    Danke
    0
    Bekam 1 mal "Danke" in 1 Posting

    Standard AW: PHP Klassen Aufbau

    Vielen Dank für die Antwort. Leider komme ich immernoch nicht ganz weiter.

    myxotod.class.php:
    PHP-Code:
    class myxotod {
        public function 
    myxotod() {
            require(
    'includes/cfg/config.cfg.php');
            require(
    'includes/classes/datenbank.class.php');
            
    $db = new datenbank;
            
    $db->setConfig($config);
        }

    datenbank.class.php:
    PHP-Code:
        public function datenbank() {
            
    $config $this->config;
            
    $this->host $config['host'];
            
    $this->username $config['username'];
            
    $this->password $config['password'];
            
    $this->datenbank $config['datenbank'];
            
    $this->verbindung = @mysql_connect($this->host$this->username$this->password);
            if(!
    $this->verbindung) {
                
    $this->error(4);
            } else {
                if(!@
    mysql_select_db($this->datenbank$this->verbindung)) {
                    
    $this->error(5);
                } else {
                    
    $this->connected true;
                    
    mysql_query("SET NAMES 'utf8'"$this->verbindung);
                    
    mysql_query("SET CHARACTER SET 'utf8'"$this->verbindung);
                    
    $this->query_counter 0;
                }
            }
        }
        
        public function 
    setConfig($config) {
            
    $this->config $config;
        } 
    Leider kommt der Inhalt des $config-Arrays nicht in der Datenbankklasse an
    Wieso sollte ich lieber require statt include verwenden?
    Don't follow me, I run into walls.

  4. #4
    der/die Göttliche Avatar von jojo87
    Registriert seit
    23.03.2007
    Ort
    Leipzig
    Alter
    30
    Beiträge
    3.131
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: PHP Klassen Aufbau

    wollen wir wetten, dass in der Klasse myxotod die Variable $config gar nicht existiert?
    Für Klassen sollte es require_once sein, da das Fehlen einer Klasse meist zum Abbruch der Applikation führen soll.

  5. #5
    Kaiser(in)
    Registriert seit
    29.03.2009
    Ort
    1011 1111 1011 WorldWideWeb
    Beiträge
    2.439
    Danke
    2
    Bekam 6 mal "Danke" in 6 Postings

    Standard AW: PHP Klassen Aufbau

    Das kommt nicht an, weil du im Konstruktor auf die config zugreiffen willst, die du erst danach über setConfig übergibst. Der Konstruktor wird aber schon bei
    PHP-Code:
    $db=new datenbank;
    // btw, new datenbank; geht zwar, halte ich aber für unsauber
    $db=new datenbank(); 
    ausgeführt.
    Schau dir mal OOP in PHP an, hier: http://php.net/manual/de/language.oop5.php

    Zitat Zitat von jojo87 Beitrag anzeigen
    Achso: includes in Funktionsaufrufen: Großes Pfui!
    Wieso? Wenn
    PHP-Code:
    function ladeIrgendwas() {
        include(
    "iwas_mit_infos.php");
        
    $auswerten=$IFNO;

    schreibe, sind die inhalte von iwas_mit_infos.php nur in der Funktion verfügbar - kann doch sein, dass das durchaus im interesse liegt?
    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.
    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  6. #6
    Großmeister(in)
    Themenstarter
    Avatar von MyXoToD
    Registriert seit
    07.11.2007
    Ort
    Mainz
    Alter
    24
    Beiträge
    507
    Danke
    0
    Bekam 1 mal "Danke" in 1 Posting

    Standard AW: PHP Klassen Aufbau

    @jojo87: Im Konstruktor der Klasse myxotod kann ich $config ohne Probleme ausgeben. Es steht auch das drin, was drin stehen soll.
    @Tobse: Hab den Klasse jetzt mal mit "()" erstellt. Das wird aber an meinem Problem leider nichts ändern^^ Ob man jetzt mit include oder require am besten Dinge einbindet sei auch mal so dahingestellt. Ich hab hier eigentlich gerade ein anderes Problem
    Don't follow me, I run into walls.

  7. #7
    Kaiser(in)
    Registriert seit
    29.03.2009
    Ort
    1011 1111 1011 WorldWideWeb
    Beiträge
    2.439
    Danke
    2
    Bekam 6 mal "Danke" in 6 Postings

    Standard AW: PHP Klassen Aufbau

    Hast du meinen Post auch ganz gelesen?
    Probier mal das:
    PHP-Code:
    $db=new datenbank($config);
    // ....
    class datenbank {
              public function 
    __construct($config) {
             
    $this->host $config['host'];
                     
    $this->username $config['username'];
                     
    $this->password $config['password'];
                     
    $this->datenbank $config['datenbank'];
                     
    $this->verbindung = @mysql_connect($this->host$this->username,                   $this->password);
                     if(!
    $this->verbindung) {
                              
    $this->error(4);
                     } else {
                  if(!@
    mysql_select_db($this->datenbank$this->verbindung)) {
                                  
    $this->error(5);
                         } else {
                                  
    $this->connected true;
                                  
    mysql_query("SET NAMES 'utf8'"$this->verbindung);
                                  
    mysql_query("SET CHARACTER SET 'utf8'"$this->verbindung);
                                  
    $this->query_counter 0;
                          }
                 }
        } 
    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.
    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  8. #8
    Forum Guru Avatar von The User
    Registriert seit
    28.10.2007
    Ort
    Zwischen Pazifik und Atlantik...
    Beiträge
    4.044
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: PHP Klassen Aufbau

    __construct benutzen… include in einem Konstruktor macht keinen Sinn, die Objekterzeugung soll irgendwelche Ausgaben erzeugen? Oder sollen Funktionen importiert werden? Beides macht keinen Sinn. Zum Importieren benutze autoloading und require_once. Was soll ein myxotod sein?

  9. #9
    Kaiser(in)
    Registriert seit
    29.03.2009
    Ort
    1011 1111 1011 WorldWideWeb
    Beiträge
    2.439
    Danke
    2
    Bekam 6 mal "Danke" in 6 Postings

    Standard AW: PHP Klassen Aufbau

    Häh? Was der Konstruktor von datenbank machen soll ist doch ganz klar - eine verbindung zur datenbank aufbauen. Wer redet da von includen und ausgeben?
    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.
    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  10. #10
    Unregistriert
    Gast

    Standard AW: PHP Klassen Aufbau

    Was soll das bringen:
    PHP-Code:
    $this->username $config['username'];
    $this->password $config['password'];
    $this->datenbank $config['datenbank']; 
    Das Umschreiben auf eine andere Variable ist sinnlos, genauso wie sich die Daten überhaupt zu merken.

Ähnliche Themen

  1. Klassen auslesen
    Von manfred im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 1
    Letzter Beitrag: 21.09.2007, 22:10
  2. php, klassen und variablen
    Von phore im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 6
    Letzter Beitrag: 27.02.2006, 15:45
  3. Klassen in HTML
    Von J!M! im Forum HTML & CSS Forum
    Antworten: 3
    Letzter Beitrag: 13.11.2005, 00:30
  4. css: klassen
    Von im Forum HTML & CSS Forum
    Antworten: 7
    Letzter Beitrag: 06.11.2005, 21:25
  5. Klassen und Objekte...
    Von coda im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 4
    Letzter Beitrag: 11.09.2005, 15:24

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •