luthier framework
Version 0.1.1
WARNING: Under development!
Luthier Framework is a versatile PHP micro-framework for build APIs and small websites quickly. When we say "micro" we mean REALLY micro: in fact, only Composer and a single .php file is required to start.
Get Luthier Framework with composer:
composer require luthier/framework
Basic example:
<?php
# your_app/index.php
require 'vendor/autoload.php';
$app = new LuthierFramework();
$app->get('/', function(){
$this->response->write("Hello world!");
});
$app->group('api', function(){
$this->get('/', function(){
json_response(['message' => 'Welcome to Luthier Framework!']);
});
$this->get('about', function(){
json_response(['version' => LuthierFramework::VERSION]);
});
});
$app->run(); Defining routes:
$app->get('foo/', function(){
// Default template engine (will search for /foo.php file)
view('foo');
});
$app->post('bar/', function(){
view('bar');
});
$app->match(['get','post'], 'baz/', function(){
view('baz');
}); Router parameters:
$app->get('hello/{name}', function($name){
$this->response->write("Hello $name!");
});
// Optional parameters
$app->get('about/{category?}', function($category = 'animals'){
$this->response->write("Category: category");
});
// Regex parameters
$app->get('website/{((en|es|fr)):lang}', function($lang){
$this->response->write($lang);
}); Route middleware:
// Global middleware:
$app->middleware(function($request, $response, $next){
$response->write('Global <br>');
$next($request, $response);
});
// Global middleware (but not assigned to any route yet)
$app->middleware('test', function($request, $response, $next){
$response->write('Before route<br>');
$next($request, $response);
$response->write('After route <br>');
});
$this->get('/', function(){
$this->response->write('Route <br>')
})->middleware('test'); // <- assign the 'test' middleware to this route
Coming soon!
If you love our work, consider support us on Patreon