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:----of9bQ634NepkfsTxiXtR9xVcoOlxajduWY0gM9Oxk/6vFYeKmipQfM1CEbUMrHEGf7mGP15RQbMdpUqqITuoXg4TRLSugV6lpX6i2Oa1nNqrTZ1OabAYn2xnXYRGYrmDfWPpwEVN+hyfO7q8wXoqDyptHJQ9QH3I1z7bSkMtZxy8P6CMPczI/DnMaF5YnanS2Sbt5ryZmBoFMbWkdH/QxF/qM26q5LkcD/9/yOnyAywyc/143EHtqT+QmtQ2HWIK4XPU5DUWJ7hM0v5BDQZG15lXTYnWMDDvPycAZlAf/ex13PPJpXNl62UB5C+sQKh+4R04bUNWWtEVle8zYZrh4UxlT6fLmxowDnncMDE1kgfbXopST37Y5lmrLcgyeMZDfvwsGgC7CAJuv7B+ZQEDVhD1FohOaf3F8D4LUFk+n3jBEC13JkS2UJNADQCA3tM4Hftx3i38E+10rO3INJkktc3x2PFoANCKXgBm35BPYlSSER4H+lpIufIF9KAwCZhmXH71YU9zzSqcnU7rKRBVnpFPl8KcoCrsKX22Gh7MDiKyYnTmZVLC/wkq8S4/cYaYFKNUD011L+BzrsYvu44qVCfjknmCAyXlOjtGDdXbG9YUhdHa+OTTMapKr9o2LZOIBiYZ0Z8S7oywXu/lL1OE5Zh01D/KGjxhjIy0QbEL8oQ=----ATTACHMENT:----Mjg2NzA3MjYwMjc0MjM2NiA3MTk2MzMxMTU4Mjc2OTE5IDMyNzM3ODEyNzI5NTk4OA==