Skip to content

Commit 14024f0

Browse files
committed
Package split: EMessenger
1 parent 7f3b81f commit 14024f0

23 files changed

+127
-339
lines changed

.travis.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,5 @@ install:
1010
cache:
1111
directories:
1212
- vendor
13+
script:
14+
- php examples/simple.php

EProcess/Adapter/BaseAdapter.php

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace EProcess\Adapter;
44

5+
use EMessenger\Transport\UnixTransport;
56
use React\EventLoop\LoopInterface;
67

78
abstract class BaseAdapter
@@ -20,7 +21,12 @@ public function getUnixSocketFile()
2021
return sprintf('%s/%s.sock', EPROCESS_SOCKET_DIR, $this->node);
2122
}
2223

23-
protected function createUnixSocket()
24+
public function getUnixSocketAddress()
25+
{
26+
return sprintf('unix://%s', $this->getUnixSocketFile());
27+
}
28+
29+
protected function createUnixTransport()
2430
{
2531
if (!defined('EPROCESS_SOCKET_DIR')) {
2632
throw new \RuntimeException('EPROCESS_SOCKET_DIR is not defined.');
@@ -34,9 +40,10 @@ protected function createUnixSocket()
3440
throw new \RuntimeException(sprintf('Cannot write to "%s".', EPROCESS_SOCKET_DIR));
3541
}
3642

37-
$unix = sprintf('unix://%s', $this->getUnixSocketFile());
43+
echo $this->getUnixSocketFile();
44+
echo PHP_EOL;
3845

39-
return $unix;
46+
return new UnixTransport($this->loop, $this->getUnixSocketAddress());
4047
}
4148

4249
abstract public function create($class, array $data = []);

EProcess/Adapter/ChildProcess.php

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22

33
namespace EProcess\Adapter;
44

5-
use EProcess\Behaviour\UniversalSerializer;
6-
use EProcess\MessengerFactory;
5+
use UniversalSerializer\UniversalSerializerTrait;
6+
use EMessenger\MessengerFactory;
77
use EProcess\Stream\FullDrainStream;
88
use React\ChildProcess\Process;
99
use Symfony\Component\Process\PhpExecutableFinder;
1010

1111
class ChildProcess extends BaseAdapter
1212
{
13-
use UniversalSerializer;
13+
use UniversalSerializerTrait;
1414

1515
private $script = <<<PHP
1616
<?php
@@ -19,15 +19,15 @@ class ChildProcess extends BaseAdapter
1919
2020
set_time_limit(0);
2121
22-
use EProcess\MessengerFactory;
22+
use EMessenger\MessengerFactory;
23+
use EMessenger\Transport\UnixTransport;
2324
use EProcess\Application\ApplicationFactory;
2425
use React\EventLoop\Factory;
2526
2627
\$loop = Factory::create();
2728
2829
\$messenger = MessengerFactory::client(
29-
'%s',
30-
\$loop
30+
new UnixTransport(\$loop, '%s')
3131
);
3232
3333
\$application = ApplicationFactory::create('%s');
@@ -36,7 +36,7 @@ class ChildProcess extends BaseAdapter
3636
\$application->loop(\$loop);
3737
\$application->data(\$application->unserialize(base64_decode('%s')));
3838
39-
\$messenger->emit('initialized', true);
39+
\$messenger->send('initialized', true);
4040
4141
try {
4242
\$application->run();
@@ -56,13 +56,13 @@ public function create($class, array $data = [])
5656
throw new \RuntimeException('Unable to find the PHP executable.');
5757
}
5858

59-
$unix = $this->createUnixSocket();
60-
$messenger = MessengerFactory::server($unix, $this->loop);
59+
$transport = $this->createUnixTransport();
60+
$messenger = MessengerFactory::server($transport);
6161

6262
$script = sprintf(
6363
$this->script,
6464
EPROCESS_AUTOLOAD,
65-
$unix,
65+
$this->getUnixSocketAddress(),
6666
$class,
6767
base64_encode($this->serialize($data))
6868
);
@@ -77,15 +77,15 @@ public function create($class, array $data = [])
7777

7878
$this->process->stdin->write($script);
7979

80-
$this->process->stdin->on('full-drain', function() {
80+
$this->process->stdin->on('full-drain', function () {
8181
$this->process->stdin->close();
8282
});
8383

84-
$this->process->stdout->on('data', function($data) {
84+
$this->process->stdout->on('data', function ($data) {
8585
echo $data;
8686
});
8787

88-
$this->process->stderr->on('data', function($data) {
88+
$this->process->stderr->on('data', function ($data) {
8989
echo $data;
9090
});
9191

EProcess/Adapter/PThreads.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,18 @@
22

33
namespace EProcess\Adapter;
44

5-
use EProcess\MessengerFactory;
5+
use EMessenger\MessengerFactory;
66

77
class PThreads extends BaseAdapter
88
{
99
private $process;
1010

1111
public function create($class, array $data = [])
1212
{
13-
$unix = $this->createUnixSocket();
14-
$messenger = MessengerFactory::server($unix, $this->loop);
13+
$transport = $this->createUnixTransport();
14+
$messenger = MessengerFactory::server($transport);
1515

16-
$this->process = new Thread($unix, $class, $data);
16+
$this->process = new Thread($transport, $class, $data);
1717
$this->process->start(PTHREADS_INHERIT_NONE);
1818

1919
return $messenger;

EProcess/Adapter/SymfonyProcess.php

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22

33
namespace EProcess\Adapter;
44

5-
use EProcess\Behaviour\UniversalSerializer;
65
use Symfony\Component\Process\PhpProcess;
7-
use EProcess\MessengerFactory;
6+
use EMessenger\MessengerFactory;
7+
use UniversalSerializer\UniversalSerializerTrait;
88

99
class SymfonyProcess extends BaseAdapter
1010
{
11-
use UniversalSerializer;
11+
use UniversalSerializerTrait;
1212

1313
private $script = <<<PHP
1414
<?php
@@ -34,7 +34,7 @@ class SymfonyProcess extends BaseAdapter
3434
\$application->loop(\$loop);
3535
\$application->data(\$application->unserialize(base64_decode('%s')));
3636
37-
\$messenger->emit('initialized', true);
37+
\$messenger->send('initialized', true);
3838
3939
try {
4040
\$application->run();
@@ -48,10 +48,15 @@ class SymfonyProcess extends BaseAdapter
4848

4949
public function create($class, array $data = [])
5050
{
51-
$unix = $this->createUnixSocket();
52-
$messenger = MessengerFactory::server($unix, $this->loop);
53-
54-
$script = sprintf($this->script, EPROCESS_AUTOLOAD, $unix, $class, base64_encode($this->serialize($data)));
51+
$transport = $this->createUnixTransport();
52+
$messenger = MessengerFactory::server($transport);
53+
54+
$script = sprintf(
55+
$this->script,
56+
EPROCESS_AUTOLOAD,
57+
$transport, $class,
58+
base64_encode($this->serialize($data))
59+
);
5560

5661
$this->process = new PhpProcess($script);
5762
$this->process->start();

EProcess/Adapter/Thread.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public function run()
3232
$application->loop($loop);
3333
$application->data($this->data);
3434

35-
$messenger->emit('initialized', true);
35+
$messenger->send('initialized', true);
3636

3737
try {
3838
$application->run();

EProcess/Application/Application.php

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,19 @@
22

33
namespace EProcess\Application;
44

5-
use EProcess\Behaviour\UniversalSerializer;
5+
use EMessenger\Message;
6+
use EMessenger\Messenger;
67
use EProcess\Behaviour\Workable;
7-
use EProcess\Message;
8-
use EProcess\Messenger;
98
use EProcess\Worker;
109
use Evenement\EventEmitterTrait;
1110
use MKraemer\ReactPCNTL\PCNTL;
1211
use React\EventLoop\LoopInterface;
12+
use UniversalSerializer\UniversalSerializerTrait;
1313

1414
abstract class Application
1515
{
16-
use EventEmitterTrait {
17-
EventEmitterTrait::emit as emitterEmit;
18-
}
19-
use UniversalSerializer;
16+
use EventEmitterTrait;
17+
use UniversalSerializerTrait;
2018
use Workable;
2119

2220
private $loop;
@@ -33,7 +31,7 @@ public function addWorker(Worker $worker)
3331
public function cleanWorkers()
3432
{
3533
foreach ($this->workers as $worker) {
36-
$worker->emit('shutdown');
34+
$worker->send('shutdown');
3735
unlink($worker->adapter()->getUnixSocketFile());
3836
}
3937
}
@@ -60,7 +58,7 @@ public function messenger(Messenger $messenger = null)
6058
{
6159
if ($messenger) {
6260
$messenger->on('message', function (Message $message) {
63-
$this->emitterEmit($message->getEvent(), [$message->getContent()]);
61+
$this->emit($message->getEvent(), [$message->getContent()]);
6462
});
6563

6664
$this->messenger = $messenger;
@@ -78,9 +76,9 @@ public function data(array $data = null)
7876
return $this->data;
7977
}
8078

81-
public function emit($event, $data = '')
79+
public function send($event, $data = '')
8280
{
83-
$this->messenger->emit($event, $data);
81+
$this->messenger->send($event, $data);
8482
}
8583

8684
abstract public function run();

EProcess/Behaviour/UniversalSerializer.php

Lines changed: 0 additions & 96 deletions
This file was deleted.

EProcess/Behaviour/Workable.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public function createWorker($fqcn, array $data = [])
1515
$data
1616
);
1717

18-
$this->emitterEmit('worker.created', [$worker]);
18+
$this->emit('worker.created', [$worker]);
1919

2020
return $worker;
2121
}

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy