reactiveData/requirements.txt.php
Frederico Falcao 14f96e78f9 IMPROVEMENT: bring Python trigger support to parity with PHP.
Add SQL bridge, support functions, cron jobs, error handling, and PyPI version pinning so Python triggers match PHP capabilities.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 00:13:18 +03:00

36 lines
1.2 KiB
PHP

<?php
require_once __DIR__. "/.env.php"; // DB_USER, DB_PASS, DB_NAME, DB_HOST
// Setup PDO
$dsn = "mysql:host=".DB_HOST.";dbname=SYS_PRD_BND;charset=utf8mb4";
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
];
try {
$pdo = new PDO($dsn, DB_USER, DB_PASS, $options);
// Fetch dependencies from PyPi table
// Note: We select LibName. If AliasName represents a specific version or URI, it can be appended.
$stmt = $pdo->query("SELECT LibName, VersionOrTag FROM PyPi ORDER BY LibName");
$requirements = [];
foreach ($stmt as $row) {
$line = $row['LibName'];
if (!empty($row['VersionOrTag'])) {
$line .= '==' . $row['VersionOrTag'];
}
$requirements[] = $line;
}
// Build requirements.txt content (Plain Text, one per line)
$output = implode("\n", $requirements);
// Write to file (stdout for Makefile redirection)
file_put_contents('php://stdout', $output . "\n");
file_put_contents("php://stderr", "✅ requirements.txt generated successfully.\n");
} catch (PDOException $e) {
file_put_contents("php://stderr", "❌ Database error: " . $e->getMessage() . "\n");
}