Facades

Lumberjack uses the Blast Facades library.

Creating a Facade

Facades provide a simple static API to an object that has been registered into the container. For example to setup a facade you would first use a Service Provider to register an instance of your class into the container:

namespace Rareloop\Lumberjack\Providers;

use Monolog\Logger;
use Rareloop\Lumberjack\Application;

class LogServiceProvider extends ServiceProvider
{
    public function register()
    {
        // Create object instance and bind into container
        $this->app->bind('logger', new Logger('app'));
    }
}

Then create a Facade subclass and tell it which key to use to retrieve your class instance:

namespace Rareloop\Lumberjack\Facades;

use Blast\Facades\AbstractFacade;

class Log extends AbstractFacade
{
    protected static function accessor()
    {
        return 'logger';
    }
}

Available Facades

Lumberjack comes with a handful of useful Facades. Below you can see which class the Facade references and what it is bound to the container under.

Facade
Class Reference
Container binding

Config

Rareloop\Lumberjack\Config

config

Log

Monolog\Logger

logger

Router

Rareloop\Lumberjack\Http\Route

router

Session

Rareloop\Lumberjack\Session\SessionManager

session

Example usage

All of Lumberjack's Facades live under the Rareloop\Lumberjack\Facades namespace.

Config

The Config facade allows you to get and set values from your config.

use Rareloop\Lumberjack\Facades\Config;

Config::set('app.debug', false);

$value = Config::get('app.debug');

Config is also available as a Helper

Log

The Log facade allows you to use the PSR-3 Logger Monolog.

use Rareloop\Lumberjack\Facades\Log;

$value = Log::warning('Oops! Something went wrong');

Router

The Router facade allows you to create custom routes or get the URLs for your routes.

use Rareloop\Lumberjack\Facades\Router;

Router::get('posts/all', function () {})->name('posts.index');

$url = Router::url('posts.index');

See Creating Routes for more information.

Session

The Session facade allows you to retrieve and store data in the current session.

use Rareloop\Lumberjack\Facades\Session;

Session::put('name', 'Chris');

$name = Session::get('name');

Session is also available as a Helper

Last updated