ts-php-bridge
v1.0.0
Published
A lightweight Node.js/TypeScript library to easily run PHP scripts from your framework or Node.js project. It allows you to pass JSON data to PHP and get the JSON output directly in TypeScript.
Readme
ts-php-bridge
A lightweight Node.js/TypeScript library to easily run PHP scripts from your framework or Node.js project. It allows you to pass JSON data to PHP and get the JSON output directly in TypeScript.
🚀 Installation
npm install ts-php-bridge
- Important: PHP must be installed on your machine and available in your PATH, or you can use the absolute path to php.exe (Windows/XAMPP).
🧩 Basic Usage
TypeScript / Node.js
import { runPHP } from "ts-php-bridge";
(async () => {
const result = await runPHP("example.php", { name: "Mael", age: 22 });
console.log(result);
})();Example PHP Script (example.php)
<?php
$input = json_decode(file_get_contents("php://stdin"), true);
$name = $input["name"] ?? "unknown";
$age = $input["age"] ?? 0;
echo json_encode([
"message" => "Hello $name!",
"age" => $age,
"nextYear" => $age + 1
]);Expected output:
{
"success": true,
"data": {
"message": "Hello Mael!",
"age": 22,
"nextYear": 23
}
}⚙️ Integration with your framework
php-api.ts
import { runPHP } from "ts-php-bridge";
export async function callPHP<T = any>(scriptPath: string, params?: Record<string, any>): Promise<T> {
const result = await runPHP(scriptPath, params);
if (!result.success) {
throw new Error("PHP error: " + (result.raw || "unknown"));
}
return result.data as T;
}Example call from your framework
import { callPHP } from "./php-api";
interface UserData {
message: string;
age: number;
nextYear: number;
}
(async () => {
const user: UserData = await callPHP<UserData>("example.php", { name: "Mael", age: 22 });
console.log("PHP data:", user);
})();🔧 Features
Run any PHP script from Node.js/TypeScript
Pass parameters via JSON
Automatically parse JSON output
TypeScript typing for simple and safe usage
⚠️ Prerequisites
Node.js ≥ 18
PHP installed and accessible in PATH (Windows/XAMPP, Linux, macOS)
PHP scripts must read data from php://stdin and output JSON
📦 Development
- Build the project:
npx tsc- Run tests:
node dist/test.js