There is no license information available for the latest version (1.1.5) of this package.

Simple PHP building block framework

1.1.5 2021-10-11 14:28 UTC



Simple PHP building blocks framework


composer require tallieutallieu/oak

Creating an application


$app = new \Oak\Application(
    __DIR__.'/../', // The path to your .env file
    __DIR__.'/../config/', // The path to your config files
    __DIR__.'/../cache/' // The path where the application can write cache to 



The example above only registers the Console component. This is an easy example since the Console component doesn't depend on any other components. To run the Console component, you'll have to get the Console\Kernel from your application handle the incoming Input:


use Oak\Contracts\Console\InputInterface;
use Oak\Contracts\Console\OutputInterface;
use Oak\Contracts\Console\KernelInterface;


To use the HTTP component (PSR-7 & PSR-15 compliant) you'll also have to register the Config component...and since the Config component reads configuration values from the filesystem, you'll also have to register the Filesystem component:



Handling an incoming request with the Http\Kernel goes as follows:


use Oak\Contracts\Http\KernelInterface;
use Psr\Http\Message\ServerRequestInterface;




$config->set('package', [
  'client_id' => '123',
  'client_secret' => 'F1jK4s5mPs9s1_sd1wpalnbs5H1',

echo $config->get('package.client_secret'); // F1jK4s5mPs9s1_sd1wpalnbs5H1
Config commands
php oak config clear-cache
php oak config cache


Documentation coming soon


Documentation coming soon


Example usage

use Oak\Cookie\Facade\Cookie;

Cookie::set('key', 'value');

echo Cookie::get('key'); // value
Cookie config options
Name Default
path /
secure false
http_only true



use Oak\Dispatcher\Facade\Dispatcher;

Dispatcher::addListener('created', function($event) {
  echo 'Creation happened!';

Dispatcher::dispatch('created', new Event());


Documentation coming soon


Example usage

use Oak\Logger\Facade\Logger;

Logger::log('This message will be logged');
Logger config options
Name Default
filename logs/log.txt
date_format d/m/Y H:i


Example usage

use Oak\Session\Facade\Session;

Session::set('key', 'value');

echo Session::get('key'); // value
Session config options
Name Default
handler \Oak\Session\FileSessionHandler
path sessions
name app
cookie_prefix session
identifier_length 40
lottery 200
max_lifetime 1000