CodeIgniter Forums
Hyphens in URL to underscores in class/method names - Printable Version

+- CodeIgniter Forums (https://forum.codeigniter.com)
+-- Forum: Using CodeIgniter (https://forum.codeigniter.com/forumdisplay.php?fid=5)
+--- Forum: Installation & Setup (https://forum.codeigniter.com/forumdisplay.php?fid=9)
+--- Thread: Hyphens in URL to underscores in class/method names (/showthread.php?tid=549)



Hyphens in URL to underscores in class/method names - sneakyimp - 12-16-2014

OK so I have seen a variety of suggestions about how to translate hyphens in one's url to underscores in the class and method names, but there seem to be few problems:
1) using routes requires tedious maintenance of the routes.php file. This is a non-starter for complex projects and also presents problems with a large dev team. We can't have everyone changing this file all the time.
2) The quick fix described here:
http://ianluckraft.co.uk/2011/01/codeigniter-allow-hyphen-in-url/
alters CodeIgniter core source code which is a no-no and could present problems if we are trying to upgrade our CI install.
3) Extend CI_Router class
https://ellislab.com/forums/viewthread/114640/#922998
Can someone explain to me what happens when you put his file in application/core?
Problem with this approach is that it maps first two segments of your url whether or not these are intended to be interpreted as class/method or not.

Is there any recommended/orthodox/canonical way to accomplish this in CI 2?
EDIT: Ideally this approach would affect only class and method names that are actually existing/valid such that any fractions of the url that were not intended as class/method names would not be affected.
EDIT: Added link I originally forgot about a quick fix.


RE: Hyphens in URL to underscores in class/method names - Narf - 12-16-2014

CI 3.0-dev has this feature as a configurable option.


RE: Hyphens in URL to underscores in class/method names - sneakyimp - 12-16-2014

(12-16-2014, 12:25 PM)Narf Wrote: CI 3.0-dev has this feature as a configurable option.
I was aware CI 3 has this feature, but CI 3 has still not been released yet. Also, it worries me a bit that they have defined this setting in the routes file:
Code:
$route['translate_uri_dashes'] = FALSE;
Seems a bit ad-hoc to me for a brand new framework version.

I may be able to convince my collaborators to switch but I am not optimistic.

That said, is there an recommended/orthodox/canonical way to do this? Perhaps for starters someone could explain to me what we are doing when we extend CI_Router. Seems odd to me that CI would automatically make use of this class without some kind of configuration being changed.


RE: Hyphens in URL to underscores in class/method names - Avenirer - 12-17-2014

(12-16-2014, 12:45 PM)sneakyimp Wrote:
(12-16-2014, 12:25 PM)Narf Wrote: CI 3.0-dev has this feature as a configurable option.
I was aware CI 3 has this feature, but CI 3 has still not been released yet. Also, it worries me a bit that they have defined this setting in the routes file:

Code:
$route['translate_uri_dashes'] = FALSE;
Seems a bit ad-hoc to me for a brand new framework version.

I may be able to convince my collaborators to switch but I am not optimistic.

That said, is there an recommended/orthodox/canonical way to do this? Perhaps for starters someone could explain to me what we are doing when we extend CI_Router. Seems odd to me that CI would automatically make use of this class without some kind of configuration being changed.

Well... it is route related. So I don't actually think that is "ad-hoc".


RE: Hyphens in URL to underscores in class/method names - sneakyimp - 12-17-2014

(12-17-2014, 03:00 AM)Avenirer Wrote: Well... it is route related. So I don't actually think that is "ad-hoc".
On further reflection, I guess you're right. I was just thinking that the file is called 'routes' and that all the other values in $routes seem to have a controller path as a value. This particular value in that same array is a boolean.

Still wondering about this:
sneakyimp Wrote:Perhaps for starters someone could explain to me what we are doing when we extend CI_Router. Seems odd to me that CI would automatically make use of this class without some kind of configuration being changed.
Anyone Bueller? Ferris Bueller?


RE: Hyphens in URL to underscores in class/method names - sneakyimp - 12-27-2014

I have upgraded to CI3 so this issue is resolved for me.