Play Framework Introduction

Merhaba arkadaslar,

Play Framework yazı dizisine hosgeldiniz, toplamda 8-9 yazı olacak, kendim öğrenirken bir yandan da burada öğrendiklerimi aktaracagım.

ve mâ tevfîkî illâ billâh(billâhi), aleyhi tevekkeltu ve ileyhi unîb(unîbu).

Benim başarım ancak Allah iledir. Ben, O’na tevekkül ettim ve O’na yöneldim.

Play Framework 2

Java yada Scala kullanarak hızlı, stabil, yüksek performanslı, kullanıcı dostu web applicationlar yazabileceğiniz bir Web Framework’tur. Aslında Java Web Framework diyebiliriz çünkü siz Scala ile de yazsanız sonuçta jvm’de java byte kod’a çevrildiği için aynı hesaba gelecektir.

Play Framework’u niçin kullanmanız noktasında şunları söyleyebilirim;

  • Core Java ile de web application yazmak isterseniz.
  • Flexible, stable, high-availability gibi degerlere önem veriyorsanız.
  • Play – Akka birleşimi yaparak concurrent-yüksek performanslı web uygulama istiyorsanız.
  • MVC mimarisine alışık iseniz ve bunu daha ileriye daha basit bir şekilde taşımak istiyorsanız play’i deneyebilirsiniz!

 

Play kurulumu

Play,  typesafe activator denen yapıyla dağıtılıyor. Aşağıdaki linkten dosyayı localinize indirip bir yere extract edin;

https://downloads.typesafe.com/typesafe-activator/1.3.7/typesafe-activator-1.3.7.zip

Activator denen proje oluşturmaya, çalıştırmaya ve içerisinde play öğrenmek için bir ui’a sahip araçtır, önce activator ile bir proje oluşturalım;

Screenshot from 2016-03-10 12:54:16

İndirdiginiz dizine gidip şu komutu girin;

Size kullanılabilir proje taslakları sunacaktır, şimdilik play-java seçerek bir isim girin. Projeniz ilgili dizinin altına kurulacaktır;

Olusturdugumuz projenin dizinine gidelim ve şunu girelim;

Screenshot from 2016-03-10 13:00:48

Play kendi içerisinde internal server olarak Netty kullanmaktadır, default olarak da 9000 portundan uygulamanız çalışacaktır. localhost 9000 portuna gidelim;

Screenshot from 2016-03-10 13:13:12

Default taslak ile olusturdugumuz proje de index sayfası yukardakine benzer olacaktır. Play kendi içerisinde dokumantasyonu, tutorialları ile beraber gelmektedir. Bizi ilgilendiren nokta “Your new application is ready” kısmıdır.

Play application dizin yapısına deginecegim, MVC kısmı konusuna da bakacagız. İlk olarak proje dizinimiz de neler var bakalım;

Screenshot from 2016-03-10 13:16:54

Proje dizinimizin altında bizim degisiklik yapacagımız ve yapmamamız gereken, play’ın kendi dosyaları bulunmaktadır.

  • build.sbt : Build dosyamızdır, içerisinde uygulama ismi, dependencies, konfigürasyon bilgilerini barındırır.
  • app : Bu dizin uygulamanın kendisini barındırır, classlar, view’lar vs.
  • conf : default olarak application.conf dosyasını, logback.xml default logging’dir ve routes dosyası olan url yönlendirme/mapping konfügürasyonlarını barındıran dosyadır.
  • logs : klasörü default olarak applicaiton.log dosyasını içerir, herhangi bir sorunda buraya bakılabilir.
  • public : bu dizin uygulama üzerinde barındırılan ve public olarak erişilebilen dosyaları barındırır. img, js, css gibi dosyalar buraya konabilir.
  • test : application test dizinidir.
  • project ve target kısımlarına şimdilik bakmayacağız.

Default olarak olusturdugumuz proje de app dizini altına bakalım;

Screenshot from 2016-03-10 13:24:58

App dizini birkac klasör var daha sonra detaylandıracagız. İlk olarak controllers dizine gidelim ve default olarak gelen HomeController.java içerigine bakalım;

Yukarda localhost:9000 portuna gittgimizde karsılastıgımız mesajı görebilirsiniz. Routes configürasyonunda / olarak gelen isteklerin index()’e gidecegi belirtilmistir. Bu action ise HTTP 200(ok) ile yukardaki mesajı vermektedir.

Karışık olmaması açısından açıklayalım; index.render kısmı bir template’e işaret etmektedir. Bir üst dizindeki views içerise bakalım;

Screenshot from 2016-03-10 13:28:34

Göreceginiz gibi iki adet html/java template var. index.render ifadesi index.scala.html’e işaret etmektedir;

Otomatik generate edilen index.scala.html içerisinde @* *@ kısımları comment kısımlarıdr.

@(message: String) ifadesi bu template’ın bir parametre aldıgını belirtir ki bu Controller’dan gelen “Your new application is ready” ifadesidir. Bu ifadeyle beraber main template’ine “Welcome To Play” parametresini göndermektedir.

@main ile views klasörü içerisindeki main.scala.html template’i çağrılıp kullanılmaktadır. Ona bakalım, karısık degil merak etmeyin, sonra acıklayacagım;

main template’ın iki adet parametre aldıgını belirtelim; title ve content. index.scala.html template’inden gönderilen degerler şunlardır;

  • title : “Welcome to Play”
  • content : “Your new application is ready.”

Daha sonra bunları detaylıca acıklayacagız. Simdi göstermemdeki amac “Your new application is ready.”  mesajı nerden geldi, nereye gitti vs diye kafanızın karısmaması içindir. Son olarak ufak da olsa routes konfigürasyonuna bakalım;

Sadece / ile map edilen yere bakalım; GET http methodunu belirtir. / ise url mappingdir, devamındaki ise bu istegi kimin karsılayacagıdır. Diğerlerine takılmayın default olarak olusturulmustur, daha sonra detaylı deginecegiz.

index methodunu degistirelim ve sonucuna bakalım;

Terminalden serverı stop etmek icin ctrl+D dedikten sonra tekrar activator run diyerek netty’i çalıştıralım;

Screenshot from 2016-03-10 13:36:56

Yazımızın sonuna geldik arkadaslar, bu yazıda ufak bir giris yaparak örnek bir proje olusturduk, bazı yerlere degindik kafanızda soru işaret oluşmaması için. Sonraki yazılarda bunların detayına bakacağız insaAllah.

İlgili projeye şuradan erilebilirsiniz : PlayTutorial

~ A.Akkus

 

746 Total Views 3 Views Today