- Config
- Console
- Container
- Dispatcher
- Filesystem
- Logger
- Scheduler
- Session
composer require reinvanoyen/oak
<?php
$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
);
$app->register([
\Oak\Console\ConsoleServiceProvider::class,
]);
$app->bootstrap();
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:
<?php
use Oak\Contracts\Console\InputInterface;
use Oak\Contracts\Console\OutputInterface;
use Oak\Contracts\Console\KernelInterface;
$app->get(KernelInterface::class)->handle(
$app->get(InputInterface::class),
$app->get(OutputInterface::class)
);
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:
<?php
$app->register([
\Oak\Console\ConsoleServiceProvider::class,
\Oak\Http\HttpServiceProvider::class,
\Oak\Config\ConfigServiceProvider::class,
\Oak\Filesystem\FilesystemServiceProvider::class,
]);
Handling an incoming request with the Http\Kernel goes as follows:
<?php
use Oak\Contracts\Http\KernelInterface;
use Psr\Http\Message\ServerRequestInterface;
$app->get(KernelInterface::class)->handle(
$app->get(ServerRequestInterface::class)
);
<?php
$config->set('package', [
'client_id' => '123',
'client_secret' => 'F1jK4s5mPs9s1_sd1wpalnbs5H1',
]);
echo $config->get('package.client_secret'); // F1jK4s5mPs9s1_sd1wpalnbs5H1
php oak config clear-cache
php oak config cache
Documentation coming soon
Documentation coming soon
<?php
use Oak\Cookie\Facade\Cookie;
Cookie::set('key', 'value');
echo Cookie::get('key'); // value
Name | Default |
---|---|
path | / |
secure | false |
http_only | true |
<?php
use Oak\Dispatcher\Facade\Dispatcher;
Dispatcher::addListener('created', function($event) {
echo 'Creation happened!';
});
Dispatcher::dispatch('created', new Event());
Documentation coming soon
<?php
use Oak\Logger\Facade\Logger;
Logger::log('This message will be logged');
Name | Default |
---|---|
filename | logs/log.txt |
date_format | d/m/Y H:i |
<?php
use Oak\Session\Facade\Session;
Session::set('key', 'value');
Session::save();
echo Session::get('key'); // value
Name | Default |
---|---|
handler | \Oak\Session\FileSessionHandler |
path | sessions |
name | app |
cookie_prefix | session |
identifier_length | 40 |
lottery | 200 |
max_lifetime | 1000 |