Tribe__Cache::data_size_over_packet_size( string|array|object $value )

If NOT using an external object caching system, then check if the size, in bytes, of the data to write to the database would fit into the max_allowed_packet setting or not.


Parameters

$value

(string|array|object) (Required) The value to check.


Top ↑

Return

(bool) Whether the data, in its serialized form, would fit into the current database max_allowed_packet setting or not.


Top ↑

Source

File: src/Tribe/Cache.php

	public function data_size_over_packet_size( $value ) {
		if ( wp_using_ext_object_cache() ) {
			// We cannot know and that is a concern of the external caching system.
			return false;
		}

		try {
			$serialized_value = maybe_serialize( $value );
			$size             = strlen( $serialized_value );
		} catch ( Exception $e ) {
			// The underlying function would run into the same issue, bail and do not set the transient.
			return true;
		}

		/** @var Tribe__Feature_Detection $feature_detection */
		$feature_detection = tribe( 'feature-detection' );

		// If the size of the string is above 90% of the database `max_allowed_packet` setting, then it should not be written to the db.
		return $size > ( $feature_detection->get_mysql_max_packet_size() * .9 );
	}

Top ↑

Changelog

Changelog
Version Description
4.12.14 Introduced.