Laravel: действительно ли фасады создают новые объекты при вызове методов?

У меня есть демо-класс, обычно связанный через

  $ this-> app-> bind ('demo', function () {return new Demo ();} 

Устанавливать фасад

  защищенная статическая функция getFacadeAccessor () {return 'demo';  } 

Сам класс выглядит так

  класс Demo 
     {

         private $ value1;        
         private $ value2;        

         public function setVal1 (значение $)
         {
             $ this-> value1 = $ value;
         }

         public function setVal2 (значение $)
         {
             $ this-> value2 = $ value;
         }

         публичная функция getVals ()
         {
             return 'Val 1:'.  $ this-> value1.  «Вал 2:».  $ This-> значение2;
         }   

     } 

Мне сказали, что если я буду использовать фасад в этом классе, Laravel создаст объект класса, а затем вызовет метод на этом объекте, например:

$app->make['demo']->setVal1(); 

Butt Я проверил еще несколько и нашел это очень странное (по крайней мере для меня) поведение:

Если я сделаю

  Demo :: setVal1 ( '13654'); 

а также

  Демо :: setVal2 («случайная строка») 

Я не должен использовать Demo :: getVals () для извлечения значений, которые я только что создал, должен ли я? Поскольку каждый раз, когда используется метод фасада, создается экземпляр нового объекта и как один объект может извлекать свойства другого объекта? Там должно быть три разных экземпляра, но все же я могу получить свойства из этих других экземпляров …

Я думал, что это возможно только в том случае, если бы связать класс с App :: singleton, а не через App :: bind?

Solutions Collecting From Web of "Laravel: действительно ли фасады создают новые объекты при вызове методов?"

Фасад по-прежнему просто возвращает один экземпляр. Однако вы можете возвращать новые экземпляры класса, используя new static метод.

Я спросил на форуме Laravel, и nesl247 дал довольно хорошее объяснение. Его можно найти здесь: http://laravel.io/forum/08-22-2014-how-do-instantiate-a-new-object-by-calling-a-class-method-via-a-facade