joeycumines/simple-xml-util
最新稳定版本:v1.0.0-alpha
Composer 安装命令:
composer require joeycumines/simple-xml-util
包简介
Utilities to improve maintainability of code that relies on PHP's simplexml_load_string.
README 文档
README
Utilities to improve maintainability of code that relies on PHP's simplexml_load_string.
Features
- Interface for better dependency injection
- Automatically manage internal errors, builds readable error string
- Makes it possible to use exception handling
- Configure
simplexml_load_string,libxml_use_internal_errorsandlibxml_disable_entity_loader, without it feeling like you are relying on globals with side effects
Example
// manual configuration example use JoeyCumines\SimpleXmlUtil\Parser\SimpleXmlStringParser; // ... $xmlParser = new SimpleXmlStringParser($className, $options, $ns, $prefix, $disableEntityLoader); // or $xmlParser = (new SimpleXmlStringParser()) ->setClassName($className) ->setOptions($options) ->setNs($ns) ->setPrefix($prefix) ->setDisableEntityLoader($disableEntityLoader); // use the interface in the service - pre-configured use JoeyCumines\SimpleXmlUtil\Exception\SimpleXmlStringParserException; use JoeyCumines\SimpleXmlUtil\Interfaces\SimpleXmlStringParserInterface; // ... class SomeService { private $xmlParser; private $logger; public function __construct( SimpleXmlStringParserInterface $xmlParser, Logger $logger ) { $this->xmlParser = $xmlParser; $this->logger = $logger; } public function doSomeXmlParsing(string $data): array { try { $doc = $this->xmlParser->parseXmlString($data); } catch (SimpleXmlStringParserException $e) { // the actual parser error will come through in the logs $this->logger->error( "[SomeService] o no our xml things failed:\n{$e}", $e ); throw $e; } // at this point you can always be sure $doc is an actual object foreach ($doc as $name => $child) { // ... } // ... } }
统计信息
- 总下载量: 5.14k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Apache-2.0
- 更新时间: 2017-12-01