Click here to Skip to main content
Click here to Skip to main content

Write a router for PHP MVC Applications

By , 13 May 2013
 

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:

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)

About the Author

Reza Farhadian
Web Developer
Iran (Islamic Republic Of) Iran (Islamic Republic Of)
Member
I'm a persian software maker/developer & user interface designer.
I like creativity & open-source.
My dream language is javascript, i like to make & develop online applications!
 
My believe in web like real world, and i love it, I'm trying for design with art.
Coding for me is enjoyable & can't make me tired.

Comments and Discussions

Comment 0 messages have been posted for this article Visit http://www.codeproject.com/Tips/592018/Write-a-router-for-PHP-MVC-Applications to post and view comments on this article, or click here to get a print view with messages.

Permalink | Advertise | Privacy | Mobile
Web02 | 2.6.130513.1 | Last Updated 13 May 2013
Article Copyright 2013 by Reza Farhadian
Everything else Copyright © CodeProject, 1999-2013
Terms of Use