Skip to content

Commit

Permalink
#major - Refactor namespace to new vendor name. Initial version 0.1.0
Browse files Browse the repository at this point in the history
  • Loading branch information
ynnoig committed May 17, 2022
1 parent e03261e commit f4a1a1c
Show file tree
Hide file tree
Showing 114 changed files with 660 additions and 562 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
- uses: actions/checkout@v2

- name: Setup PHP
uses: Loeffelhardt/el-setup-php-action@v2
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
extensions: dom, libxml
Expand Down
18 changes: 13 additions & 5 deletions composer.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
{
"name": "loeffelhardt/el-cxml",
"name": "friendsofcxml/cxml-php",
"license": "MIT",
"description": "PHP Implementation of cXML",
"description": "PHP Implementation of cXML Standard",
"keywords": [
"data",
"xml",
"cxml",
"edi",
"commerce",
"e-commerce"
"e-commerce",
"punchout",
"order-request"
],
"type": "library",
"authors": [
Expand All @@ -17,7 +19,8 @@
"email": "[email protected]"
},
{
"name": "Giovanni Piemontese"
"name": "Giovanni Piemontese",
"email": "[email protected]"
}
],
"require": {
Expand All @@ -40,7 +43,12 @@
},
"autoload": {
"psr-4": {
"Mathielen\\CXml\\": "src/Mathielen/CXml/"
"CXml\\": "src/CXml/"
}
},
"autoload-dev": {
"psr-4": {
"CXmlTest\\": "tests/CXmlTest/"
}
},
"scripts": {
Expand Down
52 changes: 26 additions & 26 deletions readme.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
This repository is a public fork of https://github.com/mathielen/cxml implementation.

# What is it?

> cXML is a streamlined protocol intended for consistent communication of business documents between procurement
Expand All @@ -19,7 +17,7 @@ This repository is a public fork of https://github.com/mathielen/cxml implementa
## Installation

```bash
$ composer require loeffelhardt/el-cxml
$ composer require friendsofcsml/cxml-php
```

Then include Composer’s autoloader:
Expand All @@ -40,25 +38,25 @@ require_once 'vendor/autoload.php';

```php
//we use a basic registry here. You could use your own (db-based?) repository that implements CredentialRepositoryInterface
$credentialRegistry = new \Mathielen\CXml\Credential\CredentialRegistry();
$credentialRegistry = new \CXml\Credential\CredentialRegistry();

$someSupplier = new \Mathielen\CXml\Model\Credential('DUNS', 12345);
$someSupplier = new \CXml\Model\Credential('DUNS', 12345);
$credentialRegistry->registerCredential($someSupplier);

$someBuyer = new \Mathielen\CXml\Model\Credential('my-id-type', "[email protected]");
$someBuyer = new \CXml\Model\Credential('my-id-type', "[email protected]");
$credentialRegistry->registerCredential($someBuyer);

$someHub = new \Mathielen\CXml\Model\Credential('my-id-type', "[email protected]", "abracadabra");
$someHub = new \CXml\Model\Credential('my-id-type', "[email protected]", "abracadabra");
$credentialRegistry->registerCredential($someHub);
```

### Register Handler

```php
$handlerRegistry = new \Mathielen\CXml\Handler\HandlerRegistry();
$handlerRegistry = new \CXml\Handler\HandlerRegistry();

$handlerRegistry->register(new Mathielen\CXml\Handler\Request\SelfAwareProfileRequestHandler(...));
$handlerRegistry->register(new Mathielen\CXml\Handler\Request\StaticStartPagePunchOutSetupRequestHandler(...));
$handlerRegistry->register(new CXml\Handler\Request\SelfAwareProfileRequestHandler(...));
$handlerRegistry->register(new CXml\Handler\Request\StaticStartPagePunchOutSetupRequestHandler(...));
$handlerRegistry->register(new MyOrderRequestHandler());
$handlerRegistry->register(new MyStatusUpdateRequestHandler());
...
Expand All @@ -67,18 +65,18 @@ $handlerRegistry->register(new MyStatusUpdateRequestHandler());
### Build cXML

```php
//$payload = new \Mathielen\CXml\Model\Message\...Message(...);
//$payload = new \CXml\Model\Message\...Message(...);
//or...
//$payload = new \Mathielen\CXml\Model\Request\...Request(...);
//$payload = new \CXml\Model\Request\...Request(...);
//or...
$payload = new \Mathielen\CXml\Model\Response\...Response(...);
$payload = new \CXml\Model\Response\...Response(...);

$cXml = \Mathielen\CXml\Builder::create()
$cXml = \CXml\Builder::create()
->payload($payload)
->build();

$payload = new \Mathielen\CXml\Model\Request\...Request(...);
$cXml = \Mathielen\CXml\Builder::create()
$payload = new \CXml\Model\Request\...Request(...);
$cXml = \CXml\Builder::create()
->payload($payload)
->from(...)
->to(...)
Expand All @@ -91,17 +89,17 @@ $cXml = \Mathielen\CXml\Builder::create()
You may want to register sent-out documents so they can be referenced by subsequent request-documents via payloadId.

```php
$documentRegistory = new MyDocumentRegistry(); //implements Mathielen\CXml\Document\DocumentRegistryInterface
$documentRegistory = new MyDocumentRegistry(); //implements CXml\Document\DocumentRegistryInterface

$documentRegistory->register($cXml);
```

### Process incoming cXML documents

```php
$headerProcessor = new \Mathielen\CXml\Processor\HeaderProcessor($credentialRegistry);
$headerProcessor = new \CXml\Processor\HeaderProcessor($credentialRegistry);

$cXmlProcessor = new \Mathielen\CXml\Processor\Processor(
$cXmlProcessor = new \CXml\Processor\Processor(
$headerProcessor,
$handlerRegistry,
$builder
Expand All @@ -113,25 +111,25 @@ $cXmlProcessor->process($cXml);
### Putting it all together

```php
$credentialRegistry = new \Mathielen\CXml\Credential\CredentialRegistry();
$credentialRegistry = new \CXml\Credential\CredentialRegistry();
//TODO register...

$handlerRegistry = new \Mathielen\CXml\Handler\HandlerRegistry();
$handlerRegistry = new \CXml\Handler\HandlerRegistry();
//TODO register...

$builder = \Mathielen\CXml\Builder::create();
$builder = \CXml\Builder::create();

$headerProcessor = new \Mathielen\CXml\Processor\HeaderProcessor($credentialRegistry);
$cXmlProcessor = new \Mathielen\CXml\Processor\Processor(
$headerProcessor = new \CXml\Processor\HeaderProcessor($credentialRegistry);
$cXmlProcessor = new \CXml\Processor\Processor(
$headerProcessor,
$handlerRegistry,
$builder
);

$pathToDtd = '.'; //point the directory with extracted contents of zip-file with the DTDs, downloaded from cxml.org
$dtdValidator = new \Mathielen\CXml\Validation\DtdValidator($pathToDtd);
$dtdValidator = new \CXml\Validation\DtdValidator($pathToDtd);

$endpoint = new \Mathielen\CXml\Endpoint(
$endpoint = new \CXml\Endpoint(
$dtdValidator,
$cXmlProcessor
);
Expand All @@ -143,3 +141,5 @@ $result = $endpoint->parseAndProcessStringAsCXml($xmlString);
//$result could be null (i.e. for a Response or Message) or another CXml object which would be the Response to a Request
//you would have to handle the transport yourself
```
# Credits
- Markus Thielen (https://github.com/mathielen)
32 changes: 16 additions & 16 deletions src/Mathielen/CXml/Builder.php → src/CXml/Builder.php
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
<?php

namespace Mathielen\CXml;
namespace CXml;

use Assert\Assertion;
use Mathielen\CXml\Exception\CXmlException;
use Mathielen\CXml\Model\Credential;
use Mathielen\CXml\Model\CXml;
use Mathielen\CXml\Model\Header;
use Mathielen\CXml\Model\Message;
use Mathielen\CXml\Model\MessageInterface;
use Mathielen\CXml\Model\Party;
use Mathielen\CXml\Model\PayloadInterface;
use Mathielen\CXml\Model\Request;
use Mathielen\CXml\Model\RequestInterface;
use Mathielen\CXml\Model\Response;
use Mathielen\CXml\Model\ResponseInterface;
use Mathielen\CXml\Model\Status;
use Mathielen\CXml\Payload\DefaultPayloadIdentityFactory;
use Mathielen\CXml\Payload\PayloadIdentityFactoryInterface;
use CXml\Exception\CXmlException;
use CXml\Model\Credential;
use CXml\Model\CXml;
use CXml\Model\Header;
use CXml\Model\Message;
use CXml\Model\MessageInterface;
use CXml\Model\Party;
use CXml\Model\PayloadInterface;
use CXml\Model\Request;
use CXml\Model\RequestInterface;
use CXml\Model\Response;
use CXml\Model\ResponseInterface;
use CXml\Model\Status;
use CXml\Payload\DefaultPayloadIdentityFactory;
use CXml\Payload\PayloadIdentityFactoryInterface;

class Builder
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
<?php

namespace Mathielen\CXml\Builder;

use Mathielen\CXml\Model\Address;
use Mathielen\CXml\Model\AddressWrapper;
use Mathielen\CXml\Model\Comment;
use Mathielen\CXml\Model\Contact;
use Mathielen\CXml\Model\ItemDetail;
use Mathielen\CXml\Model\ItemId;
use Mathielen\CXml\Model\ItemOut;
use Mathielen\CXml\Model\Money;
use Mathielen\CXml\Model\MoneyWrapper;
use Mathielen\CXml\Model\MultilanguageString;
use Mathielen\CXml\Model\PostalAddress;
use Mathielen\CXml\Model\Request\OrderRequest;
use Mathielen\CXml\Model\Request\OrderRequestHeader;
use Mathielen\CXml\Model\Shipping;
use Mathielen\CXml\Model\ShipTo;
use Mathielen\CXml\Model\Tax;
use Mathielen\CXml\Model\TransportInformation;
namespace CXml\Builder;

use CXml\Model\Address;
use CXml\Model\AddressWrapper;
use CXml\Model\Comment;
use CXml\Model\Contact;
use CXml\Model\ItemDetail;
use CXml\Model\ItemId;
use CXml\Model\ItemOut;
use CXml\Model\Money;
use CXml\Model\MoneyWrapper;
use CXml\Model\MultilanguageString;
use CXml\Model\PostalAddress;
use CXml\Model\Request\OrderRequest;
use CXml\Model\Request\OrderRequestHeader;
use CXml\Model\Shipping;
use CXml\Model\ShipTo;
use CXml\Model\Tax;
use CXml\Model\TransportInformation;

class OrderRequestBuilder
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
<?php

namespace Mathielen\CXml\Builder;
namespace CXml\Builder;

use Mathielen\CXml\Model\Contact;
use Mathielen\CXml\Model\Inventory;
use Mathielen\CXml\Model\InventoryQuantity;
use Mathielen\CXml\Model\ItemId;
use Mathielen\CXml\Model\Message\ProductActivityDetail;
use Mathielen\CXml\Model\Message\ProductActivityMessage;
use Mathielen\CXml\Model\MultilanguageString;
use CXml\Model\Contact;
use CXml\Model\Inventory;
use CXml\Model\InventoryQuantity;
use CXml\Model\ItemId;
use CXml\Model\Message\ProductActivityDetail;
use CXml\Model\Message\ProductActivityMessage;
use CXml\Model\MultilanguageString;

class ProductActivityMessageBuilder
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
<?php

namespace Mathielen\CXml\Builder;

use Mathielen\CXml\Model\ItemDetail;
use Mathielen\CXml\Model\ItemId;
use Mathielen\CXml\Model\ItemIn;
use Mathielen\CXml\Model\Message\PunchOutOrderMessage;
use Mathielen\CXml\Model\Message\PunchOutOrderMessageHeader;
use Mathielen\CXml\Model\MoneyWrapper;
use Mathielen\CXml\Model\MultilanguageString;
namespace CXml\Builder;

use CXml\Model\ItemDetail;
use CXml\Model\ItemId;
use CXml\Model\ItemIn;
use CXml\Model\Message\PunchOutOrderMessage;
use CXml\Model\Message\PunchOutOrderMessageHeader;
use CXml\Model\MoneyWrapper;
use CXml\Model\MultilanguageString;

// TODO not yet final and completed
class PunchoutOrderMessageBuilder
Expand Down
4 changes: 2 additions & 2 deletions src/Mathielen/CXml/Context.php → src/CXml/Context.php
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<?php

namespace Mathielen\CXml;
namespace CXml;

use Mathielen\CXml\Model\CXml;
use CXml\Model\CXml;

class Context
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<?php

namespace Mathielen\CXml\Credential;
namespace CXml\Credential;

use Mathielen\CXml\Exception\CXmlAuthenticationInvalidException;
use Mathielen\CXml\Model\Credential;
use CXml\Exception\CXmlAuthenticationInvalidException;
use CXml\Model\Credential;

interface CredentialAuthenticatorInterface
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
<?php

namespace Mathielen\CXml\Credential;
namespace CXml\Credential;

use Mathielen\CXml\Exception\CXmlAuthenticationInvalidException;
use Mathielen\CXml\Exception\CXmlCredentialInvalidException;
use Mathielen\CXml\Model\Credential;
use CXml\Exception\CXmlAuthenticationInvalidException;
use CXml\Exception\CXmlCredentialInvalidException;
use CXml\Model\Credential;

class CredentialRegistry implements CredentialRepositoryInterface, CredentialAuthenticatorInterface
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<?php

namespace Mathielen\CXml\Credential;
namespace CXml\Credential;

use Mathielen\CXml\Exception\CXmlCredentialInvalidException;
use Mathielen\CXml\Model\Credential;
use CXml\Exception\CXmlCredentialInvalidException;
use CXml\Model\Credential;

interface CredentialRepositoryInterface
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<?php

namespace Mathielen\CXml\Document;
namespace CXml\Document;

use Mathielen\CXml\Model\CXml;
use CXml\Model\CXml;

interface DocumentRegistryInterface
{
Expand Down
Loading

0 comments on commit f4a1a1c

Please sign in to comment.