Несколько глупых вопросов по автозагрузке )

Изучая вот этот материал http://fkn.ktu10.com/?q=node/9437 столкнулся с некоторыми непонятными для меня моментами.
1. Вот такое именование классов

ItForFree\PhpExamples\MyProject\MyClass

имеет место именно при автозагрузке? То есть, если мы знаем, что в нашем приложении будет реализована автозагрузка классов, то в скрипте, где они описываются, будет примерно такая запись:

class ItForFree\PhpExamples\MyProject\MyClass{...}

?
2. Можно ли чуть подробнее объяснить, как именно интерпретатор php производит поиск класса в директориях? Конкретно интересует как он определяет тот самый префикс (где в имени класса он начинается а где заканчивается) если, насколько я понял, явно он нигде не объявляется и даже требований к именованию базовой директории никаких нет. Интуитивно я догадываюсь, что тут, скорее всего, поиск происходит по частям имени класса, разделенным по слешу, но все-таки хотелось бы прояснить для себя этот момент.
3. Наверное, совсем уже глупый вопрос ) Возможно я призабыл эту тему, но какое отношение к автозагрузке вообще имеют пространства имен? Я так понимаю, здесь в роли протранств и подпространств имён выступают просто разные директории в которых размещены классы?

Key Words for FKN + antitotal forum (CS VSU):

vedro-compota's picture

Вот такое именование классов
ItForFree\PhpExamples\MyProject\MyClass

имеет место именно при автозагрузке?

Нет. Пространства имен и автозагрузка сами по себе в php не связаны (читайте подробнее).

_____________
матфак вгу и остальная классика =)

vedro-compota's picture

Возможно я призабыл эту тему, но какое отношение к автозагрузке вообще имеют пространства имен? Я так понимаю, здесь в роли протранств и подпространств имён выступают просто разные директории в которых размещены классы?

Об этом непосредственно вот эта заметка (создана как ответ на данный вопрос).

_____________
матфак вгу и остальная классика =)

vedro-compota's picture

Можно ли чуть подробнее объяснить, как именно интерпретатор php производит поиск класса в директориях? Конкретно интересует как он определяет тот самый префикс (где в имени класса он начинается а где заканчивается) если, насколько я понял, явно он нигде не объявляется и даже требований к именованию базовой директории никаких нет

Префикс объявляется или в коде или иным способом, но всегда явно, подробнее о этом: http://fkn.ktu10.com/?q=node/10571

Интуитивно я догадываюсь, что тут, скорее всего, поиск происходит по частям имени класса, разделенным по слешу, но все-таки хотелось бы прояснить для себя этот момент.

во-первых, гляньте предыдущую ссылку, по вторых psr4 недвусмысленно требует, чтобы слеш (" разделител") соответствовал разделителю директорий:

Последовательность подпространств имён, следующая за "префиксом пространства имён", соответствует поддиректории в "базовой директории". Разделители пространства имён соответствуют разделителям директорий. Имя поддиректории ДОЛЖНО иметь тот же регистр символов, что и имена подпространств имён.

_____________
матфак вгу и остальная классика =)