Создать статическую ссылку на анонимный объект

Я создаю анонимный объект следующим образом:

$factory    =   (object) [ 'router' => new AltoRouter(), 'user' => null ];

Затем я загружаю пользователя так:

if( !empty( $_SESSION['usid'] ) )
$factory->user = ( new UserController() )->loadUserBySession( $_SESSION['usid'] );

Тем не мение, AltoRouter использует функции для динамического отображения URI, и примером этого является:

$factory->router->map('GET|POST', '/pretty/url', function() {
echo 'But this cannot access the $factory->user object to get the current user.';
});

Я знаю, что могу изменить function() в function() use ($factory) но маршрут может быть активирован за пределами объем который имеет доступ к $factory, Я хочу добиться чего-то вроде:

class Factory {
public static $user;
}

$factory->router->map('GET|POST', '/pretty/url', function() {
Factory::$user->doSomething();
});

Но используя анонимные объекты.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …