Usage

Create an 'index.php' file in your document root.

<?php

include('../vendor/autoload.php');

use Makiavelo\Quark\Quark;
use Makiavelo\Quark\Request;
use Makiavelo\Quark\Response;

$app = Quark::app();

$app->get('/', function(Request $req, Response $res) {
    $res->status(200)->send('Yay! quark installed!');
});

$app->start();

Or using the single file installation:

<?php

require_once "../quark.phar";

use Makiavelo\Quark\Quark;

$app = Quark::app();

$app->get('/test', function($req, $res) {
    $res->status(200)->send('Testing phars!');
});

$app->start();

The framework leaves open to the developer how to handle routes, controllers can be created if required. If the app is just a simple REST api then they can be totally avoided. When I say controllers, it's just for the MVC term, since there's no requiremente about how they can be implemented.

Example 1

The most basic usage would be somehting like this

include('../vendor/autoload.php');

use Makiavelo\Quark\Quark;

$app->get('/user/list', function($req, $res) {
    include('some_template.php');
    // or an echo, or whatever is needed.
});

$app->start();

Example 2

Using a controller object method as a callable

index.php

<?php

include('../vendor/autoload.php');

use Makiavelo\Quark\Quark;
use Makiavelo\Quark\Request;
use Makiavelo\Quark\Response;

use TestProject\Controllers\User as UserController;
$userController = new UserController();

$app->get('/user/list', [$userController, 'list']);

$app->start();

User.php

<?php

namespace TestProject\Controllers;

use Makiavelo\Quark\Request;
use Makiavelo\Quark\Response;

class User
{
    public function list(Request $req, Response $res)
    {
        $res->status(200)->send('Got a list!');
    }
}

Example 3

Using the controller inside the closure

index.php

<?php

include('../vendor/autoload.php');

use Makiavelo\Quark\Quark;
use Makiavelo\Quark\Request;
use Makiavelo\Quark\Response;

use TestProject\Controllers\User as UserController;

$app->get('/user/list/alt', function(Request $req, Response $res) {
    // Only instantiate if used
    $userController = new UserController();
    $userController->list($req, $res);
});

$app->start();

User.php

<?php

namespace TestProject\Controllers;

use Makiavelo\Quark\Request;
use Makiavelo\Quark\Response;

class User
{
    public function list(Request $req, Response $res)
    {
        $res->status(200)->send('Got a list!');
    }
}

Example 4

Ignoring request and response parameters

index.php

$app->get('/user/:id/get', function(Request $req, Response $res) {
    // Only instantiate if used
    $userController = new UserController();
    $userController->get($req->param('id'));
});

User.php

<?php

namespace TestProject\Controllers;

use Makiavelo\Quark\Request;
use Makiavelo\Quark\Response;

class User
{
    public function list($id)
    {
        Response::get()->status(200)->send($id);
    }
}