Skip to content

Latest commit

 

History

History
180 lines (128 loc) · 3.27 KB

index.md

File metadata and controls

180 lines (128 loc) · 3.27 KB
layout lang title
landing
en
Rakit Framework · Yet Another PHP Micro Framework

Rakit framework is another yet PHP micro framework to help you build web app or web service with ease.

$app->get('/get', function() {
    return 'You are access this using GET method';
});

$app->post('/post', function() {
    return 'You are access this using POST method';
});

$app->put('/put', function() {
    return 'You are access this using PUT method';
});

$app->patch('/patch', function() {
    return 'You are access this using PATCH method';
});

$app->delete('/delete', function() {
    return 'You are access this using DELETE method';
});

Just return an array to response JSON. We will json_encode() it for you.

$app->get('/example.json', function() {
    return [
        'status' => 'ok',
        'message' => 'easy right?'
    ];
});

Register middleware

$app->setMiddleware('auth', function($req, $res, $next) {
    if (!isset($_SESSION['user_id'])) {
        return $res->send('Unauthenticated Request', 401);          
    }

    return $next();
});

Use it

$app->get('/admin', function() {
    return 'Hola Admin';
})->auth();

Hint a class you need in arguments. We will inject its instance automatically.

...

use Rakit\Framework\Http\Request;

... 

$app->post('/login', function(Request $req) {
    $username = $req->get('username');
    $password = $req->get('password');
    ...
});

...

Single upload file:

$app->post('/profile', function(Request $req) {
    $avatar = $req->file('avatar');
    if ($avatar) {
        $avatar->name = 'new-name';
        $avatar->move('my/upload/dir');
    }
});

Multiple upload file:

$app->post('/upload-images', function(Request $req) {
    $images = $req->multiFiles('images');
    foreach ($images as $i => $image) {
        $image->name = 'image-' . ($i + 1);
        $image->move('my/upload/dir');
    }
});

Access configuration or request data with ease using dot notation:

// init App with some configs
$app = new App('my-awesome-app', [
    'product' => [
        'image_path' => '/uploads/products',
    ] 
]);

...

$app->post('/something', function(App $app, Request $req) {
    $productImagePath = $app->config['product.image_path'];
    $productId = $req->get('product.id'); // will retrieve $_POST['product']['id']
    ...
});

...

Ups, I almost forgot it. Here you go:

First, create your controller class:

<?php

use Rakit\Framework\Controller;

class MyController extends Controller
{

    public function doSomething()
    {
        // $this here refer to App instance
        $config = $this->config['any.config'];
        $file = $this->request->file('a_file');
    }

}

Then you just need to put this in route:

$app->post('/something', 'MyController@doSomething');