diff --git a/public/index.php b/public/index.php index a7c25ec..4df9dfa 100644 --- a/public/index.php +++ b/public/index.php @@ -9,48 +9,46 @@ use Slim\Middleware\ContentLengthMiddleware; require __DIR__ . '/../vendor/autoload.php'; -// 1. Загружаем переменные окружения через библиотеку Dotenv -// Добавляем отладку для проверки, читается ли .env файл +// Загружаем переменные окружения $envPath = __DIR__ . '/../.env'; if (file_exists($envPath)) { - // error_log("RSS Hub: .env file found at $envPath"); + error_log("RSS Hub: .env file found at $envPath"); } else { - // error_log("RSS Hub: .env file NOT FOUND at $envPath"); + error_log("RSS Hub: .env file NOT FOUND at $envPath"); } try { $dotenv = Dotenv\Dotenv::createImmutable(__DIR__ . '/../'); $dotenv->load(); - // error_log("RSS Hub: .env file loaded successfully"); + error_log("RSS Hub: .env file loaded successfully"); } catch (Exception $e) { - // error_log("RSS Hub: Error loading .env file: " . $e->getMessage()); + error_log("RSS Hub: Error loading .env file: " . $e->getMessage()); // Продолжаем выполнение, даже если .env не загрузился } -// 2. Настройка контейнера +// Создаем PDO напрямую +$host = $_ENV['DB_HOST'] ?? $_SERVER['DB_HOST'] ?? getenv('DB_HOST') ?? 'localhost'; +$dbname = $_ENV['DB_NAME'] ?? $_SERVER['DB_NAME'] ?? getenv('DB_NAME') ?? 'your_database_name'; +$username = $_ENV['DB_USER'] ?? $_SERVER['DB_USER'] ?? getenv('DB_USER') ?? 'your_database_user'; +$password = $_ENV['DB_PASS'] ?? $_SERVER['DB_PASS'] ?? getenv('DB_PASS') ?? 'your_secure_password'; + +error_log("RSS Hub DB config - Host: $host, DB: $dbname, User: $username"); + +$dsn = "mysql:host=$host;dbname=$dbname;charset=utf8mb4"; + +$options = [ + PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, + PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, + PDO::ATTR_EMULATE_PREPARES => false, +]; + +$db = new PDO($dsn, $username, $password, $options); + +// Настройка контейнера $container = new DI\Container(); -// 3. Настройка PDO -$container->set('db', function () { - // Пробуем получить переменные окружения - $host = $_ENV['DB_HOST'] ?? $_SERVER['DB_HOST'] ?? getenv('DB_HOST') ?? 'localhost'; - $dbname = $_ENV['DB_NAME'] ?? $_SERVER['DB_NAME'] ?? getenv('DB_NAME') ?? 'your_database_name'; - $username = $_ENV['DB_USER'] ?? $_SERVER['DB_USER'] ?? getenv('DB_USER') ?? 'your_database_user'; - $password = $_ENV['DB_PASS'] ?? $_SERVER['DB_PASS'] ?? getenv('DB_PASS') ?? 'your_secure_password'; - - // Логируем значения для отладки (временно, для проверки) - // error_log("RSS Hub DB config - Host: $host, DB: $dbname, User: $username"); - - $dsn = "mysql:host=$host;dbname=$dbname;charset=utf8mb4"; - - $options = [ - PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, - PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, - PDO::ATTR_EMULATE_PREPARES => false, - ]; - - return new PDO($dsn, $username, $password, $options); -}); +// Регистрируем PDO в контейнере как уже созданный объект +$container->set('db', $db); // Установка контейнера для фабрики приложений AppFactory::setContainer($container);