poniedziałek, 30 czerwca 2014

Play - bonusy do ćwiczeń

Poniżej lista małych tematów, które można dorzucać do większych ćwiczeń jak jakimś cudem zostanie trochę czasu.

Globalne info o braku strony

To je dobre bo w innych frameworkach ten mechanizm jest na porządku dziennym.

//Global.scala - w katalogu app- będzie warning o  tym by nie dodawać do domyślnej paczki.
object Global extends GlobalSettings {

  override def onStart(app:Application){
    Logger.info("startujemy ku*wa") //to tak dla bajery
  }

  override def onHandlerNotFound(request: RequestHeader) = {
    Future.successful(NotFound(
      views.html.nieZnalazlem(request.path) 
    ))
  }
}

//nieznalazlem.scala.html
@* nieZnalazlem Template File *@
@(param: Any)

<h1>Nie ma takie strony ku*wa</h1>

Taki niby Quartz

Tutaj jest pierwszy kontakt z Akka.

//Global.scala
override def onStart(app:Application){
    Logger.info("startujemy ku*wa")
    
    import play.api.Play.current
    import scala.concurrent.duration._
    import scala.concurrent.ExecutionContext.Implicits.global
    
    val quartzActor=Akka.system.actorOf(Props(new quartz.QartzActor()))
    Akka.system.scheduler.schedule(0.seconds,30.seconds,quartzActor,RobCos())
  }

class QartzActor extends Actor{
 def receive={
   case RobCos()=>println("robie cos")
   case _ =>println("robie nic")
 }
}

case class RobCos()

Zabawniejszy konfig

Konfig w Playu jest bardzo wygodny w użyciu i ma kilka ciekawych sztuczek. Są takie niby przestrzenie nazw dla propertasów oraz sklejanie propertasów, które fajnie działa przy sklejaniu ścieżek. Tu dla sportu stworzymy sobie ścieżkę z warzywa.

//application.conf
warzywo: {
 kolor=zielony,
 smak=kwaśny
}

property=${warzywo.kolor}/resztaSciezki

//html
@play.api.Play.current.configuration.getString("warzywo.kolor")
<br/>
@play.api.Play.current.configuration.getString("property")

Minimalizacja javaskryptu

Ten tamat znacznie się rozwinął w Play 2.3 za sprawą sbt-web (chyba) także tutaj uboższa wersja dla wersji 2.2

w app stworzyć paczkę assets.js

//test.js
function dzialaj(a){
 var tekst="aaa"
 console.log(tekst)
}

//_notCompiled.js
function dzialaj2(a){
 var tekst="aaa"
 console.log(tekst)
}

Teraz trzeba odświeżyć stronkę bo jakoś sam z siebie tych rzeczy nie kompiluje i mamy

//test.min.js
function dzialaj(a){var tekst="aaa";console.log(tekst)};

//_notCompiled.js
function dzialaj2(a){
 var tekst="aaa"
 console.log(tekst)
}

I to to nawet nam kompiluje javascript i sprawdza składnie! Bardzo ładnie!

No i to były właśnie takie krótkie małe tematy.

2 komentarze:

  1. sbt-web a właściwie sbt-uglify. Patrz https://github.com/sbt/sbt-web#available-plugins

    OdpowiedzUsuń