Renderer Directives İşleyici Direktifleri

0

Tarih : 08-09-2009 | Yazan : Hüseyin Bora | Kategori : FDL, PHP, PHP Faces

Önceki yazılarda da belirtiğim gibi FDL içerisinde renderer direktiflerinin tamamı @ işareti ile başlarlar. bunlar

  • @definition
  • @import
  • @pattern
  • @ui
  • @htmlpattern
  • @html
  • @set
  • @get
  • @item
  • @include
  • @face

@definiton

bu direktif  3 niteliği vardır

  • viewstate : true ya da false değerlerinden birini alır,görünüm içerisinde bileşen verileri için bir depolama alanı oluşturur bu sayde sayfa postback olduğunda veriler kalıcı olur. ASP.Net deki viewstate e benzer bir yapısı vardır. dikkatli kullanılması gerekelidir. çok büyük veriler işlem güçünü yavaşlatabilir. varsayılan değeri false dir
  • stroge : viewstate  deki verinin nerede tutulacağıdır viewstate ile birlikte kullanılır xhtml ya da session değerlerinden birini alır. bu niteliğe  xhtml  değeri verilse depo alanı istemci tarafındaki  tarayıcıdır. session  olması durumunda sunucu tarafındaki oturum dosyalarıdır.
  • eventvalidation : istemci tarfından gelen eventlara bir zaman aşımı ve bir anahtar ile doğrulunu kontrol eder. varsayılan değeri false dir

Örnek

<faces>
<@definition viewstate="true" stroge="xhtml"/>
<@definition eventvalidation="true"/>
</faces>

@import

3 niteliği vardır.

  • prefix : etiketler ile kullanılacak isim uzayı
  • taglib: import edilecek olan dizin ve ya php dosyası
  • type: bileşen kütüphanesinin tipi

bu direktif renderer a import methodunu işletmesini, prefix ile ilişkili isim ile ilişkilendirmesini söyler.

type niteliği sadece static sınıflarda kullanılır ve PHP Faces da şuan tek static kütüphane core.php dir

Örnek

<faces>
<@import prefix="c" taglib="phpf.core" type="static"/>
<c:out value="Merhaba Faces"/>
</faces>

Başka bir örnek

<faces>
<@import prefix="c" taglib="phpf.core" type="static"/>
<@import prefix="f" taglib="phpf.ui.*"/>
<c:if test="1<2">
<c:out value =" bir ikiden kucuktur"/>
</c:if>
<f:button name="button" text="tıkla"/>
</faces>

Başka örnek  bir daha

<faces>
<@import prefix="core" taglib="phpf.core" type="static"/>
<@import prefix="face" taglib="phpf.ui.*"/>
<@import prefix="widget" taglib="phpf.ui.widget.djbutton"/>
<core:out value =" Hello World"/>
<face:button name="button" text="Click me"/>
<widget:djbutton name="djbutton" text="Widget button"/>
</faces>
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)

Faces Controller

0

Tarih : 08-09-2009 | Yazan : Hüseyin Bora | Kategori : PHP, PHP Faces

Evet her şey hazırsa yani kurulum işlemleri başarı ile sonuçlamışsanız ilk Faces denememizi yapabiliriz

Öncelikle


applications/uygulamaadi/controller/

applications/uygulamaadi/controller/test.php

Dizinine gelin burada test.php gibi bir isimde Controller dosyamızı oluşturalım.

<?php

import("phpf.controllers.facescontroller");
class Test extends FacesController {
function Test(){

parent::FacesControler();
echo "Test kontrolcüsü başlatıldı";
}
}
?>

şimdi tarayıcımızda adres satırına localde çalıştığınızı farz ederek

http://localhost/phpFacesdizini/ugulamaadi/test

yazıyoruz eğer herşey yolunda gitmişse ” Test kontrolcüsü başlatıldı” mesajını alıyoruz.

şimdi

applications/uygulamaadi/views/

Dizinine gelin burada test.phpf gibi bir isimde basit bir view oluşturalım.

faces kodlarımızı <faces> </faces> arasına yazıyoruz FDL anlatırken bunlara derinlemesine giriceğiz.

<faces>
<b>#{$this.mesaj}</b>
</faces>

controller sınıfımızı da aşağıdaki gibi düzenleyelim

<?php

import("phpf.controllers.facescontroller");
class Test extends FacesController {

protected $mesaj="Test kontrolcüsü başlatıldı";
function Test(){

parent::FacesControler();
$this->render("test.phpf");
}
}
?>

yeniden

http://localhost/phpFacesdizini/ugulamaadi/test

yazıyoruz eğer herşey yolunda gitmişse ” Test kontrolcüsü başlatıldı” mesajını alıyoruz.

Faces Controllerın Üye Metoları

  • render ( Bu metor renderer a bir faces dosyasını yorumlamasını söyler)
  • append (view a bir parametre gönderir)
  • load (parametre olarak verilen string ifadenden sınıf adından yeni bir nesne çevirir)
  • interrupt (render işlemini keser)
  • addListener($name,FacesListener $listener)
  • addActionListener ( bir listener arayuzunu(interface) ActionEvent olayı için kayıteder parametresi ActionListener dır)
  • addMouseListener (bir listener arayuzunu mouse events olayları içinkayıt eder Parametresi MouseListener)
  • addValueChangedListener(bir listener arayuzunu ValueChangedEvent olayı için kayıt eder. Parametresi ValueChangedListener)
  • getComponents (contoller ile ilişkili tüm bileşenleri verir)

· AjaxResponse? (render işlemini askıya alır ve istemci tarafına json verisi gönderir)

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)

Faces Views

0

Tarih : 08-09-2009 | Yazan : Hüseyin Bora | Kategori : PHP Faces

PHP Faces in view yapısını ilk başlarda tuaf gelsede buna alışırsınız

Görünüm’ü tamamen diğer kodlardan ayırabilirsiniz Faces View ler XML notasyonuna benzer.

Faces Render ına tabi olacak bölümler <faces> </faces> etiketleri arasına yazılır.<faces> </faces> etiketleri arasında HTML ,CSS,XML PHP vb.. dilleride kullanabilirsiniz.

Faces Etiketleri üç e ayrılır bunlar

  • Renderer direktif etiketleri
  • Static etiketler
  • Bileşen Etiketleri

Renderer direktiflerinin tamamı @ işareti ile başlar

<@import prefix=”f” taglib=”phpf.ui.*”/>

bu direktif renderer a phpf.ui içerisindeki tüm sınıfları dahil etmesini söyler ve f isim uzayı ile ilişkilendirir.

<@import prefix=”c” taglib=”phpf.core” type=”static”/>

bu direktif renderer a phpf.core  sınıfını  dahil etmesini söyler ve c  isim uzayı ile ilişkilendirir. static ibaresi bu sınıftaki metotların static olarak çağrılması gerektiğini bildirir.

Örnek

<faces>
<@import prefix="c" taglib="phpf.core" type="static"/>
<c:out value="Merhaba Faces"/>
</faces>

Başka bir örnek

<faces>
<@import prefix="c" taglib="phpf.core" type="static"/>
<@import prefix="f" taglib="phpf.ui.*"/>
<c:if test="1<2">
<c:out value =" bir ikiden kucuktur"/>
</c:if>
<f:button name="button" text="tıkla"/>
</faces>

Nitelik tanımlamlarında  tek tırnak  ‘ ‘  yada boşluk kullanmayın  çift tırnak ” ” karekterlerini kullanın

örnekler

<c:out value=deneme/> yanlış hata alırsınız
<c:out value='deneme'/> yanlış hata alırsınız
<c:out value="doğru"/>çalışır

Bu yazı tamamsa şimdi direktif tanımlarına bakmanız iyi olur.

Evet her şey hazırsa yani kurulum işelmleri başarı ile sonuclamışsanız ilk Faces denememizi yapabiliriz

Öncelikle

<br class=”spacer_” />

applications/uygulamaadi/controller/

applications/uygulamaadi/controller/test.php

Dizinine gelin  burada test.php gibi bir isimde Controller dosyamızı oluşturalım.

<?php

import("phpf.controllers.facescontroller");
class Test extends FacesController {
function Test(){

parent::FacesControler();
echo "Test kontrolcüsü başlatıldı";
}
}
?>

şimdi  tarayıcımızda adres satırına localde çalıştığınızı farz ederek

http://localhost/phpFacesdizini/ugulamaadi/test

yazıyoruz eğer herşey yolunda gitmişse ” Test kontrolcüsü başlatıldı”  mesajını alıyoruz.

şimdi

applications/uygulamaadi/views/

Dizinine gelin  burada test.phpf gibi bir isimde basit bir view  oluşturalım.

faces kodlarımızı  <strong>&lt;faces&gt; &lt;/faces&gt; </strong>arasına yerleştiriyoriyoruz FDL anlatırken bunlara derinlemesine giriceğiz.

<faces>
<b>#{$this.mesaj}</b>
</faces>

controller sınıfımızı da aşağıdaki gibi düzenleyelim

<?php

import("phpf.controllers.facescontroller");
class Test extends FacesController {

protected $mesaj="Test kontrolcüsü başlatıldı";
function Test(){

parent::FacesControler();
$this->render("test.phpf");
}
}
?>

yeniden

http://localhost/phpFacesdizini/ugulamaadi/test

yazıyoruz eğer herşey yolunda gitmişse ” Test kontrolcüsü başlatıldı”  mesajını alıyoruz.

<strong>Faces Controller</strong><strong>ın Üye Metoları </strong>
<ul>
<li><strong>render</strong> ( Bu metor renderer a bir faces dosyasını yorumlamasını söyler)</li>
<li><strong>append</strong> (view a bir parametre gönderir)</li>
<li><strong>load</strong><strong> </strong>(parametre olarak verilen string ifadenden sınıf adından yeni bir nesne çevirir)</li>
<li><strong>interrupt</strong> (render işlemini keser)</li>
<li><strong>addListener</strong>($name,FacesListener $listener)</li>
<li><strong>addActionListener</strong><strong> </strong>( bir listener arayuzunu(interface)  ActionEvent olayı için kayıteder parametresi ActionListener dır<a href=”http://code.google.com/p/php-faces/w/edit/ActionListener”></a>)</li>
<li><strong>addMouseListener</strong><strong> </strong>(bir listener arayuzunu  mouse events olayları içinkayıt eder  Parametresi MouseListener<a href=”http://code.google.com/p/php-faces/w/edit/MouseListener”></a>)</li>
<li><strong>addValueChangedListener</strong>(bir listener arayuzunu ValueChangedEvent olayı için kayıt eder<a href=”http://code.google.com/p/php-faces/w/edit/ValueChangedEvent”></a>. Parametresi  ValueChangedListener)</li>
<li><strong>getComponents</strong> (contoller ile ilişkili tüm bileşenleri verir)</li>
</ul>
·        <strong>AjaxResponse</strong><strong><a href=”http://code.google.com/p/php-faces/w/edit/AjaxResponse”>?</a></strong> (render işlemini askıya alır ve istemci tarafına  json verisi gönderir)

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)

Faces MVC (Model View Controller)

0

Tarih : 08-09-2009 | Yazan : Hüseyin Bora | Kategori : PHP Faces, Tasarım Kalıpları, Yazılım Mimarileri

Model-view-controller, yazılım mühendisliği’nde kullanılan bir “mimari desen”dir. Kullanıcıya yüklü miktarda verinin sunulduğu karmaşık uygulamalarda veri ve gösterimin soyutlanması esasına dayanır. Böylelikle veriler (model) ve kullanıcı arayüzü (view) birbirini etkilemeden düzenlenebilir. Model-view-controller, bunu controller adı verilen ara bileşenle, veri gösterimi ve kullanıcı etkileşiminden, veri erişimi ve iş mantığını çıkarma suretiyle çözmektedir.


M (Model), İş Mantığını ve data işleme süreçlerini yürütür. C (Controller) tarafından gönderilen emirlere göre hareket eder. Bilgi işleme sürecinden sonra datayı C’ye, diğer modellere veya doğrudan V (View)’ye gönderir.

PHP Faces Model katmanında PDO ve ORM Kullanır


V (View) son kullanıcıya gösterilecek olan datanın sunumu ile ilgilenir. V, bu bilgiyi C veya M’den alır, aynı zamanda son kullanıcıdan gelen talepleri C’ye iletir.


C (Controller)
C ise sistemin ana kısmıdır. Gelen talepleri kontrol eder ve sistemin diğer elemanlarının (M,V) bilgiyi uygun şekilde alıp, göndermelerini sağlar.


PHP Faces içerisinde üç farklı Controller barındırır bunlar

  1. ActionController
  2. FacesController
  3. Facet

ActionController sıradan olay yönelimli olamayan bir yapıdadır

FacesController olay yönelimlidir

Facet FacesController dan türemiş FacesController u basitleştirmiştir.


PHP Faces i diğerler MCV Çatılarından  ayıran özelliği ise Controller ve View arasında bileşenlerin bulunmasıdır

PHP Faces MVC için dizin yapısı şöyledir


AppPath:
/phpfaces : Framework folder

/applications : uygulamalar

app_bir /controllers

/views

/models

app_two  /controllers

/views

/models

.htaccess


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)

PHP Faces Kurulum ve Gereksinimler

0

Tarih : 08-09-2009 | Yazan : Hüseyin Bora | Kategori : PHP, PHP Faces

Gereksinimler:

PHP 5  ve Üzeri

Aphache Rewide Module

Aphache CGI Module

ORM  için  PHP PDO eklentisini aktif hale getirin


Kurulum :

Sıkıştırılmış dosyayı çıkarın

PHPFaces klasörünü sunucunuza taşıyın

Ana dizinde bulunan index.php dosyasını bir editor ile açın ve düzenleyin


Dispatcher::dispatch parametrelerini sisteminize göre ayarlayın.

Dispatcher::dispatch("applications".DS."seninuygulama","SeninKontrolcu","http://yourhost.com/");

Dispatcher ın parametreleri

1- geçerli uygulama dizini

2- uygulamanın başlayacağı controller ismi

3-base url (taban adres) PHP Faces in çalıştığı adrestir

application/config.php dosyasını açın ve kendi sistem özelliklerinize göre düzenleyin.

define(“DEFAULT_APPLICATION”,“myapp”); //birincil uygulama dizini

define(“DB_CONNECTION_STRING”,“mysql:host=localhost;dbname=mydb”);// ORM için bağlantı dizesi


define(“DB_USER”,“username”);
define
(“DB_PASS”,“2w34r5t”);
define
(“BASE_URL”,“http://seninsunucun/”);//bu tanım eğer xxx.phpf gibi uzantılı dosyaları kulanmak isterseniz  gerekli bunun için bazı .htaccess  ayarlamaları yamamız gerekiyor.

PHP faces güzel görünen yol sitili URL biçimini destekler bunun için .htaccess dosyanızda aşağıdaki  satırlar bulunmalı.


RewriteEngine on
RewriteCond $1 !^(index\.php|images|themes|css|js|video_files|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$|index.php$ index.php/$1 [L]

PHPF uzantılı dosyaları kullanabilmek için Aphache üzerinde CGI modulu açık  olmalı ve  htaccess dosyanızda aşağıdakine benzer satırlar bulunmalı.

Options +ExecCGI
AddType application/x-httpd-php .phpf s
AddHandler application/x-httpd-phpf .phpf
Action application/x-httpd-phpf www.seninsunucun.com/system/phpf.php

yukarıda yaptığımız işlemler sayesinde suncumuza .phpf gibi bir istek geldiğinde bu PHP Faces framework bunu algılar .phpf uzantılı dosyalar view(görünüm) dosyalarıdır. PHP Faces böyle bir istek durumunda. phpf ile aynı isimdeki .php controller (kontrolcü) yü harekete geçirir. artık yönetim controller da dır. Her şey tamamsa artık PHP Faces kullanmaya hazırız.

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)