heinetz: Zend 2

Beitrag lesen

hello,

Ich hatte mich ja nun erstmal von Zend verabschiedet um mich unabhängig vom Framework erstmal mit OOP ansich auseinanderzusetzen. Trotzdem ist der Einwurf sehr interessant und wirft Fragen auf:

  • Macht es Sinn, sich unabhängig von Zend diesen Coding-Standard einzuhalten?

Ja, meistens. Für Dinge wie Klammernsetzung und andere Optik musst du den fremden Coding-Standard nicht berücksichtigen, wenn du nicht magst. Aber siehe dritte Antwort.

gut, dann versuche ich mich an die Standards zu halten und definiere folgendes

index.php?id=12345

include "path/to/file/tecdoc.class.php";  
$doc = new TecDoc(intval($_GET['id']));  
$doc -> displayForm();

Auf meiner Seite Detailansicht steht nun also  dieser Code. Die Methode displayForm() sollte demnach einen String "<form …. </form>" ausgeben.

Der String enhält generell diverse input-Elemente. Also sich wiederholende Teile mit individuellen Ausprägungen (Attributen). Dafür macht also eine eigene Funktion Sinn. Ich würde denken, diese Funktion ist neben displayForm() eine weitere Methode input() der Klasse TecDoc. Die Methode input()  wird (erstmal) nur innerhalb der Klasse TecDoc angesprochen. Daher wäre sie im Gegensatz zu public displayForm() private.

path/to/file/tecdoc.class.php

/**  
* Meine prima TecDoc-Klasse  
*/  
class TecDoc  
{  
  /**  
  * Meine Methode displayForm gibt einen String "<form…</form>" aus  
  */  
  public function displayForm()  
  {  
    ...  
  }  
  
  /**  
  * Meine Methode input gibt einen String "<input…</input>" zurück  
  */  
  private function input()  
  {  
    ...  
  }  
}

Und hier kommt mein 1. Problem!
-------------------------------
Das Objekt $doc hatte ich mit einem Parameter initialisiert(?). In jQuery bin ich gewohnt, eine Instanz mit Parametern zu bilden. In den PHP5-Beispielen, die ich mir so ansehe, wird da kein Parameter übergeben. Um das Ganze ohne Parameter-Übergabe beim initialisiert(?) zu regeln könnte man das so lösen:

public $id = intval(GET['id']);

Aber macht man das so?

beste gruesse,
heinetz