CamelCase mit Bindestrich und umgekehrt in Zend Framework

Ich hatte gestern das Problem, dass in unserem Zend Framework Projekt die Actions in CamelCase geschrieben sind, also zum Beispiel:

[code lang=“php“ inline=“no“]public function editUserAccountAction()[/code]

In der Navigation, im Routing und in der ACL stehen diese aber ohne CamelCase und mit Bindestrich drin, also nach obigen Beispiel:

[code parse=“no“ inline=“no“]http://www.domain.com/irgendwas/edit-user-account/[/code]

In der ACL wie folgt.

[code lang=“php“ inline=“no“]$acl->deny(‚guest‘, array(‚irgendwas‘), array(‚edit-user-account‘));[/code]

Nun hab ich eine Rechteverwaltung geschrieben, welche die Actions anhand der Controller aus der Datei ausliest und bei Erlaubnis des Users vergleicht. Das Problem dabei ist, dass edit-user-account, wie es in der ACL steht, und editUserAccount, wie es aus dem Controller ausgelesen wird, im Vergleich immer false, also ungültig bzw falsch,  zurückgeben. Das Problem habe ich dadurch umgangen, indem ich einen Filter auf den ausgelesenen Actionnamen angewendet habe. Genauer den Zend_Filter_Word_CamelCaseToDash(). Darüber habe ich noch einen strtolower() laufen lassen, um auch vorhandene Großbuchstaben in kleine ändern zu lassen.

[code lang=“php“ inline=“no“][…]
$ausgelesenerName = ‚editUserAccount‘;
$filter = new Zend_Filter_Word_CamelCaseToDash();
$bereinigterName = strtolower($filter->filter($ausgelesenerName));
[…][/code]

[via /dev/notes ]


Beitrag veröffentlicht

in

,

von

Schlagwörter:

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Datenschutz-Übersicht
Wandpapier

Diese Website verwendet Cookies, damit wir dir die bestmögliche Benutzererfahrung bieten können. Cookie-Informationen werden in deinem Browser gespeichert und führen Funktionen aus, wie das Wiedererkennen von dir, wenn du auf unsere Website zurückkehrst, und hilft unserem Team zu verstehen, welche Abschnitte der Website für dich am interessantesten und nützlichsten sind.

Unbedingt notwendige Cookies

Unbedingt notwendige Cookies sollten jederzeit aktiviert sein, damit wir deine Einstellungen für die Cookie-Einstellungen speichern können.

Wenn du diesen Cookie deaktivierst, können wir die Einstellungen nicht speichern. Dies bedeutet, dass du jedes Mal, wenn du diese Website besuchst, die Cookies erneut aktivieren oder deaktivieren musst.