Download the PHP package anandpilania/php-node-bridge without Composer
On this page you can find all versions of the php package anandpilania/php-node-bridge. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download anandpilania/php-node-bridge
More information about anandpilania/php-node-bridge
Files in anandpilania/php-node-bridge
Package php-node-bridge
Short Description Bidirectional bridge between PHP and Node.js — call Node.js handlers from PHP and vice versa. Framework agnostic with Laravel and Symfony integrations.
License MIT
Informations about the package php-node-bridge
php-node-bridge
Bidirectional bridge between PHP and Node.js — call Node.js handlers from PHP and PHP handlers from Node.js. Framework agnostic with first-class Laravel and Symfony support.
Works with: Laravel, Symfony, Slim, Zend/Laminas, vanilla PHP ↔ Express, Next.js, Nuxt.js, Fastify, NestJS.
How It Works
Both sides register named handlers and communicate over local HTTP. JSON payloads, shared-secret auth, timeout handling, middleware support.
Installation
Quick Start
Vanilla PHP
Laravel Integration
1. Install & auto-discover
The service provider is auto-discovered via composer.json. Just install and publish config:
2. Configure .env
3. Register handlers
4. Use in controllers
5. Start the bridge daemon
Symfony Integration
1. Register bundle
2. Configure
3. Inject and use
4. Start daemon
API Reference
new PhpBridge(config)
| Option | Type | Default | Description |
|---|---|---|---|
port |
int | 5556 |
Port this PHP bridge listens on |
nodePort |
int | 5555 |
Port the Node bridge listens on |
nodeHost |
string | 127.0.0.1 |
Node bridge host |
secret |
string | null |
Shared secret for auth (recommended) |
timeout |
int | 10 |
Default call timeout in seconds |
logLevel |
string | 'info' |
silent/error/warn/info/debug |
$bridge->register(string $name, callable $fn): static
Register a handler Node.js can call.
$bridge->registerAll(array $handlers): static
Register multiple handlers: ['name' => fn, ...].
$bridge->unregister(string $name): static
Remove a handler.
$bridge->call(string $handler, array $payload, ?int $timeout): mixed
Call a handler on the Node.js side.
$bridge->fire(string $handler, array $payload): static
Fire-and-forget call to Node.js.
$bridge->use(callable $fn): static
Add middleware: function(string $name, array $payload): void. Throw to reject.
$bridge->listen(): void
Start listening (blocking). Run in a separate daemon process.
$bridge->listHandlers(): string[]
List all registered handler names.
Exceptions
| Class | When |
|---|---|
BridgeException |
Base — connection failure, generic errors |
HandlerNotFoundException |
Requested handler not registered |
TimeoutException |
Call exceeded timeout |
AuthException |
Wrong or missing shared secret |
Running as a Daemon
Supervisor (recommended)
systemd
Docker Compose
Testing
License
MIT