Portal > Foren > Ankündigungen, News und Feedback > Tutorials > Literatur > Professionelle PHP 5-Programmierung, ein PHP-Buch für Fortgeschrittene
Antwort
 
Themen-Optionen
Alt 27.07.2006, 09:01 Nach oben    #21
Benutzer
 
Registriert seit: 31.12.2005
Beiträge: 90
Standard

Jop, da muss ich dir zustimmen. Und obwohl ich das Buch habe, lese ich weiter in deinem Bericht
björn ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 27.07.2006, 11:02 Nach oben    #22
Benutzer
 
Registriert seit: 31.12.2005
Beiträge: 90
Standard

Aso, hier nochmal eine kleine Anmerkung:

http://forum.developers-guide.net/sh...0188#post30188

Zitat:
Der eigentlich recht simple Begriff der Kapselung im Speziellen die Nutzung der modifier wird hier etwas wirr beschrieben.
Zitat:
Sie können Methoden, die nicht "public" sind, bedenkenlos verändern (refactoring), ohne die Gefahr Programme zu zerstören, die auf dieser Klasse aufbauen. Private Methoden können Sie ungestraft verändern. Die Veränderung von "protected" Methoden verlangt mehr Sorgfalt, da hier vermieden werden muss, dass vererbte Klassen (subclasses) zerstört werden.
Kurzum: Hä?
Also ich verstehe das eigentlich. Er sagt, dass man Methoden einer Klasse, die 'public' sind, nicht unbedingt verändern darf / sollte, 'private' Methoden können sehr leicht verändert werden, und 'protected' Methoden sollte man mit Vorsicht ändern, da dann evtl die Funktionalität der erbenden Klasse zerstört wird.

Beispiel:

PHP-Code:
<?php
class Foo 
{
    private 
$name;
    private 
$IO;
    
    public function 
__construct($name)
    {
        
$this->name $name;
    }
    
    public function 
hello()
    {
        return 
'hello ' $this->name '!';
    }
    
    public function 
saveName()
    {
        
$this->save();
    }
    
    private function 
save()
    {
        
// Hier ist es nun egal, wie du 'save' veränderst, 
        // solange sie die eigentliche Funktionalität beibehält.
        
        // also entweder so:
        
if($fp fopen('file.db''a+')) {
            
fputs($fp$this->name);
            
fclose();
        }
        
        
// oder so:
        
$this->IO = new IO('file.db');
        
$this->IO->put($this->name);
        unset(
$this->IO);
        
        return 
true;
    }
}

$bla = new Foo('Ben');
echo 
$bla->hello();
$bla->saveName();
Dabei ist es egal, welche Version du in save() nutzt!
Falls sich der Rückgabewert ändern würde, dann wäre es auch nicht so schlimm, dann würdeste einfach ne andere Methode der Klasse auf diesen Rückgabewert abstimmen.
Würde es sich um eine protected Methode handeln und der Rückgabewert würde verändert werden, dann wäre es ein wenig schlimmer, da Du ja nicht weißt, ob die erbenden Klassen dann mit dem neuen Rückgabewert immernoch funktioneren (wenn du z.B. von false auf null umsteigst, und eine erbende Klasse folgendes Konstrukt nutzt: if(parent::save() === false) { ...}), das würde dann nicht mehr funktionieren.
björn ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 27.07.2006, 13:34 Nach oben    #23
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.471
Standard

Jup, Waq hatte mich auch schon mal darauf hingewiesen. Habe es mittlerweile begriffen.
Ich verlinke das hier mal.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 27.07.2006, 17:15 Nach oben    #24
Benutzer
 
Registriert seit: 31.12.2005
Beiträge: 90
Standard

Ich habe mal ne Frage zu dem Buch. In Kapitel 2 wird doch einiges über OOP geschrieben.
Irgendwie verstehe ich dort einiges nicht so ganz, aber kann ehrlich gesagt nicht so gut beschreiben, was ich nicht so richtig verstehe :X

Z.B. auf Seite 90 / 91,. Dort geht es um den Iterator.
a) Was genau sind die Vorteile?
b) Warum wird in der Funktion next() $this zurückgegeben? Müsste nicht der nächste Index bzw. das nächste Element zurückgegeben werden?
björn ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 27.07.2006, 17:31 Nach oben    #25
Dejan Spasic
 
Benutzerbild von dejan_spasic
 
Registriert seit: 05.01.2006
Ort: Düsseldorf
Beiträge: 169
Standard

Zitat:
Zitat von björn
Z.B. auf Seite 90 / 91,. Dort geht es um den Iterator.
a) Was genau sind die Vorteile?
http://www.phpforum-4all.de/thread.php?threadid=2778
Iteratoren
__________________
Da wir alle in einem Boot sitzen, ist es gut, dass wir nicht alle auf einer Seite stehen... (mir unbekannt)

Geändert von dejan_spasic (27.07.2006 um 17:36 Uhr).
dejan_spasic ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 31.07.2006, 11:49 Nach oben    #26
Benutzer
 
Registriert seit: 31.12.2005
Beiträge: 90
Standard

Ok danke, aber ich habe nun noch eine Frage.
Und zwar zum Kapitel 6, Unit Tests:
wie will man Beispielsweise große Klassen testen, die Dateien schreiben oder Bilder verändern?
björn ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 31.07.2006, 16:53 Nach oben    #27
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.471
Standard

Ich denke, dass du das auch sicherlich als eigenständigen Thread ansehen kannst.
Eröffne doch bitte einen entsprechenden im PHP-Forum.

Danke.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 31.07.2006, 22:50 Nach oben    #28
Benutzer
 
Registriert seit: 31.12.2005
Beiträge: 90
Standard

Ok, dann hätte ich noch ne Frage
(ja, das Buch regt mich sehr viel zum Denken an,
bzw. ich habe viele Fragen dazu

Kapitel 5: Implementierung von Standalone Scripts.

Ich versteh einfach garnicht, um was es da geht.
Also ohne zu lesen hätte ich gedacht, wie man
z.B: Teile von Standalone Scripts wie Blogs etc
in sein eigenes Script implementieren kann o.ä.!

Aber irgendwie geht es da ja um Streams oder so !?

Verstehst Du das Ben?
Allgemein finde ich, dass die Einleitungen in Themen
teilweise etwas zu knapp bzw. schlecht sind.
Man braucht eigentlich schon überall Vorahnung!
björn ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 01.08.2006, 00:01 Nach oben    #29
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.471
Standard

Ich finde eher, dass das Buch nur zum weiteren Nachlesen in anderen Quellen anregt. Find ich persönlich super!

Also ich habe das Kapitel gar nicht beachtet und kann dementsprechend gar nichts dazu sagen.

Grüße, Ben.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

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 aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Rezension] PHP 5 Kochbuch Artemis Literatur 2 07.09.2006 19:15
PHP 5.1.5, PHP 4.4.4 und PHP 5.2.0 RC2 veröffentlicht Ben Nachrichten 2 01.09.2006 16:05
Fortgeschrittenes Buch zu PHP und MySQL Bookworm Gesuche 7 31.07.2006 17:43
[Rezension] Professionelle PHP 5-Programmierung, Ben Literatur 11 27.07.2006 20:48
Neue PHP "release candidates": PHP 4.4.2 RC 1 und PHP 5.1 RC 6 Ben Nachrichten 1 21.11.2005 20:48


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:56 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44