Работа на моем первом пакете Laravel и работает в неприятности с тем, как работает мой фасад, в настоящее время использование выглядит примерно так:Laravel на заказ Фасад нового экземпляра
{!! Custom::showValue() !}} //returns "default"
{!! Custom::setValue('test')->showValue() !}} //returns "test"
{!! Custom::showValue() !}} //returns "test"
Я бы ожидать, что последний элемент, чтобы пойти на новое экземпляр класса, так как я использовал привязку вместо одноэлементных при настройке моего поставщика услуг:
public function register()
{
$this->registerCustom();
}
public function registerCustom(){
$this->app->bind('custom',function() {
return new Custom();
});
}
есть ли что-то еще мне нужно сделать, чтобы сделать это так, каждый фасад вызов «Custom» возвращает новый экземпляр класса ?
Это не то, как работают фасады Ларавеля. Фасады представляют собой синтаксический сахар, который позволяет вам получать доступ к общедоступным методам одного экземпляра посредством статического доступа. Рассмотрите возможность использования метода общедоступного фабрики в базовом классе (или, еще лучше, фактического класса Factory), или используйте Dependency Injection для достижения того, что вы ищете. – maiorano84