phoutes - Simple PHP routes Handler
##How to run:
clone the script:
git clone https://github.com/ghostffcode/phoutes.git
And navigate to the public directory in the phoutes folder with your browser, mine is:
http://localhost/phoutes/public
- You might want to create a virtual host in your dev environment for the css and javascript files to be loaded.
Adding Route Handler
open phoutes/App/routes.php in your favorite code editor and create a new route using:
// get route handler
$route->get('/home', function() {
echo "I got Home";
});
// post route handler
$route->post('/home', function() {
echo "I got a post request";
});
// update route handler
$route->update('/home', function() {
echo "I got an update request";
});
// delete route handler
$route->post('/home', function() {
echo "I got a delete request";
});
// all route handler, for any request type
$route->all('/home', function() {
echo "I can handle all request types";
});
To handle url variables:
// the variable in the url is :user
$route->get('/user/:user/', function($user) {
echo $user;
});
try it out visit:
http://localhost/phoutes/public/user/Bliss
The page echoes out: Bliss
Using Controllers in routes
You can add a new controller in phoutes/App/Controllers/ directory (name of controller needs to match the controller class name)
To use a controller, prefix the class instance name with 'ctrl'
// create a get route that take a url variable user and passes it to the Profile controller
$route->get('/:user/', function($user) {
// sample use of a controller
$profile = new ctrlProfile();
$profile->name($user);
});
Rendering a view file
The view directory is "Phoutes/App/Views/" You can place your html or php files in that directory
To render a view file in your code, use
view::render($filename, $data);
The static view method, takes two arguments:
- The first is the view file name Eg. index or user/profile (Default is index).
- The second (optional) is the data to be passed into the view file.
Example of rendering a view file:
$route->all('/', function () {
view::render('profile'); // renders profile.php file
});
Fixes
- v1.1
- The arguments of a callback function of a route with route Parameters can be in any order.
Want to Help?
Thank you for trying to out, if there is something you will like to add, do make a pull request.
Don't forget to star this!