Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / Languages / PHP

Write a router for PHP MVC Applications

5.00/5 (2 votes)
13 May 2013CPOL 16.4K  
Write a router for PHP MVC Applications with $_SERVER['PHP_SELF']

Introduction 

PHP MVC pattern has a router for giving data to the controller and to process it. The router has an action and a parameter, like this:

http://example.com/post/3

In this tip, we want to create a router like this:

http://example.com/index.php/post/hello-world 

We should use $_SERVER['PHP_SELF'] to create this.

Using the Code 

Now, we explode $_SERVER['PHP_SELF'] for detecting action and parameters, so input this code in your controller and include it in index.php:

C++
public function router() {
    $rt = $_SERVER['PHP_SELF'];
    $rt = explode('/',$rt);

    $this -> action    = $rt[2];
    $this -> parameter = $rt[3];
}

public function isValidRt() {
    error_reporting(E_ALL ^ E_NOTICE);
    $rt = self::router();
    if(!is_numeric($this -> action && $this -> parameter)) {
        die(include('404.php'));
    }
    else {
        return $rt;
    }
}  

posts is action and parameter is hello-world.

you can use isValidRt() to use router.

You have these two variables! You can use them. Wink | ;)

 

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)