Этот простой пример не работает, дает мне:
Неустранимая ошибка: spl_autoload () [function.spl-autoload]: не удалось загрузить класс GmailServer.
define('USERNAME', 'username');
define('PASSWORD', 'password');
$SERVER = 'GmailServer';
spl_autoload_extensions(".php");
spl_autoload_register();
use Service\Mail\GmailServer;
$server = new $SERVER(USERNAME, PASSWORD);
Хотя, конечно, это работает:
$server = new GmailServer(USERNAME, PASSWORD);
Я что-то упускаю?
РЕДАКТИРОВАТЬ : Работа с отражением (ноВы должны указать полное пространство имен):
$reflector = new \ReflectionClass("Service\\Mail\\$SERVER");
$server = $reflector->newInstance(USERNAME, PASSWORD);