dirty, but sexy – hyphenated properties in SOAP response object in PHP

Ich habe hier gerade einen Service am Wickel, der mir in meine Response Objekte mit Minus getrennte Variablen (hyphenated properties) zaubert. Man kann nun mit lustigen Konstrukten darauf zurgreifen –

$responseObject->{'hyphenated-property'};

muss man aber nicht. Ich persönlich finde das nicht nur sehr nervig…

Somit kleiner magischer Hack und alle sind wieder zufrieden.
Alle Objekte der classmap leiten jetzt hiervon ab und gut.


class camelCaseProperties {
    public function __set($key, $value) {
        $this->{preg_replace_callback("/-\w/",create_function('$a', 'return strtoupper($a[0][1]);'),$key)} = $value;
    }
}

Man könnte das nun auch wieder im Konstruktor der Klassen machen und die jeweiligen Eigenschaften umbauen lassen oder die Getter und Setter bemühen, aber für’ne 2min Lösung find ich das ziehmlich sexy.

Bis später.