moduleSize = filter_var($this->moduleSizeHr, FILTER_SANITIZE_NUMBER_INT); $this->overclockingVerified = in_array($this->overclockingSupport, self::OVERCLOCKING_VERIFIED, true); $this->dualChannelOverclockingVerified = $this->overclockingSupport === '2'; $this->deriveAdditionalFields(); } private function deriveAdditionalFields(): void { $this->findTotalSize(); $this->numberOfModules = $this->totalSize / $this->moduleSize; } private function findTotalSize(): void { // Initially 8 times the module size $this->totalSize = self::MAX_MOTHERBOARD_SLOTS * $this->moduleSize; // Work our way down to the module size... while (!str_contains($this->module, $this->totalSize) && $this->totalSize > $this->moduleSize) { $this->totalSize /= 2; } $this->totalSizeHr = sprintf('%dGB', $this->totalSize); } }