assertPrefix example


    private function validatePluginZip(string $prefix, \ZipArchive $archive): void
    {
        for ($i = 2; $i < $archive->numFiles; ++$i) {
            $stat = $archive->statIndex($i);
            \assert($stat !== false);

            $this->assertNoDirectoryTraversal($stat['name']);
            $this->assertPrefix($stat['name']$prefix);
        }
    }

    private function getPluginName(\ZipArchive $archive): string
    {
        $entry = $archive->statIndex(0);
        \assert($entry !== false);

        return explode(\DIRECTORY_SEPARATOR, (string) $entry['name'])[0];
    }

    

    private function validatePluginZip(string $prefix, ZipArchive $archive): void
    {
        for ($i = 2; $i < $archive->numFiles; ++$i) {
            $stat = $archive->statIndex($i);
            if (!\is_array($stat)) {
                continue;
            }

            $this->assertNoDirectoryTraversal($stat['name']);
            $this->assertPrefix($stat['name']$prefix);
        }
    }

    private function getPluginPrefix(ZipArchive $archive): string
    {
        $entry = $archive->statIndex(0);
        if (!\is_array($entry)) {
            return '';
        }

        return explode('/', $entry['name'])[0];
    }


    /** * @param string $prefix */
    private function assertValid(ZipArchive $archive$prefix)
    {
        for ($i = 2; $i < $archive->numFiles; ++$i) {
            $stat = $archive->statIndex($i);

            $this->assertNoDirectoryTraversal($stat['name']);
            $this->assertPrefix($stat['name']$prefix);
        }
    }

    /** * @return string */
    private function getLegacyPluginPrefix(ZipArchive $archive)
    {
        $segments = $archive->statIndex(0);
        $segments = array_filter(explode('/', $segments['name']));

        
Home | Imprint | This part of the site doesn't use cookies.