Aug 29
  • english
  • german

Wer mit dem Eclipse PDT PHP programmiert, wird, wie ich, bereits in die missliche Lage gekommen sein, für viele (oder auch sehr viele) Datenklassen mit vielen (manchmal auch wahnsinnig vielen) Properties Getter und Setter Methoden schreiben zu müssen. Da man leider nicht, wie im JDT, die Funktion der IDE nutzen kann, schreibt man sich meist Blasen an die Hände und ganz nebenbei fühlt man sich nach mehreren Stunden wie eine Maschine.

Um das Ganze etwas zu beschleunigen, hier eine Lösung mit Templates:

Klickt auf Window – Preferences – PHP – Templates und legt dort ein neues mit diesem Inhalt an

/**
*    Set the ${word_selection} value
*    @param ${type} $$${word_selection}
*/
public function set${variable}($$${word_selection}) {
$$this->${word_selection} = $$${word_selection};
}

/**
*    Returns the ${word_selection} value.
*    @return ${type}
*/
public function get${variable}() {
return $$this->${word_selection};
}
${cursor}

Um dieses Template zu verwenden, gebt in einer PHP-Datei den von Euch gewählten Shortcut für das Template ein (z.B. „getset“), gefolgt von einem Variablennamen eurer Klasse (z.B. getsetcolor). Nun markiert ihr das Wort „color“ (oder eben euren Variablennamen) und dann Strg+Leertaste drücken. Voila, da sind die zwei gewünschten Methoden. Der Cursor steht auch schon an der Stelle für den Variablentyp im Kommentar. Dort könnt ihr, z.B. „string“ eingeben und mit Tab geht’s zumMethodennamen. Da müsste man, um dem Beispiel zu folgen, noch „Color“ (beginnt groß) eingeben und dann ist die Sache auch schon beendet!

Sollte im Normalfall wenigstens 1-2 Minuten sparen pro Eigenschaft – probierts aus!

7 Antworten zu “Getter und Setter erstellen mit Eclipse PDT”

  1. pandafahrer sagt:

    Leider funktioniert das mit der neuen PDT 2.0 nicht mehr, wenn man den Variablennamen hinter „getset“ markiert, steht die Autovervollstöndigung für das Code-Template nicht mehr zur Verfügung.

    Hat schon jemand eine Lösung für dieses Problem gefunden?

  2. Sebastian sagt:

    Dafür wüsste ich auch gerne eine Lösung. In Ganymed gibt es mit der Codecompletetion eh ein größeres Problem.

  3. pandafahrer sagt:

    Ich hab zwischenzeitlich Netbeans for PHP ausprobiert, da funktioniert einiges besser.

    Denke, ich werde erstmal dabei bleiben.

  4. D.N. sagt:

    Hallo zusammen,
    ich habe eine Lösung dafür gefunden:
    1. Template siehe unten erstellen, mit dem Namen „getset“
    2. „get“ schreiben und „Strg“ + „Space“ drücken, getset auswählen
    3. jetzt den Namen der Variable schreiben, er wird auto-replaced an allen relevanten Stellen.

    CODE:
    ——————————–
    /**
    * Set the ${bare_field_name} value
    * @param ${type} $$${bare_field_name}
    */
    public function set${bare_field_name}( $$param_${bare_field_name} ) {
    $$this->${bare_field_name} = $$param_${bare_field_name};
    }

    /**
    * Returns the ${bare_field_name} value.
    * @return ${type}
    */
    public function get${bare_field_name}() {
    return $$this->${bare_field_name};
    }
    ——————————–

  5. M.R. sagt:

    Vielen Dank an D.N. klappt wunderbar. Habe mein Template ein bisschen angepasst für meine Bedürfnisse:

    CODE:
    ——————–

    /**
    * Sets the ${field} value
    *
    * @param ${type} ${dollar}${field}
    * @return void
    */
    public function set${field_camelcase}(${dollar}${field}) {
    ${dollar}this->${field} = ${dollar}${field};
    }

    /**
    * Returns the ${field} value
    *
    * @return ${type}
    */
    public function get${field_camelcase}() {
    return ${dollar}this->${field};
    }

    ——————–

  6. verena sagt:

    @M.R.: die Variable ${field_camelcase} gibt es bei mir (Eclipse Galileo /PDT 2.1) nicht. Gibt es die nicht mehr, oder kommt die aus irgend einem anderen Plugin?

    Danke @all für dieses Template.

  7. Viru sagt:

    @verena:

    Man kann in den Templates seine eigenen Variablen verwenden ich vermute mal ${field_camelcase} hat M.R. wohl genommen um nen kleinen Erinnerer zu haben, dass der Name der Variablen hier in CamelCase schreibweise einzutragen ist

Einen Kommentar schreiben