From: Roland Häder Date: Sun, 26 Jan 2025 17:44:31 +0000 (+0100) Subject: Continued: X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=08f383fa5216768d64ff6249318b816741c97f39;p=hub.git Continued: - private and final isn't needed - added public method `generateListHashFromEntry (array $entry): string` to interface - updated 'core' framework --- diff --git a/application/hub/classes/discovery/recipient/socket/class_PackageSocketDiscovery.php b/application/hub/classes/discovery/recipient/socket/class_PackageSocketDiscovery.php index f62c0ca5c..a48f8eb47 100644 --- a/application/hub/classes/discovery/recipient/socket/class_PackageSocketDiscovery.php +++ b/application/hub/classes/discovery/recipient/socket/class_PackageSocketDiscovery.php @@ -234,8 +234,8 @@ class PackageSocketDiscovery extends BaseRecipientDiscovery implements Discovera } // And return it - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('PACKAGE-SOCKET-DISCOVERY: socketInstance=%s,socketInstance->socketResource=%s - EXIT!', $socketInstance->__toString(), $socketInstance->getSocketResource())); - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('PACKAGE-SOCKET-DISCOVERY: socketResource=' . $socketInstance->getSocketResource() . ',packageInstance=' . print_r($packageInstance, TRUE)); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('PACKAGE-SOCKET-DISCOVERY: socketInstance=%s,socketInstance->socketResource=%s - EXIT!', $socketInstance->__toString(), $socketInstance->getPrintableName())); + //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('PACKAGE-SOCKET-DISCOVERY: socketResource=' . $socketInstance->getPrintableName() . ',packageInstance=' . print_r($packageInstance, TRUE)); return $socketInstance; } diff --git a/application/hub/classes/factories/socket/class_SocketFactory.php b/application/hub/classes/factories/socket/class_SocketFactory.php index 4e9ab32f7..6fa1317e4 100644 --- a/application/hub/classes/factories/socket/class_SocketFactory.php +++ b/application/hub/classes/factories/socket/class_SocketFactory.php @@ -111,7 +111,7 @@ class SocketFactory extends BaseFactory { $socketInstance = self::$socketRegistryInstance->getInstance($registryKey); // Debug message - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('SOCKET-FACTORY: Using socketResource[%s]=%s from registry.', gettype($socketInstance->getSocketResource()), $socketInstance->getSocketResource())); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('SOCKET-FACTORY: Using socketResource[%s]=%s from registry.', gettype($socketInstance->getSocketResource()), $socketInstance->getPrintableName())); } else { // Invoke inner factory $socketInstance = ObjectFactory::createObjectByConfiguredName(sprintf('%s_connection_helper_class', $protocolInstance->getProtocolName()), array($packageInstance)); @@ -454,7 +454,7 @@ class SocketFactory extends BaseFactory { */ public static final function createNextAcceptedSocketFromPool (Poolable $poolInstance, StorableSocket $socketInstance) { // Invoke static initializer - /* NOISY-DEBUG */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('SOCKET-FACTORY: poolInstance=%s,socketInstance->socketResource=%s - CALLED!', $poolInstance->__toString(), $socketInstance->getSocketResource())); + /* NOISY-DEBUG */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('SOCKET-FACTORY: poolInstance=%s,socketInstance->socketResource=%s - CALLED!', $poolInstance->__toString(), $socketInstance->getPrintableName())); self::staticInitializer(); // Get socket protocol diff --git a/application/hub/classes/handler/raw_data/tcp/class_TcpRawDataHandler.php b/application/hub/classes/handler/raw_data/tcp/class_TcpRawDataHandler.php index eacfba8b3..7725d92e7 100644 --- a/application/hub/classes/handler/raw_data/tcp/class_TcpRawDataHandler.php +++ b/application/hub/classes/handler/raw_data/tcp/class_TcpRawDataHandler.php @@ -82,7 +82,7 @@ class TcpRawDataHandler extends BaseRawDataHandler implements Networkable { $this->setErrorCode(StorableSocket::SOCKET_ERROR_UNHANDLED); // Read the raw data from socket in a loop - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('TCP-RAW-DATA-HANDLER: Handling TCP package from socketResource=%s,last error=%s,socketType=%s', $socketInstance->getSocketResource(), $socketInstance->getLastSocketErrorMessage(), $socketInstance->getSocketType())); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('TCP-RAW-DATA-HANDLER: Handling TCP package from socketResource=%s,last error=%s,socketType=%s', $socketInstance->getPrintableName(), $socketInstance->getLastSocketErrorMessage(), $socketInstance->getSocketType())); while ($rawData = $socketInstance->readDataFromSocket()) { // Get socket error code back /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('TCP-RAW-DATA-HANDLER: rawData(%d)[]=%s', strlen($rawData), gettype($rawData))); @@ -96,7 +96,7 @@ class TcpRawDataHandler extends BaseRawDataHandler implements Networkable { * ignored on non-blocking sockets. The socket is currently not * sending any data. */ - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('TCP-RAW-DATA-HANDLER: Ignoring error 11 (Resource temporary unavailable) from socketResource=%s - CONTINUE!', $socketInstance->getSocketResource())); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('TCP-RAW-DATA-HANDLER: Ignoring error 11 (Resource temporary unavailable) from socketResource=%s - CONTINUE!', $socketInstance->getPrintableName())); $socketInstance->clearLastSocketError(); // Is there anything to add to the stacker? diff --git a/application/hub/classes/handler/raw_data/udp/class_UdpRawDataHandler.php b/application/hub/classes/handler/raw_data/udp/class_UdpRawDataHandler.php index 44b4942de..bba06b103 100644 --- a/application/hub/classes/handler/raw_data/udp/class_UdpRawDataHandler.php +++ b/application/hub/classes/handler/raw_data/udp/class_UdpRawDataHandler.php @@ -72,7 +72,7 @@ class UdpRawDataHandler extends BaseRawDataHandler implements Networkable { $this->setErrorCode(StorableSocket::SOCKET_ERROR_UNHANDLED); // Debug message - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('UDP-HANDLER: Handling UDP package from socketResource=%s,last error=%s', $socketInstance->getSocketResource(), $socketInstance->getLastSocketErrorMessage())); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('UDP-HANDLER: Handling UDP package from socketResource=%s,last error=%s', $socketInstance->getPrintableName(), $socketInstance->getLastSocketErrorMessage())); DebugMiddleware::getSelfInstance()->partialStub('Please rewrite this part.'); return; } diff --git a/application/hub/classes/listener/class_BaseListener.php b/application/hub/classes/listener/class_BaseListener.php index a1136abeb..162818462 100644 --- a/application/hub/classes/listener/class_BaseListener.php +++ b/application/hub/classes/listener/class_BaseListener.php @@ -232,7 +232,7 @@ abstract class BaseListener extends BaseHubSystem implements Visitable { /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('%s-LISTENER: socketInstance=%s - CALLED!', strtoupper($this->getProtocolName()), $socketInstance->__toString())); if ($this->isServerSocketRegistered($socketInstance)) { // Already registered - throw new SocketAlreadyRegisteredException(array($this, $socketInstance->getSocketResource()), self::EXCEPTION_SOCKET_ALREADY_REGISTERED); + throw new SocketAlreadyRegisteredException([$this, $socketInstance->getSocketResource()], self::EXCEPTION_SOCKET_ALREADY_REGISTERED); } // Get a connection info instance @@ -248,11 +248,11 @@ abstract class BaseListener extends BaseHubSystem implements Visitable { $infoInstance->fillWithListenerInformation($this); // Register the socket - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('%s-LISTENER: Registering socketInstance->socketResource=%s,socketType=%s ...', strtoupper($this->getProtocolName()), $socketInstance->getSocketResource(), $socketInstance->getSocketType())); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('%s-LISTENER: Registering socketInstance->socketResource=%s,socketType=%s ...', strtoupper($this->getProtocolName()), $socketInstance->getPrintableName(), $socketInstance->getSocketType())); $this->getRegistryInstance()->registerSocketInstance($infoInstance, $socketInstance); // And set it here - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('%s-LISTENER: Setting socketInstance=%s (socketResource=%s) ...', strtoupper($this->getProtocolName()), $socketInstance->__toString(), $socketInstance->getSocketResource())); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('%s-LISTENER: Setting socketInstance=%s (socketResource=%s) ...', strtoupper($this->getProtocolName()), $socketInstance->__toString(), $socketInstance->getPrintableName())); $this->setSocketInstance($socketInstance); // Trace message @@ -282,7 +282,7 @@ abstract class BaseListener extends BaseHubSystem implements Visitable { $infoInstance->fillWithListenerInformation($this); // Check it - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('%s-LISTENER: Checking socketInstance ... (socketResource=%s)', strtoupper($this->getProtocolName()), $socketInstance->getSocketResource())); + //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('%s-LISTENER: Checking socketInstance ... (socketResource=%s)', strtoupper($this->getProtocolName()), $socketInstance->getPrintableName())); $isRegistered = $this->getRegistryInstance()->isSocketRegistered($infoInstance, $socketInstance); // Return result @@ -441,7 +441,7 @@ abstract class BaseListener extends BaseHubSystem implements Visitable { $socketInstance->setSenderPort($peerPort); // Register the socket with the registry and with the faked array - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('%s-LISTENER: Registering socketInstance->socketResource=%s,socketType=%s ...', strtoupper($this->getProtocolName()), $socketInstance->getSocketResource(), $socketInstance->getSocketType())); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('%s-LISTENER: Registering socketInstance->socketResource=%s,socketType=%s ...', strtoupper($this->getProtocolName()), $socketInstance->getPrintableName(), $socketInstance->getSocketType())); $this->getRegistryInstance()->registerSocketInstance($infoInstance, $socketInstance); // Invoke private method diff --git a/application/hub/classes/listener/socket/class_SocketFileListener.php b/application/hub/classes/listener/socket/class_SocketFileListener.php index 130b8a2ba..dc5391652 100644 --- a/application/hub/classes/listener/socket/class_SocketFileListener.php +++ b/application/hub/classes/listener/socket/class_SocketFileListener.php @@ -100,7 +100,7 @@ class SocketFileListener extends BaseListener implements Listenable { $this->setHandlerInstance($handlerInstance); // Output message - self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('SOCKET-FILE-LISTENER: Socket listener now ready on socket ' . $socketInstance->getSocketResource() . ' for service.'); + self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('SOCKET-FILE-LISTENER: Socket listener now ready on socket ' . $socketInstance->getPrintableName() . ' for service.'); } /** diff --git a/application/hub/classes/pools/class_BasePool.php b/application/hub/classes/pools/class_BasePool.php index 59eaa48dd..72558c065 100644 --- a/application/hub/classes/pools/class_BasePool.php +++ b/application/hub/classes/pools/class_BasePool.php @@ -14,6 +14,9 @@ use Org\Mxchange\CoreFramework\Registry\Object\ObjectRegistry; use Org\Mxchange\CoreFramework\Visitor\Visitable; use Org\Mxchange\CoreFramework\Visitor\Visitor; +// Import SPL stuff +use \Iterator; + /** * A general pool class * @@ -70,7 +73,7 @@ abstract class BasePool extends BaseHubSystem implements Poolable, Visitable { * @param $visitableInstance An instance of a class that should bed added to the pool * @return void */ - protected final function addInstance ($group, $poolName, Visitable $visitableInstance) { + protected final function addInstance (string $group, string $poolName, Visitable $visitableInstance): void { // Debug message //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('POOL: group=' . $group . ',poolName=' . $poolName . ',visitableInstance=' . $visitableInstance->__toString() . ' - CALLED!'); @@ -96,7 +99,7 @@ abstract class BasePool extends BaseHubSystem implements Poolable, Visitable { * @param $poolEntry The new pool entry that should be added * @return void */ - protected final function addPoolEntry ($poolEntry) { + protected final function addPoolEntry ($poolEntry): void { $this->getPoolEntriesInstance()->addEntry('pool', $poolEntry); } @@ -106,7 +109,7 @@ abstract class BasePool extends BaseHubSystem implements Poolable, Visitable { * @param $list The list identifier we should return * @return $array The requested array */ - public final function getArrayFromList (string $list) { + public final function getArrayFromList (string $list): array { // Get the array $array = $this->getPoolEntriesInstance()->getArrayFromList($list); @@ -129,7 +132,7 @@ abstract class BasePool extends BaseHubSystem implements Poolable, Visitable { * @param $visitorInstance An instance of a Visitor class * @return void */ - public function accept (Visitor $visitorInstance) { + public function accept (Visitor $visitorInstance): void { // Debug message //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('POOL: ' . $visitorInstance->__toString() . ' has visited - CALLED!'); @@ -182,7 +185,7 @@ abstract class BasePool extends BaseHubSystem implements Poolable, Visitable { * * @return void */ - public function preShutdown () { + public function preShutdown (): void { // Debug message //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('POOL: Shutting down listener pool - CALLED!'); @@ -202,7 +205,7 @@ abstract class BasePool extends BaseHubSystem implements Poolable, Visitable { * @param $poolType Pool type (e.g. socket_listen) * @return $iteratorInstance An instance of a Iterator class */ - public function createListIteratorInstance ($poolType) { + public function createListIteratorInstance (string $poolType): Iterator { // Create iterator instance $iteratorInstance = ObjectFactory::createObjectByConfiguredName($poolType . '_iterator_class', array($this->getPoolEntriesInstance())); @@ -216,7 +219,7 @@ abstract class BasePool extends BaseHubSystem implements Poolable, Visitable { * @param $entry Array entry to be used * @return $hash Hash from it */ - public function generateListHashFromEntry (array $entry) { + public function generateListHashFromEntry (array $entry): string { // Trace message //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('POOL: entry()=%d - CALLED!', count($entry))); @@ -229,7 +232,7 @@ abstract class BasePool extends BaseHubSystem implements Poolable, Visitable { // Is 'instance' and 'connection_type' set? if ((isset($entry[Poolable::SOCKET_ARRAY_INSTANCE])) && (isset($entry[Poolable::SOCKET_ARRAY_CONN_TYPE]))) { // Get socket resource and type - $hash = $entry[Poolable::SOCKET_ARRAY_INSTANCE]->getSocketResource() . ':' . $entry[Poolable::SOCKET_ARRAY_CONN_TYPE]; + $hash = $entry[Poolable::SOCKET_ARRAY_INSTANCE]->getPrintableName() . ':' . $entry[Poolable::SOCKET_ARRAY_CONN_TYPE]; } else { // Not supported $this->debugInstance(sprintf('[%s:%d]: entry=%s is not supported.', __METHOD__, __LINE__, print_r($entry, TRUE))); diff --git a/application/hub/classes/pools/peer/class_DefaultPeerPool.php b/application/hub/classes/pools/peer/class_DefaultPeerPool.php index bd2ccd5c9..c196735ca 100644 --- a/application/hub/classes/pools/peer/class_DefaultPeerPool.php +++ b/application/hub/classes/pools/peer/class_DefaultPeerPool.php @@ -80,7 +80,7 @@ class DefaultPeerPool extends BasePool implements PoolablePeer { */ private function validateSocket (StorableSocket $socketInstance) { // Is it a valid resource? - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('HUB-SYSTEM: socketInstance->socketResource=%s - CALLED!', $socketInstance->getSocketResource())); + //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('HUB-SYSTEM: socketInstance->socketResource=%s - CALLED!', $socketInstance->getPrintableName())); if (!$socketInstance->isValidSocket()) { // Throw an exception throw new InvalidSocketException([$this, $socketInstance->getSocketResource()], self::EXCEPTION_INVALID_SOCKET); @@ -107,7 +107,7 @@ class DefaultPeerPool extends BasePool implements PoolablePeer { */ public function addPeer (StorableSocket $socketInstance, string $connectionType) { // Validate parameter - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('DEFAULT-PEER-POOL: socketResource[%s]=%s,connectionType=%s - CALLED!', gettype($socketInstance->getSocketResource()), $socketInstance->getSocketResource(), $connectionType)); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('DEFAULT-PEER-POOL: socketResource[%s]=%s,connectionType=%s - CALLED!', gettype($socketInstance->getSocketResource()), $socketInstance->getPrintableName(), $connectionType)); if (empty($connectionType)) { // Throw exception throw new InvalidArgumentException('Parameter "connectionType" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); @@ -135,11 +135,11 @@ class DefaultPeerPool extends BasePool implements PoolablePeer { } } else { // Server sockets won't work with socket_getpeername() - self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('DEFAULT-PEER-POOL: Socket resource is server socket (' . $socketInstance->getSocketResource() . '). This is not a bug.'); + self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('DEFAULT-PEER-POOL: Socket resource is server socket (' . $socketInstance->getPrintableName() . '). This is not a bug.'); } // Construct the array - /* DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('DEFAULT-PEER-POOL: Adding peer ' . $peerAddress . ':' . $peerPort . ',socketResource=' . $socketInstance->getSocketResource() . ',connectionType=' . $connectionType); + /* DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('DEFAULT-PEER-POOL: Adding peer ' . $peerAddress . ':' . $peerPort . ',socketResource=' . $socketInstance->getPrintableName() . ',connectionType=' . $connectionType); $socketArray = [ Poolable::SOCKET_ARRAY_INSTANCE => $socketInstance, Poolable::SOCKET_ARRAY_CONN_TYPE => $connectionType diff --git a/application/hub/classes/registry/socket/class_SocketRegistry.php b/application/hub/classes/registry/socket/class_SocketRegistry.php index 67f983896..d0bc80fb7 100644 --- a/application/hub/classes/registry/socket/class_SocketRegistry.php +++ b/application/hub/classes/registry/socket/class_SocketRegistry.php @@ -228,7 +228,7 @@ class SocketRegistry extends BaseRegistry implements Register, RegisterableSocke /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('SOCKET-REGISTRY: infoInstance->protocolName=%s,infoInstance->socketResource[%s]=%s - CALLED!', $infoInstance->getProtocolName(), gettype($socketInstance->getSocketResource()), $socketInstance->getPrintableName())); if ($this->isSocketRegistered($infoInstance, $socketInstance)) { // Throw the exception - throw new SocketAlreadyRegisteredException(array($infoInstance, $socketInstance->getSocketResource()), BaseListener::EXCEPTION_SOCKET_ALREADY_REGISTERED); + throw new SocketAlreadyRegisteredException([$infoInstance, $socketInstance->getSocketResource()], BaseListener::EXCEPTION_SOCKET_ALREADY_REGISTERED); } // Create registry key diff --git a/application/hub/classes/resolver/state/peer/class_PeerStateResolver.php b/application/hub/classes/resolver/state/peer/class_PeerStateResolver.php index 3c934065e..8d392d3ba 100644 --- a/application/hub/classes/resolver/state/peer/class_PeerStateResolver.php +++ b/application/hub/classes/resolver/state/peer/class_PeerStateResolver.php @@ -88,7 +88,7 @@ class PeerStateResolver extends BaseStateResolver implements StateResolver { // Still no socket resource? if (!$socketInstance->isValidSocket()) { // Then abort here with an exception (may happen after socket_shutdown()) - throw new InvalidSocketException(array($helperInstance, $socketInstance->getSocketResource()), self::EXCEPTION_INVALID_SOCKET); + throw new InvalidSocketException([$helperInstance, $socketInstance->getSocketResource()], self::EXCEPTION_INVALID_SOCKET); } } diff --git a/application/hub/interfaces/pool/class_Poolable.php b/application/hub/interfaces/pool/class_Poolable.php index 5f5a17d0f..b425ec629 100644 --- a/application/hub/interfaces/pool/class_Poolable.php +++ b/application/hub/interfaces/pool/class_Poolable.php @@ -5,6 +5,9 @@ namespace Org\Shipsimu\Hub\Pool; // Import application-specific stuff use Org\Shipsimu\Hub\Generic\HubInterface; +// Import SPL stuff +use \Iterator; + /** * A Poolable interface * @@ -38,7 +41,7 @@ interface Poolable extends HubInterface { * @param $list The list identifier we should return * @return $array The requested array */ - function getArrayFromList (string $list); + function getArrayFromList (string $list): array; /** * Getter for pool entries instance @@ -52,7 +55,7 @@ interface Poolable extends HubInterface { * * @return void */ - function preShutdown (); + function preShutdown (): void; /** * Creates an iterator from inner list instance. @@ -60,6 +63,14 @@ interface Poolable extends HubInterface { * @param $poolType Pool type (e.g. 'socket_listen', 'network_listen') * @return $iteratorInstance An instance of a Iterator class */ - function createListIteratorInstance (string $poolType); + function createListIteratorInstance (string $poolType): Iterator; + + /** + * Creates a hash based on given entry + * + * @param $entry Array entry to be used + * @return $hash Hash from it + */ + function generateListHashFromEntry (array $entry): string; } diff --git a/application/hub/traits/fragmenter/class_FragmentableTrait.php b/application/hub/traits/fragmenter/class_FragmentableTrait.php index f9d7259c4..4f5241c2c 100644 --- a/application/hub/traits/fragmenter/class_FragmentableTrait.php +++ b/application/hub/traits/fragmenter/class_FragmentableTrait.php @@ -39,7 +39,7 @@ trait FragmentableTrait { * @param $fragmenterInstance A Fragmentable instance * @return void */ - private final function setFragmenterInstance (Fragmentable $fragmenterInstance) { + private function setFragmenterInstance (Fragmentable $fragmenterInstance) { $this->fragmenterInstance = $fragmenterInstance; } diff --git a/core b/core index 76a44f7f1..b0d8c8050 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 76a44f7f1b907c63484c751f1fcf19730c553b7d +Subproject commit b0d8c80500e1b796f2398c44f20b36173bfc4d6c