1. Go to this page and download the library: Download monadial/nexus-monorepo library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
monadial / nexus-monorepo example snippets
declare(strict_types=1);
use Monadial\Nexus\Core\Actor\{ActorContext, ActorRef, ActorSystem, Behavior, Props};
use Monadial\Nexus\Runtime\Duration;
use Monadial\Nexus\Runtime\Fiber\FiberRuntime;
readonly class Ping { public function __construct(public ActorRef $replyTo) {} }
readonly class Pong {}
$ponger = Behavior::receive(static function (ActorContext $ctx, object $msg): Behavior {
if ($msg instanceof Ping) {
$ctx->log()->info('Ponger received Ping');
$msg->replyTo->tell(new Pong());
}
return Behavior::same();
});
$pinger = Behavior::setup(static function (ActorContext $ctx) use ($ponger): Behavior {
$pongerRef = $ctx->spawn(Props::fromBehavior($ponger), 'ponger');
$pongerRef->tell(new Ping($ctx->self()));
return Behavior::receive(static function (ActorContext $ctx, object $msg): Behavior {
if ($msg instanceof Pong) {
$ctx->log()->info('Pinger received Pong');
}
return Behavior::same();
});
});
$runtime = new FiberRuntime();
$system = ActorSystem::create('ping-pong', $runtime);
$system->spawn(Props::fromBehavior($pinger), 'pinger');
$runtime->scheduleOnce(Duration::millis(500), static function () use ($system): void {
$system->shutdown(Duration::seconds(1));
});
$system->run();
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.