2016-02-01 1 views
0

Я использую микро-приложение Phalcon, я создал DI для моей утилиты с именем named. Когда я получаю общую утилиту с помощью утилиты $ app->, произошла ошибка.

$di->setShared('utility',function(){ 
    return new utility(); 
}); 
$app->get("213",function(){}); 
$app->utility; 

ошибка: Доступ к утилите неопределенной собственности в ($ приложении)

Но если изменить код

$di->setShared('utility',function(){ 
    return new utility(); 
}); 
$app->utility; 
$app->get("213",function(){}); 

Он отлично работает. ПОЧЕМУ?

PHP = 5.6.17

Phalcon = 2,7 или 2,8 или 2,9

окна 10 + Nginx

СПАСИБО!

+0

Phalcon = 2.0.7 или 2.0.8 или 2.0.9 –

+0

Экземпляр «$ app» и что делает '$ app-> get (« 213 », function() {})' thing? Вопрос неполный, пожалуйста, предоставьте нам минималистичный рабочий пример, чтобы решить вашу проблему. – yergo

+0

Может быть $ di-> get ('utility') или $ di-> getUtility? https://docs.phalconphp.com/en/latest/reference/di.html#resolving-services – user3383116

ответ

0

$ приложение является экземпляром макроса. $ app = Макро ($ di); Опубликовать $ di как параметр для макроса, и он отлично работает.