GithubHelp home page GithubHelp logo

marg's Introduction

Marg

About

Marg is an attempt to create an easy-to-use and extensible request router for PHP programmers.

Tutorial

<?php

include 'marg/marg.php';

$routes = array(
    '/' => 'home',
    '/example_1/([0-9])' => array(
        'controller' => 'Example1',
        'methods' => array('GET', 'POST'),
    ),
    '/example_2' => array('Example2', array('GET', 'POST')),
    '/example_3' => 'Example3',
);

function home() {
    global $request;

    if ($request->verb == 'GET') {
        echo '<h1>Hello World!</h1>';
        if ($request->is_ajax) {
            echo json_encode(array('message' => 'JSON works!'));
        }
    } else {
        raise('405');
    }
}

function Example1($num) {
    global $request;

    echo '<h1>Example 1.' . $num . '</h1>';
    if ($request->verb == 'POST') {
        echo 'A POST request.';
    } else {
        echo 'A GET request.';
    }
}

function Example2() {
    global $request;

    echo '<h1>Example 2!</h1>';
    echo 'Request Type: ' . $request->verb;
}

class Example3 {
    function setUp() {
        echo '<center>';
    }

    function tearDown() {
        echo '</center>';
    }

    function get() {
        echo '<h1>Example 3!</h1>';
    }

    function get_ajax() {
        echo '<h1>Example 3 - AJAX Request!</h1>';
    }
};

function raise_404() {
    echo '<h1>Sorry! What you are looking for does not exists. :(</h1>';
}

function raise_405() {
    echo '<h1>405: Method Not Allowed</h1>';
}

Marg::addSetUp(function () {  echo '<html><head><title>Marg Examples</title></head><body>'; });
Marg::addTearDown(function () { echo '</body></html>'; });

Marg::run($routes);

?>

License

Marg was create by Vaidik Kapoor. It is released under MIT License.

marg's People

Contributors

nuxij avatar vaidik avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.