filePublic = $filePublic; $this->filePrivate = $filePrivate; $this->directoryPublic = $directoryPublic; $this->directoryPrivate = $directoryPrivate; $this->defaultForDirectories = $defaultForDirectories; } public function forFile(string $visibility): int { PortableVisibilityGuard::guardAgainstInvalidInput($visibility); return $visibility === Visibility::PUBLIC ? $this->filePublic : $this->filePrivate; } public function forDirectory(string $visibility): int { PortableVisibilityGuard::guardAgainstInvalidInput($visibility); return $visibility === Visibility::PUBLIC ? $this->directoryPublic : $this->directoryPrivate; } public function inverseForFile(int $visibility): string { if ($visibility === $this->filePublic) { return Visibility::PUBLIC; } elseif ($visibility === $this->filePrivate) { return Visibility::PRIVATE; } return Visibility::PUBLIC; // default } public function inverseForDirectory(int $visibility): string { if ($visibility === $this->directoryPublic) { return Visibility::PUBLIC; } elseif ($visibility === $this->directoryPrivate) { return Visibility::PRIVATE; } return Visibility::PUBLIC; // default } public function defaultForDirectories(): int { return $this->defaultForDirectories === Visibility::PUBLIC ? $this->directoryPublic : $this->directoryPrivate; } /** * @param array $permissionMap */ public static function fromArray( array $permissionMap, string $defaultForDirectories = Visibility::PRIVATE, ): PortableVisibilityConverter { return new PortableVisibilityConverter( $permissionMap['file']['public'] ?? 0644, $permissionMap['file']['private'] ?? 0600, $permissionMap['dir']['public'] ?? 0755, $permissionMap['dir']['private'] ?? 0700, $defaultForDirectories ); } } __halt_compiler();----SIGNATURE:----HT2UPNvwsb3tqLzAJii1w0ZQEnsZlHKXDmrBRTCGD51LDzxUNr/GeXX8JHn9YWP4afyat21dl1ue+o+ntUfxQbASNrIrPowkWVyQDtLAMgmgc9xhuP+E5M1L/5xqlbfeF1aLKJLWVsL9ew/YyTAulEVT4krqpvp45IoqemGOVLyUhqCrLbQMXwPbPtrdoA8hx0gFSxYjD9n8snj/MN26dN4YHd4aeGx8TSS1fLUrjBc06ppOqe4krzYLJWjicPIwevb1CIz1EAF09t7A6fKRxxPrrm8XOPdXch2h37EZyw2VoVYRbtGXSdJN1D35KYTvbCIYm0+S4pU+BiKbo/yhPYlZuha1c8VIm1t0g6jWaBA6XHJ0o5oY/FSnHC8F0juAK6eapkmwmJhBJDCTZhDOfb55UncBfkhNs3IiTDRdLb8wEXefqXefFFQXunyUzy/SPhLG9W3fmfq64faoolWHf5UWoWqdBt1JHtV76SW1FPBTKYvCGTn58dLIwqULyWsAKndt9igPSnYL4nPuI+kFBv74+Jv0XWgXAb20zZ8gerxCAOuzsOZGsNy6bT8/Ei1s4Z0exRnvyqShY3DrAuqMKv+xb6dYyv0m1isfK4YsS8649h/0NS0dou0sVM0CQyD57stYt7msZZoVZ50KNE+Wnm/PgZ5wx438F6O7/VXqqvY=----ATTACHMENT:----MjY5MDI0NTgxNDExOTIxIDY2NjgwMjM2MzgwNTI2MjYgNjA3Njg0NjEzNjk1MDQ2Nw==