Toque! 2.0 Scala - Acessando o objeto global
Eu declarei um objeto que é instanciado no início do aplicativo. Eu quero acessá-lo dentro de um controlador, que faz parte de um plugin. Eu quero ser capaz de usar esse plugin, mas não consigo passar da primeira parte - encontrar oMyWebsocketConnection
objeto. Nenhum dos exemplos mostra como fazer isso. Eu não quero injetar no controlador porque estou escrevendo um plugin (vi exemplos estáticos de como fazer isso em algum lugar).
Global.scala
, aplicativo de plugin \ app \ Global.scala
object Global extends GlobalSettings {
object MyWebsocketConnection {
val logger = // return something that gets instantiated once, like websocket object for logging to ui
}
class MyWebsocketConnection {
import MyWebsocketConnection.logger
}
override def onStart(app: Application) {
Logger.info("Application has started...");
}
}
Meu controlador de plug-in de registro customizado:
MyLogger.Scala
, aplicativo de plugin \ app \ controllers \ MyLogger.scala
object MyLogger {
def info(message: String) = {
// THIS CAN'T BE FOUND ?
// MyWebsocketConnection.logger.send(message)
}
}
Então, do jogo! 2.0 app que faz referência ao plugin, eu (provavelmente) faria algo como abaixo, mas eu não posso nem passar pela parte antes disso:
MyFutureController.scala
, outro jogo! aplicativo \ app \ controllers \ MyFutureController.scala
object MyFutureController extends Controller {
def someRandomMethod = Action {
// Custom logging
MyLogger.info("Here's my log message!");
Ok("This documentation stinks!")
}
}