Skip to content

Commit 5737a1e

Browse files
committed
improved docs & readme
1 parent 51af1a3 commit 5737a1e

File tree

2 files changed

+52
-52
lines changed

2 files changed

+52
-52
lines changed

README.md

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,24 +24,29 @@ composer require tiamo/phpas2
2424
## Usage
2525

2626
* [Documentation](./docs/index.md)
27-
* [Examples](./examples)
27+
* [Example](./example)
2828

2929
Basic example
30+
3031
```bash
32+
cd example
33+
composer install
34+
chmod +x ./bin/console
35+
3136
# start a server to receive messages in 8000 port
32-
php -S 127.0.0.1:8000 ./examples/server.php
33-
```
37+
php -S 127.0.0.1:8000 ./public/index.php
3438

35-
```bash
36-
# init partners and storage
37-
php -f ./examples/init.php
38-
```
39+
# send a test message
40+
./bin/console send-message --from mycompanyAS2 --to phpas2
3941

40-
```bash
41-
# send message
42-
php -f ./examples/outbound.php
42+
# send a file
43+
./bin/console send-message /path/to/the/file --from mycompanyAS2 --to phpas2
4344
```
4445

46+
## Changelog
47+
48+
Please have a look in [CHANGELOG](CHANGELOG.md)
49+
4550
## License
4651

4752
Licensed under the [MIT license](http://opensource.org/licenses/MIT).

docs/index.md

Lines changed: 37 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,62 @@
11
# DOCUMENTATION
22

3-
TODO ...
3+
Please have a look at an example application based on Slim3 framework.
4+
You can also create your own classes.
45

5-
- Implement Storage class based on \AS2\StorageInterface
6+
- Implement MessageRepository class based on \AS2\MessageRepositoryInterface
67
- Implement Message class based on \AS2\MessageInterface
8+
- Implement PartnerRepository class based on \AS2\PartnerRepositoryInterface
79
- Implement Partner class based on \AS2\PartnerInterface
810

911
### Example Receive AS2 Message
1012
```php
11-
$server = new \AS2\Server(new \AS2\Management(), new FileStorage());
13+
$manager = new \AS2\Management();
14+
15+
/** @var /AS2/MessageRepositoryInterface $messageRepository */
16+
$messageRepository = new MessageRepository();
17+
18+
/** @var /AS2/PartnerRepositoryInterface $partnerRepository */
19+
$partnerRepository = new PartnerRepository();
20+
21+
$server = new \AS2\Server($manager, $partnerRepository, $messageRepository);
22+
1223
/** @var \GuzzleHttp\Psr7\Response $response */
1324
$response = $server->excecute();
14-
1525
```
1626

1727
### Example Send AS2 Message
1828
```php
1929

2030
$manager = new \AS2\Management();
21-
/** @var /AS2/StorageInterface $storage */
22-
$storage = new FileStorage();
2331

24-
// Init new Message
25-
$message = $storage->initMessage(['id' => 'test' ...]);
26-
27-
// Init sending Partner
28-
$sender = $storage->initPartner([
29-
'id' => 'partner_a',
30-
'target_url' => 'http://127.0.0.1/as2/receive',
31-
'public_key' => file_get_contents('public_a.crt'),
32-
'private_key' => file_get_contents('private_a.key'),
33-
'private_key_pass_phrase' => 'password',
34-
'content_type' => 'application/edi-x12',
35-
'compression' => true,
36-
'sign' => true,
37-
'encrypt' => true,
38-
'mdn_mode' => PartnerInterface::MDN_MODE_SYNC,
39-
'mdn_options' => 'signed-receipt-protocol=optional, pkcs7-signature; signed-receipt-micalg=optional, SHA256'
40-
]);
32+
/** @var /AS2/MessageRepositoryInterface $messageRepository */
33+
$messageRepository = new MessageRepository();
4134

42-
$message->setSender($sender);
35+
/** @var /AS2/PartnerRepositoryInterface $partnerRepository */
36+
$partnerRepository = new PartnerRepository();
4337

44-
// Init receiving Partner
45-
$receiver = $storage->initPartner([
46-
'id' => 'partner_b',
47-
'target_url' => 'http://127.0.0.1/as2/receive',
48-
'public_key' => file_get_contents('public_b.crt'),
49-
'private_key' => file_get_contents('private_b.key'),
50-
'private_key_pass_phrase' => 'password',
51-
'content_type' => 'application/edi-x12',
52-
'compression' => true,
53-
'sign' => true,
54-
'encrypt' => true,
55-
'mdn_mode' => PartnerInterface::MDN_MODE_SYNC,
56-
'mdn_options' => 'signed-receipt-protocol=optional, pkcs7-signature; signed-receipt-micalg=optional, SHA256'
57-
]);
38+
// Init partners
39+
$sender = $partnerRepository->findPartnerById('A');
40+
$receiver = $partnerRepository->findPartnerById('B');
5841

59-
$message->setReceiver($receiver);
42+
// Generate new message ID
43+
$messageId = \AS2\Utils::generateMessageID($sender);
44+
$rawMessage = '
45+
Content-type: Application/EDI-X12
46+
Content-disposition: attachment; filename=payload
47+
Content-id: <test@test.com>
48+
49+
ISA*00~';
6050

61-
$manager->buildMessage($message);
51+
// Init new Message
52+
$message = $messageRepository->createMessage();
53+
$message->setMessageId($messageId);
54+
$message->setSender($sender);
55+
$message->setReceiver($receiver);
6256

63-
$manager->sendMessage($message);
57+
$payload = $manager->buildMessage($message, $rawMessage);
58+
$manager->sendMessage($message, $payload);
6459

65-
$storage->saveMessage($message);
60+
$messageRepository->saveMessage($message);
6661

6762
```

0 commit comments

Comments
 (0)