как в начале файла создать правильно консанту чтобы во всех классах ее использовать?

вот так работает 
//2. Подключение файлов системы
    define(ROOT, dirname(__FILE__));
    require_once(ROOT.'/components/Autoload.php');
 
но Warning: Use of undefined constant ROOT - assumed 'ROOT' (this will throw an Error in a future version of PHP) 

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

Автор решения: teran

Если вы обратите внимание на номер строки, в котором выдается данное предупреждение, то заметите, что указывает он на строку define, а не на require_once.

Если вы пойдете еще дальше, и переведете сообщение, то увидите, что там написано "неизвестная константа ROOT, предполагается 'ROOT'".
Параметром директивы define является строка с названием константы. А строковый летерал заключается в кавычки. Когда интерпретатор видит нечто без кавычек, то он ищет такую константу и не находит ее. Далее он пишет, что раз уж константа не нашлась, препдоложим, что это строка, ругается и заменяет это дело на "ROOT". Так что в целом далее код работает.

Поэтому исправьте ваше define(ROOT, ...) на define('ROOT', ...)

→ Ссылка