Если честно, функция store
должна быть функцией экземпляра (ключевое слово remove static
), в противном случае использование внутри нее $this
не будет иметь понятия, на какой объект она ссылается.
В качестве альтернативы,Вы могли бы передавать объекты в ссылки на себя, чтобы статическая функция знала, с каким объектом действовать: static function store($obj, $key, $value) [...] $obj->app [...]
Или просто передайте содержимое $obj->app
, так как статической функции нужен только этот элементинформации и не доступ ко всему объекту:
static function store($app, $key, $value)
{
$key = sha1($key);
$value = serialize($value);
file_put_contents( $app . $key.'.cache', $value);
}