/** * Put instance to cache. * * @param mixed $key * @param Model $instance * @param array $attributes * @return Model */ public function put($key, Model $instance, array $attributes = ['*']) { if ($attributes != ['*'] && $this->has($key)) { $instance = Model::merge($this->cache[$key]['instance'], $instance, $attributes); $attributes = array_merge($this->cache[$key]['attributes'], $attributes); } $this->cache[$key] = ['instance' => $instance, 'attributes' => $attributes]; return $instance; }