Сегодня мы создадим наш собственный фасад в Laravel
Что такое фасад и зачем он нужен – можно подробно почитать здесь
Мы сделаем небольшой логгер SmartLogger и скроем его реализацию под фасадом.
. ├── SmartLoggerFacade.php └── SmartLogger.php 0 directories, 2 files
SmartLogger.php
<?php
namespace App\SmartLogger;
class SmartLogger {
public function log($text) {
$path = storage_path('logs');
$myfile = fopen("{$path}/SmartLog.txt", "a");
fwrite($myfile, $text);
fwrite($myfile, PHP_EOL);
fclose($myfile);
}
}
SmartLoggerFacade.php
<?php
namespace App\SmartLogger;
use Illuminate\Support\Facades\Facade;
class SmartLoggerFacade extends Facade
{
protected static function getFacadeAccessor()
{
return 'smartlogger';
}
}
Создаем сервис провайдер
php artisan make:provider SmartLoggerServiceProvider
SmartLoggerServiceProvider.php
<?php
namespace App\Providers;
use App\SmartLogger\SmartLogger;
use Illuminate\Support\ServiceProvider;
class SmartLoggerServiceProvider extends ServiceProvider
{
/**
* Register services.
*
* @return void
*/
public function register()
{
$this->app->bind('smartlogger',function(){
return new SmartLogger();
});
}
/**
* Bootstrap services.
*
* @return void
*/
public function boot()
{
//
}
}
Теперь откройте config\app.php и добавьте в него эти строки
Добавьте его в массив ‘providers’
...
App\Providers\SmartLoggerServiceProvider::class
Добавьте его в массив “aliases”
...
'Smartlogger' => App\SmartLogger\SmartLoggerFacade::class
Теперь давайте протестируем его 
Добавьте этот код в свой контроллер
SmartLogger::log("Hi");
И добавьте это в верхней части вашего контроллера
use App\SmartLogger\SmartLoggerFacade as SmartLogger;
Не стесняйтесь задавать любые вопросы 