tienvx / pact-php-xml
Add XML Support For Pact PHP
Installs: 8 716
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- php: >=8.0
Requires (Dev)
- pact-foundation/pact-php: 10.0.0-alpha2
- phpunit/phpunit: ^9.6
README
This library contains classes support xml for Pact PHP.
Installation
composer require tienvx/pact-php-xml
Usage
<?php require_once 'vendor/autoload.php'; use AaronDDM\XMLBuilder\Exception\XMLBuilderException; use PhpPact\Consumer\Matcher; use Tienvx\PactPhpXml\Model\Options; use Tienvx\PactPhpXml\XmlBuilder; $builder = new XmlBuilder(); $matcher = new Matcher(); try { $builder ->root( $builder->name('ns1:projects'), $builder->attribute('id', '1234'), $builder->attribute('xmlns:ns1', 'http://some.namespace/and/more/stuff'), $builder->add( $builder->eachLike(examples: 2), $builder->name('ns1:project'), $builder->attribute('id', $matcher->integerV3(1)), $builder->attribute('type', 'activity'), $builder->attribute('name', $matcher->string('Project 1')), $builder->attribute('due', $matcher->datetime("yyyy-MM-dd'T'HH:mm:ss.SZ", '2016-02-11T09:46:56.023Z')), $builder->add( $builder->name('ns1:tasks'), $builder->add( $builder->eachLike(examples: 5), $builder->name('ns1:task'), $builder->attribute('id', $matcher->integerV3(1)), $builder->attribute('name', $matcher->string('Task 1')), $builder->attribute('done', $matcher->boolean()), ), ), ), ); var_dump($builder->getArray()); } catch (XMLBuilderException $e) { var_dump('An exception occurred: ' . $e->getMessage()); }