makowskid/dcfparser
最新稳定版本:2.0.0
Composer 安装命令:
composer require makowskid/dcfparser
包简介
DcfParser - parse Debian Control Files with PHP
关键字:
README 文档
README
DcfParser is a PHP & Laravel package to parse Debian Control Files (DCF format).
Requirements
- PHP 8.2+
Installation
composer require makowskid/dcfparser
Usage
Parse a file (first stanza)
$parser = new \makowskid\DcfParser\DcfParser(); $data = $parser->parseFile('/path/to/control'); // ['source' => 'gentoo', 'section' => 'games', ...]
Parse a string
$data = $parser->parseString("Source: gentoo\nSection: games\n");
Parse all stanzas
DCF files can contain multiple stanzas (paragraphs) separated by blank lines:
$stanzas = $parser->parseFileAll('/path/to/control'); // or $stanzas = $parser->parseStringAll($content); // Returns: [['source' => 'gentoo', ...], ['package' => 'gentoo', ...]]
Laravel
The package auto-discovers its service provider. Use the facade:
\DcfParser::parseFile('/path/to/control'); \DcfParser::parseString($content); \DcfParser::parseFileAll('/path/to/control'); \DcfParser::parseStringAll($content);
DCF Format
Reference: https://www.debian.org/doc/debian-policy/ch-controlfields.html
Example input:
Source: gentoo
Section: games
Priority: optional
Maintainer: Josip Rodin <joy-mg@debian.org>
Build-Depends: debhelper (>=10)
Homepage: https://packages.debian.org/gentoo
Package: gentoo
Architecture: any
Description: A nice game
Gentoo is a classic Jumpn Run sidescrolling game.
Parsed result (first stanza):
[
'source' => 'gentoo',
'section' => 'games',
'priority' => 'optional',
'maintainer' => 'Josip Rodin <joy-mg@debian.org>',
'build-depends' => 'debhelper (>=10)',
'homepage' => 'https://packages.debian.org/gentoo',
]
Key behaviors:
- Keys are normalized to lowercase
- Only the first
:splits key from value - Continuation lines (starting with whitespace) are appended to the previous field
- Blank lines separate stanzas
- Comment lines (starting with
#) are skipped - Throws
DcfParserExceptionon malformed input or file errors
Development
composer install composer test # Run tests composer analyse # PHPStan (level 8) composer cs-fix # Fix code style composer cs-check # Check code style
Credits
- Dawid Makowski
- Alin Purcaru - thanks for inspiration on StackOverflow
License
The MIT License (MIT). See the License File for more information.
统计信息
- 总下载量: 690
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2019-11-15