アプリケーションの起動時にインスタンス化されるオブジェクトを宣言しました。プラグインの一部であるコントローラー内でアクセスしたい。そのプラグインを使用できるようにしたいのですが、最初の部分、つまりMyWebsocketConnection
オブジェクトを見つけることを乗り越えられないようです。どの例もこれを行う方法を示していません。プラグインを書いているので、コントローラーに注入したくありません(どこかでそれを行う方法の静的な例を見ました)。
Global.scala
、プラグインアプリケーション\ 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...");
}
}
私のカスタムロギングプラグインコントローラー:
MyLogger.Scala
、プラグインアプリケーション\ app \ controllers \ MyLogger.scala
object MyLogger {
def info(message: String) = {
// THIS CAN'T BE FOUND ?
// MyWebsocketConnection.logger.send(message)
}
}
だから、プレイから!プラグインを参照する2.0アプリ、私は(おそらく)以下のようなことをしますが、これより前の部分を通過することさえできません:
MyFutureController.scala
、別のプレイ!アプリケーション\app\ controllers \ MyFutureController.scala
object MyFutureController extends Controller {
def someRandomMethod = Action {
// Custom logging
MyLogger.info("Here's my log message!");
Ok("This documentation stinks!")
}
}