Issues

ZF-3312: CLONE -Module name mapping from URI to directory

Issue Type: Improvement Created: 2008-05-22T17:42:33.000+0000 Last Updated: 2008-11-05T11:48:06.000+0000 Status: Resolved Fix version(s): - 1.5.2 (15/May/08)

Reporter: Eric Yao (sourceboy) Assignee: Matthew Weier O'Phinney (matthew) Tags: - Zend_Controller

Related issues: - ZF-3034

Attachments:

Description

Not sure if case-sensitive comparison is an intentional behavior; if it is, would it make sense to add an extra argument to allow mapping the module name case-insensitively from the URI to the physical module directory on the file system?

<pre class="highlight">
$zcf = Zend_Controller_Front::getInstance();

$zcf->setParam('noViewRenderer', true);
$zcf->setParam('prefixDefaultModule', true);
$zcf->setModuleControllerDirectoryName('.');
$zcf->addModuleDirectory('/path/to/module/directory');
$zcf->dispatch();



<pre class="highlight">
module/
|-- default/
|   |-- ErrorController.php
|   `-- IndexController.php
`-- module1/
    `-- IndexController.php

http://somewhere/module1 hits the IndexController in the module1 directory http://somewhere/Module1 hits the ErrorController in the default module directory

Some users type everything capitalized, and since MODULE1 !== module1 (I'm gussing isValidModule() returns false); the request doesn't go to the intended controller.

If this is an intentional behavior; what's the best way to overcome this? Create a custom dispatcher, or perhaps this can be worked around by configuring the router?

Eric

Comments

Posted by Eric Yao (sourceboy) on 2008-05-22T17:44:14.000+0000

isValidModule() now returns true; however,

It seems Zend_Controller_Dispatcher_Standard::_curDirectory gets a wrong value: When tested with all caps: Value is /path/to/the/default/module/directory // wrong When tested with all lower case: Value is /path/to/the/correct/module/directory // correct

When tested with all caps: $dispatchDir in Zend_Controller_Dispatcher_Standard::isDispatchable() is NULL // wrong When tested with all lower case: $dispatchDir in Zend_Controller_Dispatcher_Standard::isDispatchable() is /path/to/the/module/directory // correct

Posted by Matthew Weier O'Phinney (matthew) on 2008-11-05T11:47:43.000+0000

You can extend the dispatcher and router to achieve this functionality; we do not plan to support it directly, however.

Have you found an issue?

See the Overview section for more details.

Copyright

© 2006-2016 by Zend, a Rogue Wave Company. Made with by awesome contributors.

This website is built using zend-expressive and it runs on PHP 7.

Contacts