Александр: PHP разрешает обращение к константам через объект. Объект в данном случае хранится в свойстве другого объекта, потому obj1->tmp - обращение к объекту 2, а obj1->tmp::CONSTANT - обращение к константе, записанной в его классе.
Ну не может парсер прочитать -и фиг с ним. По-моему вопрос исчерпал себя. Не будем заниматься пустозвонством.
Алексей Уколов: да, я в курсе. Но я всегда считаю своей обязанностью разобраться во всём, с чем работаю. В случае "это работает, но я не знаю, как" меня преследует чувство дискомфорта) А также это чувство меня преследует, когда я подключаю чужой громадный код ради мелочи, которая пишется в пять строк.
В общем, сейчас, в процессе обучения, разберусь в таких мелочах, затем обязательно познакомлюсь с Сomposer, сторонними расширениями, фреймворками и принципами их работы.
Спасибо за ответы!
Алексей Уколов: при продакшене - да. Но я пока делаю собственный проект, и хочу досконально разобраться в основах. А потом уже перейду на более высокий уровень.
Хорошо, а как традиционно используется автоподгрузка при использовании пространств имён? И где хранятся классы?
Я читал в PSR, что иерархия namespace должна повторять иерархию каталогов, и я думаю, что это отличная идея.
Спасибо, но всю жизнь всё готовенькое пользовать - так и сображать разучишься. Composer будет потом, когда найду решение вышеизложенного вопроса нативными методами.