Похоже, проблема в вашем DIRECTORY_SEPARATOR
, если только вы не на Windows, DIRECTORY_SEPARATOR
- это прямой sla sh, где разделителем пространства имен должен быть обратный sla sh.
Я быстро отредактировал ваш код, чтобы вы могли попробовать:
<?php
use controller\Admin;
$ct_name = 'controller\\' . ucfirst($this->url[0]);
$controller = new $ct_name();
Обратите внимание, что при использовании обратных косых черт в строках почти всегда нужно экранировать.