...

View Full Version : writing an effective router/dispatcher for mvc pattern ??



PHPycho
01-24-2008, 09:51 AM
hello forums !!
I am trying to make an router/dispatcher for oo mvc pattern.
I would like to have one default router pattern ie controller/method/id and other is customized one
for example

http://yoursite.com/controller/method/id/params => $controller->method($id[, $params])(general)
http://yoursite.com/admin/controller/method/id/params => $controller->admin_method($id[, $params]) (customized)

Can anybody provide good suggestions/samples in dispatching such method.
Note: dispatching method should work both for url rewriting turned on or off by changing some flags.

Thanks in advance for your valueable suggestions.

PHPycho
01-25-2008, 11:19 AM
Knock Knock... Can anybody come with better ideas

the-dream
01-25-2008, 02:53 PM
I was creating a blogging system and created something like this. You will have to customise it but here it is:


<?php

echo '<p>This is our index.php file!</p>';

// Requested URL
$url = $_SERVER['REQUEST_URI'];

// Removes App Root from URL
$url = str_replace('/BlogSite/', '', $url);


$routes = array(

array('url' => '/^posts\/(?P<id>\d+)$/', 'controller' => 'posts', 'view' => 'show'),
array('url' => '/^posts\/(?P<id>\d+)\/edit$/', 'controller' => 'posts', 'view' => 'edit')

);

$params = array();

$route_match = false;

foreach($routes as $urls => $route) {

if(preg_match($route['url'], $url, $matches)) {

$params = array_merge($params, $matches);

$route_match = true;

break;

}
}

if(!$route_match) { exit('No Route Found!'); }

include('controller/'.$route['controller'].'.php');

?>

I used a .htaccess file so all my /dirs/ get passed through the index.

Hope this helps.

the-dream
01-25-2008, 09:05 PM
Any Good?



EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum