PHP Refactoring - Lez. 1: Eigenschaften einer Klasse
Wenn wir eine Klasse schreiben wir jede Nutzung ihrer Konventionen.
Ich empfehle, mit den folgenden Eigenschaften einer Klasse:
- Wenn besteht aus einem einzigen Wort, alles klein geschrieben, zum Beispiel $ name;
- Wenn der vielen Worte der erste Buchstabe eines jeden, ab der zweiten, in Großbuchstaben, Kleinbuchstaben alle anderen, zum Beispiel $ nomeAziendaItaliana gemacht;
- Wenn eine Konstante wird von einem Wort in Großbuchstaben schreiben, zum Beispiel Elementen zusammen;
- Wenn wir eine konstant bestehen aus mehreren Wörtern in Großbuchstaben mit einem Bindestrich zwischen den Wörtern schreiben, z. B. ELEMENTI_PER_RIGA
- Der Variablenname muss selbsterklärend sein
Alle Eigenschaften einer Klasse sind privat und können über Methoden und getXXX setXXX, deren Grad der Zugang muss öffentlich sein, so dass man den internen Zustand des Objekts von einem beliebigen Punkt Zugang zugegriffen werden kann. Anstelle von XXX legen wir die Namen der Eigenschaft.
Das Folgende ist ein Beispiel zur besseren Klärung des Konzepts:
| Falsch | Genau |
class Test { public $ classname; private $ mia_x1; costante_della_classe const; const Seiten; } | class Test { private $ className; private $ miaDataDiNascita; COSTANTE_DELLA_CLASSE const; SEITEN const; public function setNomeClasse ($ name) { $ This-> className = $ name; } getNomeClasse public function () { return $ this-> className; } } |
Aber weil wir alle das tun? Die Eigenschaften einer Klasse repräsentieren den Zustand der Instanz eines Objekts, dann sollten Sie nur Zugriff über den öffentlichen Methoden, die Abgeordneten, um Aktionen für einen Wandel auslösen.
Ein reales Beispiel ist die Glühbirne: Wir sind interessiert an ihrem Status, oder heiß oder kalt, aber wir handeln danach durch die Aktionen auf und / oder ausgeschaltet, die unsere Methoden zu repräsentieren.
Im Hinblick auf Eigenschaften in PHP 5 verwenden wir einen Trick Zugang, ermöglicht dank der Magie Funktionen __ set und __ get.
Wenn wir nicht wollen, direkt in Ihrem Code verwenden und die Funktionen getXXX setXXX können wir wie im folgenden Beispiel zu tun:
class Test { private $ _nomeClasse; public function __ set ($ name, $ wert) { call_user_func (array ($ this, 'Set' ucwords ($ name)), $ value.); } public function __ get ($ name) { call_user_func (array ($ this, "get" ucwords ($ name)).); } public function setNomeClasse ($ name) { $ This-> _nomeClasse = $ name; } getNomeClasse public function () { return $ this-> _nomeClasse; } } $ Obj = new Test (); $ Obj-> className = 'test'; echo $ obj-> className; |
Der Trick ist, eine gewisse Systematik in den Namen folgen und genießen Sie die Magie der Sprache funktioniert.
Der Name, den wir verwenden, außerhalb des Unterrichts ist nur Eigentum, aber ohne den Unterstrich als erstes Zeichen. Da gibt es eine Klasse Variable mit diesem Namen, startet die PHP-Funktion __ set __ get oder, falls vorhanden, vorbei am ehemaligen Eigentum Namen und den Wert an, im zweiten Fall nur der Name gespeichert werden.
Wesentliche Voraussetzung für den Betrieb ist, dass:
- Die Dummy-Variable außerhalb des Objekts verwendet folgen der Namenskonvention Convenction des internen Eigenschaft auf die Klasse, unter Ausschluss dell'underscore das muss nicht vorhanden sein;
- gibt es die Methoden und setXXX getXXX für die Eigenschaft callback;
- die interne Variable zu verwenden ist einfach, wie bei einem Array Betrieb nicht sein wird, wie Sie möchten.
Wenn das Array werden wir sehen, welche Methoden, um in einem späteren Artikel zu verwenden.
Dank Henry für einige nützliche Anregungen bei der Erstellung des Codes.











Recent Comments