Я объявил объект, который создается при запуске приложения. Я хочу получить доступ к нему внутри контроллера, который является частью плагина. Я хочу иметь возможность использовать этот плагин, но, похоже, я не могу пройти мимо первой части - найти объект MyWebsocketConnection
. Ни один из примеров не показывает, как это сделать. Я не хочу вводить в контроллер, потому что я пишу плагин (я видел статические примеры того, как это сделать где-то).
Global.scala
, приложение-плагин\приложение\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...");
}
}
Мой пользовательский контроллер плагина:
MyLogger.Scala
, приложение-плагин\приложение\контроллеры\MyLogger.scala
object MyLogger {
def info(message: String) = {
// THIS CAN'T BE FOUND ?
// MyWebsocketConnection.logger.send(message)
}
}
Итак, из Play! 2.0, которое ссылается на плагин, я бы (возможно) сделал что-то вроде ниже, но я не могу даже пройти мимо части до этого:
MyFutureController.scala
, другое Play! application\app\controllers\MyFutureController.scala
object MyFutureController extends Controller {
def someRandomMethod = Action {
// Custom logging
MyLogger.info("Here my log message!");
Ok("This documentation stinks!")
}
}