2014-12-22 2 views
0

Возможно ли создать один экземпляр класса, который будет использоваться во всех маршрутах. Например, у меня есть этот код:Slim Framework - экземпляр одного класса для всех маршрутов

$app = new \Slim\Slim([ 
     'mode' => 'development', 
     'debug' => true 
    ]); 
    use App\API; 

    $API = new API; 

$app->get('/', function() { 

    $API->insertMessage(); 
}); 

$app->run(); 

На данный момент это не работает, мне нужно поставить $ API = new API внутри получить запрос.

ответ

1

Да, это возможно.

Вы ищете другую (и разные) use заявление:

$app->get('/', function() use ($API) { 
          ##########  
    $API->insertMessage(); 
}); 

Это должно сделать это для вас, оно унаследовавшие переменные из родительской области. См. Также: Anonymous functions (PHP Manual) и In PHP 5.3.0, what is the function “use” identifier?.

+0

Да, это работает. Я хотел что-то более глобальное (только один звонок), но это будет делать :). Спасибо :) – Sasha

+0

Это только один звонок, и если я правильно вижу ваш код, '$ API' также находится в глобальной области. – hakre

Смежные вопросы