-- Tim Nagel <[EMAIL PROTECTED]> wrote
(on Tuesday, 09 December 2008, 11:19 AM +1100):
> I am trying to create a basic content serving controller where user created
> data is served using the action name as a name specified by the user.
> (Overridden __call in the controller).
>
> I have hit a bit of a snag in that it looks like Zend is normalising
> (lowercasing and doing funky stuff with camelcase and underscores) action
> values which isnt ideal for my situation. Is there a way to turn this
> behaviour
> off? Or even a poke in the right direction of where its occuring? I havent had
> a chance to delve into the router/front controller/dispatcher but my quick
> look
> didnt uncover anything.
The ViewRenderer action helper includes a Zend_Filter_Inflector instance
that performs this normalisation. You can modify the rules used by
pushing your own inflector into the ViewRenderer, or modifying the one
present.
$viewRenderer =
Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
$inflector = $viewRenderer->getInflector();
As an example, the current rules are setup using the following:
$inflector->setRules(array(
':module' => array('Word_CamelCaseToDash', 'StringToLower'),
':controller' => array('Word_CamelCaseToDash', new
Zend_Filter_Word_UnderscoreToSeparator('/'), 'StringToLower', new
Zend_Filter_PregReplace('/\./', '-')),
':action' => array('Word_CamelCaseToDash', new
Zend_Filter_PregReplace('#[^a-z0-9' . preg_quote('/', '#') . ']+#i', '-'),
'StringToLower'),
));
For more information on the inflector, see:
http://framework.zend.com/manual/en/zend.filter.inflector.html
--
Matthew Weier O'Phinney
Software Architect | [EMAIL PROTECTED]
Zend Framework | http://framework.zend.com/