cache = $cache; } protected function instantiate(string $class, array $data): object { $primaryKey = ColumnMapper::getPrimaryKeyColumnName($class); $object = $this->cache->get($class, $data[$primaryKey]) ?: ProxyFactory::create($class); $this->cache->set($class, $data[$primaryKey], $object); return $object; } }