В Symfony 3.4.17 в Symfony\Component\Cache\Adapter\AbstractAdapter.php
есть строка, которая вызывает предупреждение PHpStorm:
$this->createCacheItem = \Closure::bind(
function ($key, $value, $isHit) use ($defaultLifetime) {
$item = new CacheItem();
$item->key = $key; //directly accessing protected property!
$item->value = $value;
$item->isHit = $isHit;
$item->defaultLifetime = $defaultLifetime;
return $item;
},
null,
CacheItem::class
);
Свойство $ key, $ value и т. Д. Являются защищенными свойствами CacheItem ();.
PHP должен выдавать исключение при непосредственном доступе к защищенным объектам, я дважды проверил это с помощью этого скрипта:
<?php
class test {
protected $a = '';
}
$test= new test();
$test->a = 'b';
var_dump($test);
Это выдает 'PHP Fatal error: Uncaught Error: Невозможно получить доступ к тесту защищенного свойства :: $ a'.
Почему код Symfony работает без проблем, но мой скрипт (правильно) не работает?