php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 18.12.2008, 06:55  
Benutzer
 
Registriert seit: 04.11.2008
Beiträge: 41
Jacke befindet sich auf einem aufstrebenden Ast
Standard [SUCHE:] PHP - OOP Aufgabe

Hallo Leute ich habe eine etwas seltsame Frage, kann mir jemand bitte eine Aufgabe geben, welche sich mittels Klassen lösen lässt.
Ich hab mich jetzt OOP von PHP beschäftigt und viele Anleitungen gelesen und die Codes durchgespiel, nun möchte ich gern wissen ob ich wirklich alles verstanden habe.
Dazu bräuchte ich einmal eine Aufgabe, wo leicht zu erkennen ist, dass sich diese mit Klassen besser umsetzen lässt.
Ich hoffe Ihr könnte einem OOP-Einsteiger helfen, schon mal vielen Dank im Voraus.
Jacke ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 18.12.2008, 06:57  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

schreib ne mail mit dem phpmailer
cycap ist offline  
Alt 18.12.2008, 07:08  
Benutzer
 
Registriert seit: 04.11.2008
Beiträge: 41
Jacke befindet sich auf einem aufstrebenden Ast
Standard

Stimmt brauch ich eh, das Problem ich kann es nicht testen. Der Port 25 ist nach außen nicht offen, oder kann ich auch eine Mail an den localhost schreiben, wenn ich ein spezielles Program habe?
Jacke ist offline  
Alt 18.12.2008, 07:10  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Ansonsten bau dir nen schönes PDF mit FPDF oder parse ein XML Dokument mit SimpleXML, das brauchste nichtmal runterladen, is schon dabei
cycap ist offline  
Alt 18.12.2008, 09:49  
Benutzer
 
Registriert seit: 04.11.2008
Beiträge: 41
Jacke befindet sich auf einem aufstrebenden Ast
Standard

Erschein mir nicht gerade einfach, da ich in der Beziehung keinerlei Erfahrung hab, besser wäre etwas bekanntes

Ich hab mir jetzt überlegt, ein Script zu schreiben, in welches man ein Auto aufnehmen kann.

erster Ansatz:

PHP-Code:
<?php

error_reporting
(E_ALL E_STRICT);


// Beispielaufgabe: Autohändler, welcher hauptsächlich VW und Audi im Angebot hat.


    // Folgende Dinge müssen erfüllt sein, damit die Klasse Auto erstellt werden kann.
    
interface Voraussetzung
    
{
       
// public function setArt($Art);  Immer erfüllt da es im Konstruktor steht
       
public function setKraftstoff($wert); 
    }


class 
Auto {        // implements Voraussetzung wird Ignoriert???
    // Deklaration
    
public $Farbe;
    public 
$Türen;
    public 
$Art;        //Jeep, Coupé, etc.
    
public $PS;
    public 
$Kraftstoff;
    
    
// Konstruktor, welche Standardeigenschaften definiert.
    
public function __construct($Farbe "Silber"$Türen5$Art "VW") {
        
$this -> Farbe $Farbe;
        
$this -> Türen $Türen;
        
$this -> Art $Art;
    }
    
    
//Farbe setzen:
    
public function setFarbe($wert) {  // steht string vor $wert --> Fehler
          
$this-> Farbe $wert;  
    }    
    
// Farbe abfragen:    
    
public function getFarbe() {
          return 
"Wagenfarbe: ".$this->Farbe;
    }
    
// Türenanzahl setzen
    
public function setTüren($wert) { // steht int vor $wert --> Fehler
          
$this-> Türen $wert;  
    }    
    
// Türenanzahl abfragen:    
    
public function getTüren() {
          return 
"Anzahl der Türen: ".$this->Türen;
    }
    
// Art setzen
    
public function setArt($wert) {
          
$this-> Art $wert;  
    }    
    
// Art abfragen:    
    
public function getArt() {
          return 
"Es ist ein: ".$this->Art;
    }
    
// PS setzen
    
public function setPS($wert) {
          
$this-> PS $wert;  
    }    
    
// PS abfragen:    
    
public function getPS() {
          return 
"Leisung: ".$this->PS." PS";
    }
    
// Kraftstoff setzen
    
public function setKraftstoff($wert) {
          
$this-> Kraftstoff $wert;  // Klappt implements muss/kann das weg
    
}    
    
// Kraftstoff abfragen:    
    
public function getKraftstoff() {
          return 
"Kraftstoff: ".$this->Kraftstoff;
    }
    public function 
returnInfo() {
        
$info = array();
        
// Array enthält alle Informationen vom jetzigen ($this) Objekt
        
$info['Farbe'] = $this -> Farbe;
        
$info['Türen'] = $this -> Türen;
        
$info['Art'] = $this -> Art;
        
$info['PS'] = $this -> PS;
        
$info['Kraftstoff'] = $this -> Kraftstoff;
        
        return 
$info;
    }

}

class 
VW extends Auto {
}

$Auto1 = new Auto;
$Auto1 -> setFarbe("Blau");
$Auto1 -> setTüren(3);
// $Auto1 -> setArt("VW");  Da VW ein Standardwert ist muss es nicht angegeben werden
$Auto1 -> setPS(120);
$Auto1 -> setKraftstoff("Diesel"); 


if (isset(
$Auto1) and ($Auto1 instanceof Auto)) {
    echo (
"Das Objekt Auto1 existiert<p>");
}

    
// Alle Informationen des Objekts Auto1 ausgeben:
$Auto1_info $Auto1 -> returnInfo();

foreach(
$Auto1_info as $key => $unit) {
    echo (
$key.": ".$unit."<br>");
}
    

?>
Ist das Vernünfig? Man kann eigentlich das ganze bis hier hin auch mit einer MySQL DB realisieren. Ich verstehe es mit den Klassen eigentlich, nur hat es bei mir noch nicht ganz KLICK gemacht, wo der entscheidende Vorteil liegt.

Mal eine Frage könnte ich meine 2. Klasse:
PHP-Code:
class VW extends Auto {

eigentlich auch anders nennen, indem ich den Namen von der ersten Klasse ziehe, ich meine es in etwa so:
PHP-Code:
class Auto::Art extends Auto {

Oder kann man nur innerhalb der Klassen über Vererbung und
PHP-Code:
parent:: 
drauf zugreifen?
Aber da nicht
PHP-Code:
protected 
sondern
PHP-Code:
public 
steht müsste es doch gehen, oder?

Geändert von Jacke (18.12.2008 um 09:57 Uhr).
Jacke ist offline  
Alt 18.12.2008, 09:55  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Das Problem kenn ich gut: http://www.php.de/php-einsteiger/449...er-praxis.html schon etwas älter der Thread, aber vielleicht hilft er dir ja
cycap ist offline  
Alt 18.12.2008, 11:48  
Benutzer
 
Registriert seit: 04.11.2008
Beiträge: 41
Jacke befindet sich auf einem aufstrebenden Ast
Standard

Habe mir den Beitrag mal durchgelesen, schade das er schon so schnell zuende war.
Wie hast du dich damals entschieden? Für DB ist OOP wohl nicht notwendig, aber ein schönes Beispiel, wo ich den Nutzen deutlich sehe, fehlt mir immer noch.
Mir geht es wie dir damals, welche der zahlreichen Bücherhinweise haben dir geholfen?

Von wem ist die Seite adventure-php-framework.org eigenlich? Klar sehe ich im Impressum Christian Achatz und Alexander Schmidt. Ist einer etwa dr.e. oder phpdummi??
Jacke ist offline  
Alt 18.12.2008, 11:56  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Unser doktor hat da seine Hände im Spiel ;)

Hmm nen schönes Beispiel... ma schaun ob da noch jemand was hat... der Nutzen steht wohl mehr im kompletten Projekt, da ist es schwer nen kurzes Beispiel zu finden was einem das richtig vermittelt...

Was mich sehr beeindruckt hat sind die Möglichkeiten die man durch die Zend::DB Klasse bekommt... du brauchst keine Querys mehr selber schreiben, du bringst Zend Framework (ist ja auch OOP) nur einmal deine Datenstruktur bei und der joint alles von allein wie du es gerade brauchst
cycap ist offline  
Alt 18.12.2008, 13:13  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Slava war lange nicht hier?

Auf jeden Fall, projektbezogen lernt man OOP schnell zu schätzen. Habe aktuell mit Redaxo CMS zu tun, die vieles noch prozedural machen und dessen gesamte Struktur auch dazu verführt. Trotzdem schreibe ich mir jetzt Klassen, weil ich nicht mag, dass meine in irgendeinem Template definierten Variablen im globalen Scope herumspuken und wer weiß was beeinflussen. Zudem mag ich die Form, wie man Methoden über Ihr Objekt anspricht - da hat man sofort einen Bezug zur Aktion, die man vornimmt, wie man Objekte weitergeben und in anderen Objekten bündeln kann. Spezialisierung, Verwaltung von Ressourcen inkl. ihrer Zugriffsmethoden...
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--

Geändert von nikosch (18.12.2008 um 13:17 Uhr).
nikosch ist gerade online  
Alt 18.12.2008, 14:08  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Zitat:
getTüren()
Wichtig ist auch, dass eine gewisse Form von Namenskonvention eingehalten wird. getDoors() klingt doch auch schön, oder?
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
 


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
MVC vs. herkömmliches OOP stayInside PHP Tipps 2008 5 26.11.2008 22:47
[Suche] PHP-Entwickler sucht Platz in einer Free-Community citric acid Beitragsarchiv 4 24.11.2008 21:29
Projekt sucht für Teilbereiche Schüler o.ä. für PHP OOP Entwicklung gegen Bezahlung mrmojo Beitragsarchiv 0 20.11.2008 23:41
OOP in JavaScript Chriz Off-Topic Diskussionen 26 23.10.2008 08:40
Buch OOP pcschröda Software-Design 17 12.10.2008 10:33
Brauche dringend Hilfe, Aufgabe fürs Studium (Upload-Script trivial Beitragsarchiv 23 23.06.2005 16:25
[Suche] Browser-Games mit Highscore-Funktion Beitragsarchiv 4 10.03.2005 09:13
[Suche] Coder für neue Suchmaschine! Beitragsarchiv 5 06.03.2005 19:55
[SUCHE] WYSIWYG Editor phpfortgeschrittener Beitragsarchiv 6 04.03.2005 14:24
[Suche] Coder für einfache (statische) Seite Beitragsarchiv 8 10.02.2005 16:32
[Suche] Übersetzer für Inhalte einer Java-FAQ imported_Ben Beitragsarchiv 29 10.02.2005 14:16
[suche] MA(M)P Basti Beitragsarchiv 0 31.01.2005 09:27
Brauche idee wie ich eine Aufgabe realisiere! PHP Tipps 2004 14 07.10.2004 17:45
[Suche] liebevolle Seiten im Netz Off-Topic Diskussionen 10 22.07.2004 13:22

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php oop aufgaben, php oop praxis, oop php praxis, php oop übungsaufgaben, php oop auto, php übungsaufgaben oop, http://www.php.de/php-tipps-2008/49906-suche-php-oop-aufgabe.html, oop aufgabe, php oop übungen, oop php übungen, aufgabe php oop, php oop aufgabe, oop beispiele php, php oop auto aufgabe, php objektorientiert aufgaben, klausur oop php, oop Übungsaufgaben, php aufgaben oop, oop in php auto, aufgaben zur oop php

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:35 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