2012-07-09 150 views
1

我正在Yii項目中工作,它也有一個控制檯應用程序。Yii:從Yii控制檯應用程序調用Yii :: app() - >控制器

形成控制檯應用程序,我沒有調用任何控制器,只能在組件工作正常,但在某些地方,我需要從組件目錄中的Controller.php調用變量/函數。這可以稱爲例如

Yii::app()->controller->aGlobalVariable; 

但在控制檯應用程序,我不能做到這一點,它說:

Trying to get property of non-object ...

如何使控制檯應用程序使用它呢?

感謝

回答

1

在控制檯u使用不具備控制器CConsoleApplication,U可以使用從CConsoleCommand

yiic {Ur command} {Ur params for command}

繼承類的模型向谷歌:https://www.google.ru/search?q=yii+CConsoleCommand

我需要從Controller.php調用變量/函數

ü重新編碼您的VAR和功能到\單機類保護\組件\,你可以從控制器調用和consolecommand

+0

我已經這樣做,但事情是,在Controller.php這樣的東西在網絡和控制檯應用程序中共享。所以我想在控制檯應用中使用這些東西。任何替代方式重新使用該代碼,而無需單獨編寫更多的控制檯? – Arfeen 2012-07-09 05:43:40

+1

雅我想我需要移動組件中的全局變量 – Arfeen 2012-07-09 05:46:37

+0

你可能會調用創建你的控制器有點像這樣:Yii :: import('app.controllers.MyController'); $ myController = new MyController; – Sergey 2012-07-09 05:46:46