georgeh/php-beerxml

BeerXML 解析器和生成器

1.0.0 2013-05-16 17:16 UTC

This package is not auto-updated.

Last update: 2024-09-23 11:24:39 UTC


README

Build Status Coverage Status

PHP 解析器和生成器,用于 BeerXML 1.0 标准。

用法

完整的 API 文档位于 http://georgeh.github.io/php-beerxml/

tests/ 目录中的单元测试也提供了一些很好的示例。

解析器

$parser = new \BeerXML\Parser();
$result = $parser->parse(file_get_contents('http://www.beerxml.com/recipes.xml'));
foreach ($result as $recipe) {
    /** @var $recipe \BeerXML\Record\Recipe **/
    echo "Found beer recipe " . $recipe->getName() . "\n";
}

如果您不想使用 BeerXML\Record 命名空间中的基本记录类(比如,您想添加一些 ABV 数学或 Doctrine 注释,以便您的配方可以轻松保存到数据库),则可以指定要生成的类。您需要在自己的类中实现 BeerXML\Parser\I*Writer 接口,然后从 BeerXML\Parser\RecordFactory 继承以使其创建您的类。一旦您设置了对象,就可以将其传递给 BeerXML\Parser 构造函数。

生成器

$recipe = new \BeerXML\Record\Recipe();
$recipe->setName('My Brew');

$generator = new \BeerXML\Generator();
$generator->addRecord($recipe);
$xml = $generator->render();
echo $xml;

BeerXML\Generator 接受任何实现了 BeerXML\Generator\I*Reader 接口的记录。

记录

对于 BeerXML 规范中的所有记录类型,都有相应的记录类,包含获取和设置方法。它们实现了解析器和生成器的扩展 "Display" 接口,这意味着包括规范附录 A 中的获取器和设置器。它们不包含任何数学或计算任何字段,因为这超出了本项目的范围。

$recipe = new \BeerXML\Record\Recipe();
$recipe->setName('Imperial Session');
$recipe->setOg(1.105);
$recipe->setFg(1.002);
$recipe->setIbu(99);

安装

需要 PHP 5.3.0 或更高版本。

最简单的方法是使用 Composer 安装 php-beerxml。

在项目根目录下创建一个名为 composer.json 的文件

{
    "require": {
        "georgeh/php-beerxml": "*",
    }
}

然后,运行以下命令

$ curl -s http://getcomposer.org/installer | php
$ php composer.phar install

如果您不使用 Composer,可以直接 下载 源代码,并使用与 PSR-0 兼容的自动加载器进行配置。

许可

此软件可在 MIT 许可证下免费使用,但如果您喜欢它,我不会介意您提供一些您的自酿啤酒。

版权 (c) 2013 George Hotelling

特此授予任何获得此软件和相关文档副本(“软件”)的人免费使用软件的权利,不受限制地处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向提供软件的人提供软件,以便他们可以这样做,前提是遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

本软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论此类索赔、损害或其他责任是基于合同、侵权或其他方式产生,无论是否与软件或其使用或其它交易有关。

Devtroit