true, 'bytes' => null); } $bytes = isset($open['size']) && is_int($open['size']) ? $open['size'] : null; if (!is_array($onDisk)) { // Nothing at the path while our descriptor is still valid: the file // was renamed or unlinked out from under us. This is the window // between a sibling's rotation rename and its first new record. return array('still_names_path' => false, 'bytes' => $bytes); } $sameFile = ($onDisk['ino'] ?? null) === ($open['ino'] ?? null) && ($onDisk['dev'] ?? null) === ($open['dev'] ?? null); return array('still_names_path' => $sameFile, 'bytes' => $bytes); } /** * Route a captured filesystem warning to the PHP-level fallback log. * * Logging cannot go through the diagnostic sinks themselves, because this * class exists to guard them. */ private static function reportFilesystemWarning(string $operation, ?string $warning): void { if ($warning !== null && $warning !== '') { abj404_logPhpFallback('logger-internal', $operation . ': ' . $warning); } } }