Есть два класса и index файл. Когда в индексе подключаю файлы через namespace - выходит ошибка, что класс не найден. Однако когда я делаю require_once вместе с namespace - все работает. Верно ли я делаю? И как правильно инклюдить файлы с namespace и надо ли это делать? Если есть возможность - приведите пример.
"подключаю файлы через namespace" - это use? "require_once вместе с namespace" - может это про папку? Описать словами не вышло, лучше код копипастни. Файлы инклюдятся как файлы, нэймспейсы либо импортируются, либо добавляются к названию класса при каждом вызове, мешать понятия не надо.
Сами по себе неймспейсы для подключения файлов не предназначены. Это только способ называть классы короткими именами и разрешать конфликты, если два разных класса имеют одинаковое название.
Но очень распространён (на уровне стандарта языка) подход, когда функция автозагрузки использует неймспейс как путь до файла с классом.
Так что смотрите в сторону PSR-4 и функции spl_autoload_register.