Приложение не видит константы при подключении их через composer.autoload.files

Имеется index.php в котором подключен

require './vendor/autoload.php';
require('./config/config.php');

есть composer.json

{
    "autoload": {
        "classmap": [
            "app/"
        ],
        "files": [
            "config/config.php"
        ]
    }
}

В config.php описаны константы:

const API_TYPE_TELEGRAM = 'telegram';
const API_TYPE_WHATSAPP = 'whatsapp';
const API_TYPE_DISCORD = 'discord';

Неймспейс там не задан. Это просто некий конфигурационный файл + константы приложения. Они будут использоваться в других файлах.

Теперь когда запускаю index.php, то в логи в ошибки мне пишет:

Notice: constant API_TYPE_TELEGRAM already defined in php Notice: constant API_TYPE_WHATSAPP already defined in php Notice: constant API_TYPE_DISCORD already defined in php

Хотя нигде я больше их не объявляю. Окей. Думаю, может композер подключает через автолоад (т.к. его подключил и даже в vendor/composer/autoload_files.php есть сгенерированный массив подключения). Убираю строку require('./config/config.php'); и получаю ошибку

PHP Notice: Use of undefined constant API_TYPE_TELEGRAM

Что происходит? Где именно проблема? Если в composer.autoload.files прописан путь, то в других файлах уже не нужно его подключать? Или нужно? Если не нужно, то как тогда заставить приложение и классы видеть те константы? А если нужно подключать файл, то зачем тогда строка в composer?


Само приложение работает, 9 раз из 10. Не знаю проблема в этом или нет. Но хотелось бы понять пока как делать правильно с комопзером и файлами

UPD Весь конфиг выглядит так:

<?php
declare(strict_types=1);

const API_TYPE_TELEGRAM = 'telegram';
const API_TYPE_WHATSAPP = 'whatsapp';
const API_TYPE_DISCORD = 'discord';

$config = [
    API_TYPE_TELEGRAM => [
        'token' => '',
        'chat_id' => '',
        'parse_mode' => 'HTML',
    ],
    API_TYPE_WHATSAPP => [],
    API_TYPE_DISCORD => [],
];

Ответы (0 шт):