Opis\Closure\ReflectionClosure::isScopeRequired
methodOpis\Closure\ReflectionClosure::isScopeRequired
methodT_STRING_VARNAME
null
, the optimisation failed to work as expected and kept the wrong SerializableClosure
scope.isShortClosure
method to Opis\Closure\ReflectionClosure
stream_set_option()
createClosure
static method in Opis\Closure\SerializableClosure
.
This method creates a new closure from arbitrary code, emulating create_function
,
but without using evalsha1
instead of md5
for hashing file names in Opis\Closure\ReflectionClosure
classjson_encode
is no longer used
when signing a closure. Backward compatibility is maintained and all closures that were
previously signed using the old method will continue to work.Opis\Closure\SecurityException
exception is no longer thrown when
unserializing a signed closure, if no security provider is set.A::new()
, A::use()
, A::if()
, A::function()
, A::__DIR__()
, etc.@internal
to mark classes & methods that are for internal use only and
backward compatibility is not guaranteed.$this
keyword was used inside an anonymous classparent
keyword was treated like a class-name and scope was not added to the
serialized closuretransformUseVariables
and resolveUseVariables
to
Opis\Closure\SerializableClosure
class.removeSecurityProvider
static method to
Opis\Closure\SerializableClosure
class.SerializableClosure::mapPointers
methodSerializableClosure::unwrapClosures
SerializableClosure::getClosurePointer
methodOpis\Closure\ClosureScope
now extends SplObjectStorage
storage
property was removed from Opis\Closure\ClosureScope
instances
and objects
properties were removed from Opis\Closure\ClosureContext
$this
object was not handled properly inside the
SerializableClosre::serialize
method.lib
to src
folderOpis\Closure\SerializableClosure::from
method and from constructorOpis\Closure\{SecurityProviderInterface, DefaultSecurityProvider, SecureClosure}
classeswrapClosures
and unwrapClosures
static methods to Opis\Closure\SerializableClosure
classOpis\Colosure\serialize
and Opis\Closure\unserialize
functionsOpis\Closure\SerializableClosure::__invoke
methodOpis\Closure\{ISecurityProvider, SecurityProvider}
were addedOpis\Closure\{SecurityProviderInterface, DefaultSecurityProvider, SecureClosure}
were deprecated
and they will be removed in the next major versionsetSecretKey
and addSecurityProvider
static methods were added to Opis\Closure\SerializableClosure
isBindingRequired
and isScopeRequired
to the Opis\Closure\ReflectionClosure
classOpis\Closure\ReflectionClosure::fetchItems
Opis\Closure\ClosureContext
, Opis\Closure\ClosureScope
, Opis\Closure\SelfReference
and Opis\Closure\SecurityException
classes were moved into separate filesOpis\Closure\ReflectionClosure
class__METHOD__
, __FUNCTION__
and __TRAIT__
magic constantsOpis\Closure\SecurityProviderInterface
,
Opis\Closure\DefaultSecurityProvider
, Opis\Closure\SecureClosure
, Opis\Closure\SecurityException
.Opis\Closure\ReflectionClosure::getClasses
methodisStatic
method to Opis\Closure\ReflectionClosure
classbranch-alias
property from composer.json
#trackme
directive which allows tracking closure's residing source