protected function getExtensions() { if (null === $this->extensions) { $basename = $this->getBasename(); # Avoid treating name of a dotfile as extension by # ignoring dots at the first offset in the string if (!$basename or false === ($pos = strpos($basename, '.', 1))) { return array(); } $extensions = explode('.', substr($basename, $pos + 1)); $this->extensions = array_map(function ($ext) { return Path::normalizeExtension($ext); }, $extensions); } return $this->extensions; }