get_from_cache( $id ); return ! empty( $media_item ); } /** * @param $id * * @return Media_Item|null */ public function get( $id ) { $media_item = $this->get_from_cache( $id ); if ( ! $media_item ) { $media_item = new Media_Item( $id ); $this->save_to_cache( $id, $media_item ); } return $media_item; } /** * @param $id * * @return Media_Item|null */ private function get_from_cache( $id ) { return $this->get_array_value( $this->media_items, $this->make_key( $id ) ); } private function make_key( $id ) { $membership_type_postfix = WP_Smush::is_pro() ? 'pro' : 'free'; return "wp-smush-$membership_type_postfix-media-item-$id"; } private function save_to_cache( $id, $media_item ) { $this->media_items[ $this->make_key( $id ) ] = $media_item; } public function remove( $id ) { unset( $this->media_items[ $this->make_key( $id ) ] ); } private function get_array_value( $array, $key ) { return $array && isset( $array[ $key ] ) ? $array[ $key ] : null; } public function reset_all() { foreach ( $this->media_items as $media_item ) { $media_item->reset(); } } }