I have build a Rest webservice that has a mvc structure, but I need some suggestion on how to make it better.
What I have right know is :
all the request come to the front controller (index.php)
$request = new Request(); //parse all the elements of the request
// spl_api_autoload takes care for loading the classes
$controller_name = ucfirst($request->url_elements[1]) . 'Controller';
if (class_exists($controller_name)) {
$controller = new $controller_name();
$action_name = strtolower($request->verb) . 'Action';
$result = $controller->$action_name($request);
} // this acts like a sort of router
The url looks like this:
index.php/tree/addnode/4/testnode
tree -> Resource
addnode -> action
4 -> parent id
testnode -> node name
What I need a suggestion is in this part down here (controller) :
if(isset($request->url_elements[2])) {
switch ($request->url_elements[2]) {
case 'addroot':
if(isset($request->url_elements[3])) {
$name = $request->url_elements[3];
$nested = new NestedSetClass();
$nested->createRootNode($name);
}
return $data;
break;
case 'addnode':
if(isset($request->url_elements[3])) {
if(isset($request->url_elements[4])) {
$parent = $request->url_elements[3];
$name = $request->url_elements[4];
$nested = new NestedSetClass();
$nested->insertChildNode($name,$parent);
}
}
break;
default:
# code...
break;
}
}
I want to skip the switch cases , Is there anyway I can do this ?
Thank you very very much for your time