Releases: salient-labs/toolkit
Releases · salient-labs/toolkit
v0.99.0
v0.21.49
This is the final release of lkrms/util. It is moving to Salient as salient/toolkit.
Changed
- Sync: move abstract and high-priority classes to
Salient\Sync - Rename:
ISyncClassResolver->SyncClassResolverInterfaceISyncContext->SyncContextInterfaceISyncDefinition->SyncDefinitionInterfaceISyncEntity->SyncEntityInterfaceISyncEntityProvider->SyncEntityProviderInterfaceISyncEntityResolver->SyncEntityResolverInterfaceISyncProvider->SyncProviderInterfaceISyncSerializeRules->SyncSerializeRulesInterfaceSyncDefinition->AbstractSyncDefinitionSyncEntity->AbstractSyncEntitySyncOperations->SyncOperationGroupSyncProvider->AbstractSyncProviderSyncException->AbstractSyncExceptionSyncEvent->AbstractSyncEventSyncStoreEvent->AbstractSyncStoreEvent
v0.21.48
Added
- Add
BadMethodCallException
Changed
- Return
nullfromCache::getInstanceOf(),Cache::getArray(),Cache::getInt(),Cache::getString()instead of throwing an exception when the cached item is of the wrong type - In
SqliteStore, implementUnloadable, throw an exception ifgetFilename()is called when the database is not open, improve documentation - In
ImmutableArrayAccess, throwBadMethodCallExceptioninstead ofLogicException - Use
ImmutableArrayAccessinConfigurationManager - Make
HasBuilder::getBuilder()protected - Improve
ContainerInterface::getAs()generics - Ignore
@throwstags inPhpDoc::hasDetail() - Move remaining classes, interfaces and traits to
Salient - Rename:
ArrayKeyConformity->ListConformityEntity->AbstractEntityHasDateProperties->TemporalHasDescription->DescribableHasIdentifier->IdentifiableHasJsonSchema->JsonSchemaInterfaceHasName->NameableHasParentProperty->TreeableHasProviderContext->ProviderContextAwareInterfaceIConstructible->ConstructibleIEntity->EntityInterfaceIExtensible->ExtensibleIProvidable->ProvidableIProvider->ProviderInterfaceIProviderContext->ProviderContextInterfaceIProviderEntity->ProvidableEntityInterfaceIRelatable->RelatableIResolvable->NormalisableISerializeRules->SerializeRulesInterfaceITreeable->HierarchyInterfaceProvider->AbstractProviderReceivesProvider->ProviderAwareInterfaceRelationshipType->CardinalityReturnsNormaliser->NormaliserFactorySqliteStore->AbstractStoreTtyControlSequence->EscapeSequenceImmutableArrayAccess->ImmutableArrayAccessTraitICollection->CollectionInterfaceTCollection->CollectionTraitTImmutableCollection->ImmutableCollectionTraitTypedCollection->AbstractTypedCollectionIList->ListInterfaceTList->ListTraitTImmutableList->ImmutableListTraitTypedList->AbstractTypedListTReadableCollection->ReadableCollectionTraitHasParent->TreeableTraitIComparable->ComparableIStoppableEvent->StoppableEventInterfaceTConstructible->ConstructibleTraitTExtensible->ExtensibleTraitTProvidable->ProvidableTraitTStoppableEvent->StoppableEventTrait
- Do not extend
NormalisablefromNormaliserFactory - Extend
HasProviderfromProviderAwareInterface - Merge
HasChildrenPropertyintoTreeable - Merge
HasProviderContextintoProviderContextAwareInterface - Merge
HasServiceintoServiceAwareInterface - Rename
HasProvider::provider()togetProvider() - Rename
HierarchyInterface::countDescendants()togetDescendantCount() - Rename
NormaliserFactory::normaliser()togetNormaliser() - Rename
ProviderContextAwareInterface::context()togetContext() - Rename
ServiceAwareInterface::service()togetService() - Move
IEntity::plural()toISyncEntity - Move
SerializeRulesInterface::getFlags()toISyncSerializeRules
Removed
- Remove
Sys::sqliteHasUpsert() - Remove
Buildable::getBuilder() - Remove
TokenExtractor(moved toLkrms\LkUtilnamespace)
Fixed
Cache: fix issue where an exception is thrown when an instance of a class that no longer exists is returned from the cache
v0.21.47
Changed
- Move classes into the
Salientnamespace:Lkrms\Container\*->Salient\Container\*Lkrms\Cli\*->Salient\Cli\*Lkrms\Console\*->Salient\Console\*Lkrms\Concept\Builder->Salient\Core\AbstractBuilderLkrms\Concern\HasBuilder->Salient\Core\Concern\HasBuilderLkrms\Contract\Buildable->Salient\Core\Contract\BuildableLkrms\Contract\HasContainer->Salient\Container\Contract\HasContainerLkrms\Contract\HasService->Salient\Container\Contract\HasServiceLkrms\Facade\App->Salient\Core\Facade\AppLkrms\Facade\Console->Salient\Core\Facade\ConsoleLkrms\Facade\Err->Salient\Core\Facade\ErrLkrms\Facade\Profile->Salient\Core\Facade\ProfileLkrms\Support\Catalog\TtyControlSequence->Salient\Core\Catalog\TtyControlSequenceLkrms\Support\ErrorHandler->Salient\Core\ErrorHandlerLkrms\Support\MetricCollector->Salient\Core\MetricCollector
v0.21.46
Added
- Add
Processand supporting classes - Add
Env::flag() - Add
Sys::isWindows() - Add
Pcre::delimit()
Changed
- Replace
Get::apparent()withGet::arrayKey() - In
Env::apply(), don't throw an exception whensetlocale()fails - Allow
Env::get*()default values to be closures
Removed
- Remove
Regex::delimit()andRegex::anchorAndDelimit()
Fixed
- Fix inconsistent handling of non-empty whitespace-only strings by preserving them without collapsing to
nullinEnv::getNullable()
v0.21.45
Added
- Add
SyncEntityRecursionException - Add
ISyncContext::pushWithRecursionCheck() - Add
ISyncContext::maybeThrowRecursionException()
Changed
- Sync: prevent infinite recursion during entity hydration
- Call
ISyncContext::pushWithRecursionCheck()instead ofISyncContext::push()where necessary - Call
ISyncContext::maybeThrowRecursionException()before requesting entities from providers
- Call
- In
GetSyncEntities, applyDeferralPolicy::DO_NOT_RESOLVEin addition toHydrationPolicy::SUPPRESSwhen--shallowis given
Fixed
- Fix issue where deferred relationships are created to hydrate entities with no identifier
v0.21.44
v0.21.43
Added
- Add
HasFacade::updateFacade()to improve support for facades with immutable underlying instances
Changed
- Make
Get::binaryHash()andGet::hash()parameter$valuenon-variadic - Move
Test::firstExistingDirectoryIsWritable()toFile::creatable()and accept file names, not just directories - Allow filesystem-related assertions to throw exceptions other than
FilesystemErrorException - Improve
Pcreerror reporting - Continue migration to
Salientnamespace- Move utility classes to
Salient\Core\Utility - Move
EventHandlerand related classes toSalient\Core - Move enumeration- and dictionary-related interfaces and classes to
Salient\Coreand rename:IEnumeration->EnumerationInterfaceIConvertibleEnumeration->ConvertibleEnumerationInterfaceIDictionary->DictionaryInterfaceCatalog->AbstractCatalogEnumeration->AbstractEnumerationConvertibleEnumeration->AbstractConvertibleEnumerationReflectiveEnumeration->AbstractReflectiveEnumerationDictionary->AbstractDictionary
- Move
RegularExpressionandCharacterSequencetoSalient\Core\Catalogand rename:RegularExpression->RegexCharacterSequence->Char
- Move exceptions to
Salient\Coreand rename:Exception->AbstractExceptionMultipleErrorException->AbstractMultipleErrorExceptionIncompatibleRuntimeEnvironmentException->InvalidRuntimeConfigurationExceptionPipelineResultRejectedException->PipelineFilterExceptionInvalidDotenvSyntaxException->InvalidDotEnvSyntaxException
- Move pipeline- and immutable-related interfaces, classes and traits to
Salient\Coreand rename:IFluentInterface->ChainableFluentInterface->HasChainableMethods(class -> trait)Immutable->HasImmutablePropertiesIImmutable->ImmutableIPipeline->PipelineInterfaceIPipe->PipeInterface
- Move utility classes to
- Refactor pipelines
- Require closures where callables were previously sufficient
- Rename
throughCallback()tothroughClosure() - Split
PipelineInterfaceinto multiple interfaces to surface different methods aftersend()orstream()are called, and to prevent useless early calls towithConformity()
- Add
fromNames()andtoNames()toConvertibleEnumerationInterfaceand implement inAbstractConvertibleEnumerationandAbstractReflectiveEnumeration - Move
Convert::toNormal()toStr::normalise() - Move
Convert::queryToData()toGet::filter()and refactor to take advantage ofparse_str() - Move
Convert::dataToQuery()toGet::query()and addQueryFlagfor more precise control of serialization - Move
Convert::uuidToHex()toGet::uuid()and allow the given UUID to be in hexadecimal form already - Add
Compute::binaryUuid()and remove$binaryparameter fromCompute::uuid() - Move
Convert::unwrap()toStr::unwrap() - Move
Convert::toShellArg()andConvert::toCmdArg()toSysas private methodsescapeShellArg()andescapeCmdArg() - Move
ComputemethodsbinaryUuid(),uuid(),randomText(),binaryHash(),hash()toGet - Move
ComputemethodstextDistance()andtextSimilarity()toStr::distance()andStr::similarity()respectively - Move
ngramSimilarity(),ngramIntersection(),ngrams()fromComputetoStr - Rename
ResolvesServiceListstrait toHasUnderlyingService - Rename
SortTypeFlagtoSortFlag
Removed
- Remove
PipelineFilterException(previouslyPipelineResultRejectedException) becauseunless()andsend()cannot be used together - Remove empty
Computeclass - Remove
Convertclass, including unused methodstoStrings()andobjectToArray() - Remove unused
IsConvertibleEnumerationtrait
Fixed
- Fix
HasFacadeissue where instances are not always reused - Fix issue where
AbstractFacade::unload()does not unload service lists
v0.21.42
Added
- Add service container methods
hasSingleton()andunbindInstance()
Changed
- Leave
unload()ed service containers in a usable state
Fixed
- Fix issue where
HasFacadedoesn't remove references to cloned instances when unloaded - Fix issue where service container bindings are forgotten when a facade's underlying instance is removed from a container