From f8fb7ecb033c9b5320271925dac1d15cb645f95a Mon Sep 17 00:00:00 2001 From: mirivlad Date: Fri, 6 Feb 2026 11:46:25 +0300 Subject: [PATCH] change index.php --- public/index.php | 86 ++++++++++++++++++++---------------------------- 1 file changed, 35 insertions(+), 51 deletions(-) diff --git a/public/index.php b/public/index.php index b2b6290..e2d0c80 100644 --- a/public/index.php +++ b/public/index.php @@ -9,37 +9,26 @@ use Slim\Middleware\ContentLengthMiddleware; require __DIR__ . '/../vendor/autoload.php'; -// Загрузка переменных окружения -$dotenv = Dotenv\Dotenv::createImmutable(__DIR__ . '/../'); -$dotenv->safeLoad(); // Используем safeLoad вместо load для избежания ошибок +// 1. Загружаем переменные окружения через библиотеку Dotenv +// Используем createUnsafeImmutable чтобы иметь возможность перезаписать переменные при необходимости, +// хотя обычно createImmutable достаточно. +// ВАЖНО: Используем load() вместо safeLoad(), чтобы увидеть ошибку, если файл .env не найден. + $dotenv = Dotenv\Dotenv::createImmutable(__DIR__ . '/../'); + $dotenv->load(); -// Настройка контейнера -$container = new DI\Container(); +// 2. Настройка контейнера + $container = new DI\Container(); -// Настройка PDO -$container->set('db', function () { - // Загружаем переменные окружения внутри функции для уверенности - $envPath = __DIR__ . '/../.env'; - if (file_exists($envPath)) { - $lines = file($envPath, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); - foreach ($lines as $line) { - if (strpos($line, '=') !== false && strpos($line, '#') !== 0) { - list($key, $value) = explode('=', $line, 2); - $key = trim($key); - $value = trim($value); - if (!isset($_ENV[$key]) && !isset($_SERVER[$key])) { - putenv("$key=$value"); - $_ENV[$key] = $value; - $_SERVER[$key] = $value; - } - } - } - } +// 3. Настройка PDO (Убрали весь ручной парсинг файла) + $container->set('db', function () { + // Проверяем, загрузились ли переменные (для отладки) + // Если соединение не будет работать, раскомментируй строку ниже и посмотри, что выводит error_log + // error_log('DB Host: ' . ($_ENV['DB_HOST'] ?? 'not set')); - $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'; + $host = $_ENV['DB_HOST'] ?? 'localhost'; + $dbname = $_ENV['DB_NAME'] ?? 'your_database_name'; + $username = $_ENV['DB_USER'] ?? 'your_database_user'; + $password = $_ENV['DB_PASS'] ?? 'your_secure_password'; $dsn = "mysql:host=$host;dbname=$dbname;charset=utf8mb4"; @@ -54,48 +43,43 @@ $container->set('db', function () { // Установка контейнера для фабрики приложений AppFactory::setContainer($container); -$app = AppFactory::create(); + $app = AppFactory::create(); -// Добавление middleware для определения длины содержимого -$app->addBodyParsingMiddleware(); -$app->add(new ContentLengthMiddleware()); +// Добавление middleware + $app->addBodyParsingMiddleware(); + $app->add(new ContentLengthMiddleware()); -// Основной маршрут API -$app->get('/api/feeds', [ApiController::class, 'getFeeds']); -$app->post('/api/feeds', [ApiController::class, 'registerFeed']); -$app->delete('/api/feeds/{id}', [ApiController::class, 'deleteFeed']); -$app->get('/api/categories', [ApiController::class, 'getCategories']); -$app->get('/api/tags', [ApiController::class, 'getTags']); +// Маршруты (без изменений) + $app->get('/api/feeds', [ApiController::class, 'getFeeds']); + $app->post('/api/feeds', [ApiController::class, 'registerFeed']); + $app->delete('/api/feeds/{id}', [ApiController::class, 'deleteFeed']); + $app->get('/api/categories', [ApiController::class, 'getCategories']); + $app->get('/api/tags', [ApiController::class, 'getTags']); -// Маршруты для владельцев (агентов) -$app->post('/api/owners/register', [OwnerController::class, 'registerOwner']); -$app->get('/api/owners/me', [OwnerController::class, 'getOwnerByApiKey']); + $app->post('/api/owners/register', [OwnerController::class, 'registerOwner']); + $app->get('/api/owners/me', [OwnerController::class, 'getOwnerByApiKey']); -// Маршрут для главной страницы -$app->get('/', function (Request $request, Response $response) { + $app->get('/', function (Request $request, Response $response) { $response->getBody()->write(file_get_contents(__DIR__ . '/../templates/index.html')); return $response->withHeader('Content-Type', 'text/html'); }); -// Маршрут для страницы лент -$app->get('/feeds', function (Request $request, Response $response) { + $app->get('/feeds', function (Request $request, Response $response) { $response->getBody()->write(file_get_contents(__DIR__ . '/../templates/feeds.html')); return $response->withHeader('Content-Type', 'text/html'); }); -// Маршрут для документации скилла -$app->get('/SKILL.md', function (Request $request, Response $response) { + $app->get('/SKILL.md', function (Request $request, Response $response) { $response->getBody()->write(file_get_contents(__DIR__ . '/../SKILL.md')); return $response->withHeader('Content-Type', 'text/plain'); }); -// Маршрут для README -$app->get('/README.md', function (Request $request, Response $response) { + $app->get('/README.md', function (Request $request, Response $response) { $response->getBody()->write(file_get_contents(__DIR__ . '/../README.md')); return $response->withHeader('Content-Type', 'text/plain'); }); // Обработка ошибок -$errorMiddleware = $app->addErrorMiddleware($_ENV['APP_DEBUG'] ?? false, true, true); + $errorMiddleware = $app->addErrorMiddleware($_ENV['APP_DEBUG'] ?? true, true, true); -$app->run(); \ No newline at end of file + $app->run();