--- /dev/null
+<?php
+
+/**
+ * Загрузка переменных окружения для API3
+ * Файл .env должен находиться в корне erp24/
+ */
+
+try {
+ $dotenv = Dotenv\Dotenv::createImmutable(dirname(__DIR__, 2));
+ $dotenv->load();
+
+ // Обязательные переменные окружения для API3
+ $dotenv->required([
+ 'POSTGRES_PASSWORD',
+ 'COOKIE_VALIDATION_KEY',
+ ]);
+
+ // Опциональные переменные с валидацией формата
+ $dotenv->ifPresent('POSTGRES_PORT')->isInteger();
+ $dotenv->ifPresent('DB_PORT')->isInteger();
+ $dotenv->ifPresent('DB_REMOTE_PORT')->isInteger();
+
+ foreach ($_ENV as $key => $value) {
+ if (is_scalar($value)) {
+ putenv("$key=$value");
+ }
+ }
+} catch (\Dotenv\Exception\InvalidPathException $e) {
+ putenv("APP_ENV=development");
+ // Yii может быть еще не загружен, используем error_log
+ error_log('API3: Файл .env не найден: ' . $e->getMessage());
+} catch (\Dotenv\Exception\ValidationException $e) {
+ error_log('API3: Ошибка валидации .env: ' . $e->getMessage());
+ throw $e;
+}
defined('YII_ENV') or define('YII_ENV', 'dev');
require __DIR__ . '/vendor/autoload.php';
+
+// Загрузка .env ДО конфига, чтобы getenv() работал в db.php
+require __DIR__ . '/config/env.php';
+
require __DIR__ . '/vendor/yiisoft/yii2/Yii.php';
$config = require __DIR__ . '/config/console.php';
-require __DIR__ . '/config/env.php';
$application = new yii\console\Application($config);
$exitCode = $application->run();