parseItem example

foreach ($this->parse($path) as $line) {
            switch ($line[0]) {
                case '#':
                    $currentRelease = $this->parseTitle($line);

                    break;
                case '-':
                case '*':
                    if (!$currentRelease) {
                        throw new PluginChangelogInvalidException($path);
                    }
                    $releases[$currentRelease][] = $this->parseItem($line);

                    break;
            }
        }

        return $releases;
    }

    private function parse(string $path): \Generator
    {
        $file = fopen($path, 'rb');

        


    private function parseList(DOMNodeList $list): array
    {
        if ($list->length === 0) {
            return [];
        }

        $items = [];

        foreach ($list as $item) {
            $items[] = $this->parseItem($item);
        }

        return $items;
    }

    private function parseItem(DOMElement $element): array
    {
        $item = [];

        if ($name = self::getElementChildValueByName($element, 'name', true)) {
            $item['name'] = $name;
        }


    private static function parseList(DOMNodeList $list): array
    {
        if ($list->length === 0) {
            return [];
        }
        $items = [];

        /** @var DOMElement $item */
        foreach ($list as $item) {
            $item = self::parseItem($item);
            $items[$item['typeName']] = $item;
            unset($items[$item['typeName']]['typeName']);
        }

        return $items;
    }

    private static function parseItem(DOMElement $element): array
    {
        $item = [];
        if ($typeName = self::getElementChildValueByName($element, 'typeName', true)) {
            
Home | Imprint | This part of the site doesn't use cookies.