php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 22.11.2005, 17:25  
Gast
 
Beiträge: n/a
Standard Denkfehler? Objektorientierte Programmierung...

Hallo

Ich zerbrech mir gerade den Kopp darüber wie man ein Onlinemagazin am besten objektorientiert gestalten kann.

Meine Überlegungen, soweit:

PHP-Code:
class website {
    var 
$title;     // Abweichender <title></title>-Inhalt
    
var $nav_kartei// Aktive Karteikarte (Standard: "Home")
    
var $nav_kartei_sub;    // Aktiver Menüpunkt unter der gewählten Karteikarte (Standard: Der Erste)
    
    
function website($title,$nav_kartei,$nav_kartei_sub) {        // Konstruktor: 
        
$this->html_header($title);
        
$this->kartei_nav($nav_kartei);
        
$this->kartei_nav_sub($nav_kartei_sub);
    }
    
    function 
html_header($title) {
        
// hier wird der Header erzeugt (<HTML><HEAD>...)
    
}
    
    function 
kartei_nav($nav_kartei) {
        
// hier wird die Karteikarten-Navi generiert
    
}
    
    function 
kartei_nav_sub($nav_kartei_sub){
        
// hier wird das Untermenü der Karteikarten-Navi generiert
    
}

mein Plan ist: In jeder Seite erzeuge ich ein Objekt namens website und weise dem Objekt dann Eigenschaften zu, wie z.B. den Header, dem Navi-Menü, dem Untermenü des Navi-Menüs etc.
Die Klasse website soll quasi den Bauplan darstellen, nach dem eine Seite des Onlinemagazins gestaltet werden soll.

Aber irgendwie leuchtet es mir noch nicht ganz ein, wie der Content in das Objekt gelangt, also in die Seite, und wie sich das ganze OOP-Technisch gestalten lässt.

Vielleicht kann mir der eine oder andere OOP-Fuchs* mal behilflich sein. Wäre sehr nett. Stehe auf dem Schlauch.

MfG
FiredUp

*jemand, der Ahnung von der objektorientierten Programmierung hat, und mir nicht nur Links zu Tuts schickt die ich schon kenne :wink:
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 22.11.2005, 19:43  
Erfahrener Benutzer
 
Registriert seit: 08.05.2005
Beiträge: 814
andy
andy eine Nachricht über ICQ schicken
Standard

Irgendwie versteht ich nicht genau was du meinst....

So wähle ich die methode die die einzelne Seite erzeugt:
PHP-Code:
function select(){
        switch(
$_GET['page']){
            case 
"home":      $this -> page_home();      break;
            case 
"links":     $this -> page_links();     break;
            case 
"kontakt":   $this -> page_kontakt();   break;
            default:          
$this -> page_home();      break;
        }
//End of switch
    
}//end of select() 
__________________
Zitat:
Diese Erweiterung ist EXPERIMENTELL.
[...]
Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko..
andy ist offline  
Alt 22.11.2005, 20:08  
Gast
 
Beiträge: n/a
Standard

Es geht um die Struktur an sich. Wie gestaltet man eine Website objektorientiert, wo legt man den Content ab und wie wird er eingebunden etc.

Finde leider keine konkreten Beispiele im Netz. Meine ersten Versuche gehen alle in die Richtung, das ich auch gleich einfach nur Funktionen und Includes nehmen kann und auf das selbe Ergebnis komme. Wollte aber gerade die objektorientierte Programmierung anwenden um das zu lernen.
 
Alt 22.11.2005, 20:09  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Man realisiert ein Projekt nicht mittels einer Klasse. Mehr brauch ich dazu jetzt erstmal nicht sagen.
imported_Ben ist offline  
Alt 22.11.2005, 20:45  
Gast
 
Beiträge: n/a
Standard

Vielen dank auch, Ben.

Beherrscht hier niemand die OOP, oder will mir einfach nur keiner helfen? Wo klemmt es?

Von mir aus hat das Projekt auch 20 Klassen. Mir gehts darum es mittels OOP zu realisieren. Ich versuche herauszufinden, wie ich das anpacke. Auf traditionelle Art wäre das auch gar kein Problem, nur OOP ist eine Sache für sich...

Oder soll ich meine Frage mal bei forum.developers-guide.net stellen? Aufstrebend, kompetent und werbefrei... da kann ich eventuell bessere Antworten von dir erwarten, nehme ich an.
 
Alt 22.11.2005, 21:11  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Zitat:
Zitat von FiredUp
1)Wie gestaltet man eine Website objektorientiert

2) wo legt man den Content ab und wie wird er eingebunden etc.
zu 1) das ist in etwa wie wenn du fragst, male ich Bäume mit Bleistift?
Das ergibt keinen Sinn.

Ich löse es so, dass ich eine HTML-Klasse habe, die ich abstrakt halte.
Eine MyHTML-Klasse die von HTML erbt, aber ein paar projektspezifische
Eigenarten haben kann, wie z.B. für jede Seite eine bestimmte CSS-Datei reinladen etc.

Eine normale Seite erstelle ich dann praktisch so

// home.php
Code:
<?php
$html =& new MyHTML();
$html->addCSS('home.css');
print $html->head('Home');
?>
hier steht mein Content
<?php
print $html->foot();
?>
hier meine Klassen, vielleicht inspiriren sie dich ja in eine Richtung:
class.HTML.php:
http://nopaste.php-q.net/174080
class.MyHTML.php:
http://nopaste.php-q.net/174081
head.tpl:
http://nopaste.php-q.net/174082
foot.tpl:
Code:

</body>
</html>
Zergling-new ist offline  
Alt 22.11.2005, 21:34  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Hi.

Ich bin zwar sicher kein "PHP-Fuchs", aber vielleicht kann ich dich
dennoch ein wenig weiterbringen.

Zunächstmal ist "website" die falsche Übersetzung für eine Webseite im
Sinne einer einzelnen Seite. Page wäre hier eher angebracht. Dann steht
natürlich die Frage nach den konkreten Anforderungen im Raum. Diese
mal meiner Phantasie überlassen könnte das vielleicht so aussehen:

Eine Seite ist bestimmt durch Inhalte, einem Layout und seinem Platz
innerhalb der Website. Die Inhalte lassen sich in versciedene Typen
aufteilen. Im einfachsten gibt es einen Typ "Article", der es Redakteuren
leicht ermöglicht, einen Text mit Überschrift, Aufreißer, Absätzen, Links
und Bildern (etc.) einzufügen. Ein zweiter Typ wäre einfach "HTML", der die
freie Gestaltung einiger anderer Seiten durch fachkundige Hände schnell
ermöglicht.

Folglich wären also schonmal zwei Klassen "Article" und "HTMLPage"
(besserer Name wäre nicht schlecht) geboren, die beide von einer Klasse
"Page" abzuleiten wären, denn beide Seitentypen differieren ja nur in der
Aufmachung und den Bearbeitungsroutinen des Haupt-Inhaltes - andere
Elemene, wie das Grund-Layout, die Navigationselemente, Header und
Methoden zum Rendern des Ganzen sind für beide Seitentypen von der
Struktur her ja identisch.

Nun die Navigation. Hier brauchst du im einfachsten Fall einfach eine
Klasse, die einen Baum abbildet und die quasi die Sitemap abbildet (sei
"Sitemap"). Die übergibst du der konkreten Page-Objektes, damit dieses
dann daraus die Navigation erstellen kann.

In eine Klasse "Site" wäre dann vielleicht noch sinnig. Sie liest die
(Site-weite) Konfiguration aus, erzeugt die Sitemap und angefragte Seiten.

Das wäre mal so in etwa das einfachste Modell ... etwas arg oberflächlich
betrachtet...

Basti
Basti ist offline  
Alt 22.11.2005, 22:35  
Gast
 
Beiträge: n/a
Standard

Vielen herzlichen Dank, Zergling und Basti. Ihr habt mir eine Ecke weiter geholfen. Super!

Also habe ich mal damit angefangen, eine Klasse für die Karteikarten-Navigation zu schreiben, die auch schon gut funktioniert.

Mit einem neuen Objekt als Instanz der Klasse karteikarten_navi() wird der Anfang der HTML-Tabelle erzeugt. Also <TABLE> <TR>. Dann kann man mit der Methode karteikarte_erstellen() jeweils eine Karteikarte erstellen. Man übergibt dabei die Parameter Titel, URL und Aktiv (aktiv = 1 bedeutet, die Karteikarte ist angewählt, also im Vordergrund).
Mit der Methode output() wird alles inkl. Ende der Tabelle durch </TR></TABLE> ausgegeben.

Hier merke ich das erste mal, das die OOP sinn macht.

Das mache ich nun also für alle wesentlichen dynamischen Elemente in der Website die immer wieder auftauchen, und erzeuge innerhalb der Klassen wie Page bzw. Website neue Instanzen von Objekten aus diesen Klassen wie die karteikarten_navi, und bastel so stück für stick ein vollständiges HTML-Dokument zusammen. Stimmt's soweit? :P

@Zergling, was bedeutet das =& in

PHP-Code:
$html =& new MyHTML(); 
? habe es noch nie gebraucht... danke für die Info

MfG
FiredUp
 
Alt 22.11.2005, 22:37  
Gast
 
Beiträge: n/a
Standard

hmm irgendwie ist das Forum k-putt. War ich das etwa?
 
Alt 22.11.2005, 22:39  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von FiredUp
was bedeutet das =&
http://de2.php.net/manual/en/language.references.php
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Biete: PHP/MYSQL/AJax/Javascript Programmierung PhilipW Beitragsarchiv 8 22.04.2009 15:00
Kurze Einführung in Firefox Search Plugin Programmierung PTC Tutorials 5 10.02.2009 01:31
denkfehler? kontrollkästchen in datenbank sanz PHP Tipps 2008 16 08.05.2008 14:48
Inhalte von Array werden nicht ausgegeben ... Denkfehler? maeck PHP Tipps 2007 10 07.05.2007 16:04
PHP Socket Programmierung Broadcast PHP-Fortgeschrittene 19 01.05.2006 21:15
OOP Denkfehler, wie lösen gegenseitiges Zugreifen CC84 PHP Tipps 2006 17 29.03.2006 20:21
Denkfehler bei $_GET PHP Tipps 2005-2 25 28.10.2005 11:55
Stundensatz für PHP Programmierung Off-Topic Diskussionen 2 27.02.2005 18:57
denkfehler mit input-felder PHP Tipps 2005 2 27.02.2005 11:32
[Erledigt] Wer hilft mir bei der Programmierung (PHP) Off-Topic Diskussionen 3 15.11.2004 09:20
[Erledigt] Wer hat das Urheberrecht auf die Programmierung ? Off-Topic Diskussionen 17 27.10.2004 14:30
if Abfrage - Denkfehler medico PHP Tipps 2004 4 05.08.2004 08:53
Programmierung eines WebCalenders für ein Intranet PHP Tipps 2004 2 17.06.2004 11:22

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
objektorientierte website, webseite objektorientiert, objektorientierte webseite, website objektorientiert, php website objektorientiert, php objektorientiert, php objektorientierte navigation, webseiten objektorientiert, php objektorientiert programmieren, webseite objektorientiert programmieren, objektorientierte webseiten, objektorientierter aufbau einer webseite, php webseiten objektorientiert, php objektorientiert navigation, oop programmierung php, webseite objektorientiert php, objektorientierte programmierung fehler, objektorientierte webseiten programmierung php, php karteikarte, php navigation objektorientiert

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:47 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.