«

»

Eyl
09

PHP Faces ile olay yönelimli programlama giriş

PHP Faces ile geliştirdiğim çevrim içi Ajax hesap makinası örneği

PHP Faces in olay mekanizması içeresinde üç önemli kavramı anlamanızda yarar vardır. PHP Faces olay yakalama kalıpları Java tarzındadır. eğer java swing ile daha önce uygulama geliştirmişseniz bu tanımlar size yabancı gelmeyecektir.

  • Listener : Dinleyiciler
  • Event: Olaylar
  • Component : bileşennler

Listener bir arayuz interface tanımlar  Controller sınıfıda dinlemeye alacağınız bu aryüzleri uygularsınız.

Eventlar gerçekleşen olay ile ilgili nesnelerdir. bunlar framework tarfından oluşturulur ve olay ile ilgili metot parametrelerine gecirilir.

Component genellikle olaylar bir bileşen tarfından tektiklenir.

PHP Faces da şuan bulunan listenerlar

  • ActionListener :  tıklama olayı için kullanılır
  • MouseListener : mouse olayları için kullanılır
  • ValueChangedListener : değerler değiştiğinde kullanılır
<?php

interface ActionListener extends FacesListener
{
/**
* @param ActionEvent $event
*/

public function actionPerformed(ActionEvent $event);
}
?>

PHP Faces da şuan bulunan olaylar

  • ActionEvent : bir  tıklama olayı gerçekleştiğinde
  • MoueseEvent : bir mouse olayı gerçekleştiğinde
  • ValueChangedEvent : değişim olayı gerçekleştiğinde

controler sınıfımız listener ile ilgigili metodunu çağırır ve listener uygulayan sınıfı olay için  kayıt eder.

PHP faces  olaylar için temel iki post yöntemi kullanır ilk yöntem post back ve ikinci yöntem ajaxtır.

olayların gerçekleşmesi için view(görünüm) tarfında bileşen tanımlamaları yapılırken bildirilmesi gerekir.

bileşenin post back yapmasını istiyorsanız bileşen tanımında ilgili olay nitelğine “actionevent”

bileşenin bir ajax çağrısı  yapmasını istiyorsanız bileşen tanımında ilgili olay nitelğine “ajaxevent” değerlerinden birini verirsiniz.

Örnek bir bileşen ve olay tanımlaması

<faces>
<@import prefix="face" taglib="phpf.ui.button" />
<face:button name="button1" text="Tıkla" onclick="actionevent"/>
</faces>

Yukarıdaki satırlar ile bir button sınıfından  button1 adında yeni bir örneğini oluşturduk. button1 nesnesine controller içinden erişebiliriz

yukarıdaki view ımız için örnek controller

import("phpf.controllers.facescontroller");
import("phpf.events.actionevent");
import("phpf.listeners.actionlistener");
class Sample extends FacesController implements ActionListener
{
function Sample()
{
parent::FacesController();
$this->addActionListener($this);
$this->render("view.phpf");
}

public function actionPerformed(ActionEvent $evt)
{
$this->button1->setText("Bana tıkladın");
}
}

Yukarıdaki satırları özetlemek gerekirse

class Sample extends FacesController implements ActionListener

ActionListener dinleyicisi uygulanıyor.

$this->addActionListener($this);

dinleyici nesne kayıtediliyor.

$this->render(“view.phpf”);

view dosyamız render ediliyor.

İstemci tarayıcı tarafında oluşturduğumuz buttona tıklandığında ActionEvent olayı meydana geliyor ve actionPerformed metodu çalıştırılıyor.

public function actionPerformed(ActionEvent $evt){

$this->button1->setText(“Bana tıkladın”);

button nesnesinin text niteliği bana  tıkladın olarak değiştiriliyor.

}

işte actionevent ile çevrim içi bir örnek
Aşağıdaki butona tıklayın

Kaynak kodları phpfaces indirdiğnizde applications/demo dizininde görebilirsiniz

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)

Bir Cevap Yazın

E-Posta adresiniz yayınlanmayacaktır.


*

Bu HTML etiket ve tanımlayıcılarını kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>