georgeh / php-beerxml
BeerXML 解析器和生成器
Requires
- php: >=5.3.0
- ext-xmlreader: *
Requires (Dev)
- phpunit/phpunit: 3.7.*
- satooshi/php-coveralls: dev-master
This package is not auto-updated.
Last update: 2024-09-23 11:24:39 UTC
README
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
特此授予任何获得此软件和相关文档副本(“软件”)的人免费使用软件的权利,不受限制地处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向提供软件的人提供软件,以便他们可以这样做,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
本软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论此类索赔、损害或其他责任是基于合同、侵权或其他方式产生,无论是否与软件或其使用或其它交易有关。