Play Framework

Bu hafta yaptıklarıma şöyle bir göz gezdiriyim..

Neler yaptım??

Play Framework‘ün kendi sitesinden versiyon 1.2.4’ü indirdim. Bunun yanında Play Framework’de java kullanılıyor, javanın da 1.6 versiyonunu indirdim, bir diğer gerekli araç da, eclipse bunu da javayı kullanacağımız için kuruyoruz. Kurulumlar tamamlandıktan sonra, play’in her yerden çalışabilmesi için ´.bashrc´’ye :

export PATH=' play'in kurulu olduğu yol' :$PATH

ayarın tanımlanması için bilgisayarı açıp kapatmamak için(ayarların etkinleşmesi için) şu komutu komut satırına yazıyoruz:

source .bashrc

play’in kurulu olduğu dosyamızın içine girip,güncelleme için:

 $ play deps --sync

uygulamamızın çalışacağı klasörün içine de eclipse de projemizi görebilmemiz için aşağıdaki komutu çalıştırıyoruz:

$play eclipsify
$play run 

´play run´ ile de play’i çalıştırmış oluyoruz.

Eclipse’i ilk açtığımızda karşımıza
Workspace ekranı geliyor. Eclipse’i açmadan önce bir yerde workspace adlı bir dosya açmamız gerekiyor ve bu ekran geldiğinde de o dosyanın yolunu seçmeliyiz çünkü eclipse çalışmaları o dosyaya depoluyor. Bu adımdan sonra play projemizi açmak için:

import -> general -> existing project into workspace
select root directory -> browse -> proje_adı

Eclipse, java, play.. Bunlar daha önce haşır neşir olmadığım araçlardı. Kurulum kısmı geçtikten sonra play’i kurcalama zamanı gelmişti.. Play ile çalışmanın güzel yanı, bir deneme yapınca hatanı ya da yaptığını anında kontrol etme fırsatının olması mesela; application.java’da bir değişiklik yapıp kaydettikten sonra tarayıcımızın 9000 portu çalıştırdığımızda sonucu direkt olarak görebiliriz. Play kendi içindeki ´H2´ adlı bir SQL veritabanı yönetimi sistemi kullanıyor.

/conf/application.conf 

içinde, db=mem

satırının komentini kaldırdığımızda ´in_memory´ veritabı kullanıyoruz yani, verilerimiz bellekte tutuluyor. Böylelikle Play uygulamamızı açtığımızda verilere ulaşabiliyoruz, uygulamayı kapattığımızda ulaşamıyoruz.

Uyarı
Hemen burada kendi yaptığım bir hataya düşmemeniz için uyarı da bulunayım. ´Play run´ komutu girdikten sonra eclipse de çalışmaya başladım.localhost:9000 porttan yaptıklarımı kontrol ediyordum derken bum! localhost’da hata almaya başladım kurcaladım,adımları baştan yaptım düzeltemedim, en sonunda bilgisayara reset attım düzeldi fakat sorunu bulamadım. Ertesi gün Umut abi’ye sorduğumda sorunu ve çözümünü anladım: Ben ´play run´ diyip çalıştırdığım süreci tekrar çalıştırmaya çalışmışım, yani terminali kapatmışım fakat process hala arkada çalışıyor ve ben üstüne yeniden play run dediğimde hata veriyormuş.Çözüm: Süreci nasıl sonlandıracağız?

$ps aux |grep java     :içinde java geçen process isimlerine bakıyoruz.
$kill -9 process number     

ilk komutun çıktısındaki verilerden java processinin numarasını buraya yazarak o süreci sonlandırıyoruz. Bu kadarcık.

Play’de oluşturduğumuz projemizin içindeki dosyalara göz gezdirecek olursak:

Controller bir java sınıfıdır. Bir HTTP (request) isteği alındığında action çağırılır. Action methodu HTTP isteğinden gelen ilgili veriyi ayıklar,okur ve model nesnesini günceller ve HTTP yanıtı(response) ile geri gönderir.

Burada veri yapıları ve her uygulama işlecinin işlemleri yer alır.

Burada HTML,XML,JSON gibi model sunumu yapan şablonlar yer alıyor.

Play (request-response) istek-yanıt mantığıyla çalışır. 1.HTTP isteği framework tarafından alınır. 2.Router bileşeni bu isteği kabul edebilecek en uygun router’ı bulmaya çalışır. 3.İlgili uygumala methodu yürütülür ( controller) . 4.Şablon dosyası oluşturulur ( render,model) . 5.Action methodunun sonucu HTTP response olarak yazılır.

Routerdan bahsettik peki bu router nedir, nerede bulunur? conf içinde iki adet konfigürasyon dosyası vardır.

Resimler, css stil dosyaları ve javascript dosyaları burada bulunuyor.

Play Framework’un sitesinden Bu adımı ve devamındaki 11 adımı okuyarak kendiniz de uygulayabilir, kolaylıkla geliştirebilirsiniz.

GitHub'dayım