pandaac / exporter
Requires
- php: >=5.6.4
- ext-libxml: *
- mdurrant/php-binary-reader: ~1.0
- tightenco/collect: ~5.4
This package is not auto-updated.
Last update: 2024-09-14 18:58:42 UTC
README
熊猫AC导出器的目标是提供一个简单且快速的接口,用于从您的Open Tibia服务器数据目录中的常见XML文件中导出数据。
强烈建议您缓存响应,而不是反复解析它。
目前,此导出器假定您正在使用遗忘服务器 1.1。我没有立即计划将其扩展到其他任何发行版,直到我扩展pandaac自身的发行版范围。然而,如果有足够的公众压力要求特定的发行版,我可能会重新考虑。
要求
- PHP 5.6.4+
- PHP 扩展
- libxml
安装
通过Composer
composer require pandaac/exporter
使用方法
将您的Open Tibia服务器的绝对路径作为Exporter
对象的第一个参数传递,并指定您想要使用的解析器,作为Exporter
对象的parse
方法的第一个参数。
parse
方法还接受第二个参数作为其他属性(取决于解析器),以及第三个参数用于覆盖默认文件路径(或为特定解析器提供一个路径)。
use Exception; use pandaac\Exporter\Parsers; use pandaac\Exporter\Exporter; try { $exporter = new Exporter('/home/pandaac/theforgottenserver'); $response = $exporter->parse(new Parsers\Weapons); } catch (Exception $e) { // Handle exceptions as you see fit... }
设置
您可以选择将特定于引擎的设置作为\pandaac\Exporter\Exporter
对象的第二个参数传递。
$exporter = new Exporter('/home/pandaac/theforgottenserver', $settings);
以下是一些可用的设置(选择值是默认值)
$settings = [ 'xml' => [ // The XML engine will automatically validate any file it tries to parse, // and if the data is invalid, an exception will be thrown. You may // disable this behaviour by setting `validate` to `false`. 'validate' => true, // The XML engine will not throw exceptions on missing files when // parsing through a recursive structure. You may enable this // behaviour by setting `strict` to `true`. 'strict' => false, ], ]
响应
每个解析器都返回一个Illuminate Collection对象。请参阅Laravel文档以获取有关如何利用它的详细信息。
解析器
解析器决定了如何解析某个文件以及如何构建其响应。使用正确的解析器解析正确的文件非常重要。
XML解析器
-
操作
$exporter->parse(new \pandaac\Exporter\Parsers\Actions);
-
聊天频道
$exporter->parse(new \pandaac\Exporter\Parsers\ChatChannels);
-
命令
$exporter->parse(new \pandaac\Exporter\Parsers\Commands);
-
怪物脚本
$exporter->parse(new \pandaac\Exporter\Parsers\CreatureScripts);
-
事件
$exporter->parse(new \pandaac\Exporter\Parsers\Events);
-
全局事件
$exporter->parse(new \pandaac\Exporter\Parsers\GlobalEvents);
-
组
$exporter->parse(new \pandaac\Exporter\Parsers\Groups);
-
物品
$exporter->parse(new \pandaac\Exporter\Parsers\Items);
-
地图房屋
您必须指定相对文件名作为第三个参数。
$exporter->parse(new \pandaac\Exporter\Parsers\MapHouses, [], 'forgotten-house.xml');
-
地图出生点
您必须指定相对文件名作为第三个参数。
$exporter->parse(new \pandaac\Exporter\Parsers\MapSpawns, [], 'forgotten-spawn.xml');
-
怪物
您必须指定相对文件名作为第三个参数。
$exporter->parse(new \pandaac\Exporter\Parsers\Monster, [], 'Demons/Demon.xml');
-
怪物
您还可以通过将
recursive
属性设置为true
,从每个单独的怪物文件中加载数据。$exporter->parse(new \pandaac\Exporter\Parsers\Monsters, [ 'recursive' => true ]);
-
鞍具
$exporter->parse(new \pandaac\Exporter\Parsers\Mounts);
-
动作
$exporter->parse(new \pandaac\Exporter\Parsers\Movements);
-
NPC
您必须指定相对文件名作为第三个参数。
$exporter->parse(new \pandaac\Exporter\Parsers\NPC, [], 'The Oracle.xml');
-
套装
$exporter->parse(new \pandaac\Exporter\Parsers\Outfits);
-
任务
$exporter->parse(new \pandaac\Exporter\Parsers\Quests);
-
突袭
您必须指定相对文件名作为第三个参数。
$exporter->parse(new \pandaac\Exporter\Parsers\Raid, [], 'testraid.xml');
-
突袭
您还可以通过将
recursive
属性设置为true
,从每个单独的突袭文件中加载数据。$exporter->parse(new \pandaac\Exporter\Parsers\Raids, [ 'recursive' => true ]);
-
法术
$exporter->parse(new \pandaac\Exporter\Parsers\Spells);
-
阶段
$exporter->parse(new \pandaac\Exporter\Parsers\Stages);
-
交谈动作
$exporter->parse(new \pandaac\Exporter\Parsers\TalkActions);
-
职业
$exporter->parse(new \pandaac\Exporter\Parsers\Vocations);
-
武器
$exporter->parse(new \pandaac\Exporter\Parsers\Weapons);
-
XML源
如果您有一个包含XML的字符串,您还可以使用以下设置进行解析。use pandaac\Exporter\Parsers\XMLSource; use pandaac\Exporter\Sources\StringContent; $exporter->parse(new XMLSource( new StringContent('<online><player id="1" /><player id="2" /></online>') ));
OTBM解析器
OTBM引擎尚未开发,因此以下解析器目前已被视为已弃用。
-
城镇
$exporter->parse(new \pandaac\Exporter\Parsers\Towns);
贡献
请参考PSR-2指南,并在提交拉取请求之前将您的提交合并成一个。
谢谢。