public static function from(Closure $closure, $serializeThis = false)
{
if (static::$context === null) {
$instance = new static($closure, $serializeThis);
} elseif (isset(static::$context->instances[$closure])) {
$instance = static::$context->instances[$closure];
$instance->serializeThis = $serializeThis;
} else {
$instance = new static($closure, $serializeThis);
static::$context->instances[$closure] = $instance;
}
return $instance;
}
/** * String representation of object * @link http://php.net/manual/en/serializable.serialize.php * @return string the string representation of the object or null * @since 5.1.0 */ public function serialize() { SerializableClosure::enterContext(); $object = serialize(array_map(function ($value) { return $value instanceof Closure ? SerializableClosure::from($value) : $value; }, $this->factories)); SerializableClosure::exitContext(); return $object; }