Я использую Laravel 8 и создаю собственный фасад, но не могу вспомнить его с LogActivity::log($payload)
, а только с LogActivityFacade::log($payload)
.
Не вижу, в чем моя вина ...
приложение \ Helpers \ LogActivityFacade.php
<?php
namespace App\Helpers;
use Illuminate\Support\Facades\Facade;
class LogActivityFacade extends Facade
{
protected static function getFacadeAccessor()
{
return 'logactivity';
}
}
приложение \ Helpers \ LogActivityHelper.php
<?php
namespace App\Helpers;
use App\Repositories\LogActivityRepository;
class LogActivityHelper
{
public function log($payload)
{
$repository = new LogActivityRepository();
$repository->store($payload);
}
}
приложение \ Providers \ LogActivityServiceProvider.php
<?php
namespace App\Providers;
use Illuminate\Support\Facades\App;
use App\Helpers\LogActivityHelper;
use Illuminate\Support\ServiceProvider;
class LogActivityServiceProvider extends ServiceProvider
{
/**
* Register services.
*
* @return void
*/
public function register()
{
$this->app->bind('logactivity', function() {
return new LogActivityHelper();
});
}
/**
* Bootstrap services.
*
* @return void
*/
public function boot()
{
//
}
}
config / app.php
В массиве провайдеров
[...]
App\Providers\LogActivityServiceProvider::class,
В массиве псевдонимов
'LogActivity' => App\Helpers\LogActivityFacade::class,
Я пробовал также composer dump-autoload
и php artisan config:clear
, но я могу получить доступ к фасаду (и он работает ...) только с LogActivityFacade::log()
вместо LogActivity
.