Yeni PHP Faces dan Ufak bir MVC örneği

0

Tarih : 30-06-2010 | Yazan : Hüseyin Bora | Kategori : Framework, PHP, PHP Faces, Yazılım Mimarileri

Controller artık bir sınıf değil zarif bir arayüz.

<?php
use mvc\Controller;
use mvc\View;
class PF2 implements Controller
{
    public function Controller() {
        return new View("view",array("name"=>"bora"));
    }
}
?>

Kodlardan da anlaşılacağı üzere PF2 PHP5.3 ve üzerine yönelik bir çalışma.

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 2 deki yenilikler

0

Tarih : 18-06-2010 | Yazan : Hüseyin Bora | Kategori : Haberler, PHP, PHP Faces

php faces 2 yakın bir zamanda yayınlanacak php faces deki gelişmeler şöyle.

Gelişmiş bind yöntemi : bu yöntem sayesinde formdan gelen bilgiyle ilişkili varlık sınıfına otomatik atama yapılması.

Doğrulama bileşenleri : statik doğrulama sınıflarına ek olarak artık bileşen içerisinde de doğrulamalar yapılabilecek.

Requried: Bileşenler için yeni bir nitelik  en çok kullanılan doğrulamalardan biri de bilginin boş gelmemesi gerekliğidir bu doğrulama çok sık kullanıldığı için bileşen sınıfına nitelik olarak eklenmiştir.

ActionMap: url satırından gelen denetleyici isminin bir takma isim ile eşleştirilmesidir.

Örneğin:

ApplicationContext::$ActionMap["user"]="usercontroller";

Bu sayde url satıra user yazıldığında usercontroller işletilecektir.

Dinamik nesne oluşturma: faces view içerisine yeni eklenen dynamik direktifi ile  <@dynamic> <@/dynamic>

direktif etiketleri arasındaki etiketler dinamik işlemine tabi tutulurlar.

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 Programlanabilir Şablonlar

0

Tarih : 17-11-2009 | Yazan : Hüseyin Bora | Kategori : FDL, PHP Faces

Programlanabilir şablonlar @htmlpattern lerdir yapısal geliştirme çalışmaları sürmektedir.
Örnek kullanıldığı her yerde1 ile 12 arasındaki sayıları gösteren pattern
Sablon.ptrn dosyası

<faces>
<@htmlpattern name="yaz" useprefix="my">
<c:for var="$i" begin="1" to="12" step="1">
<div style="color:red;font-weight:bold;" > #{$i}  </div>
</c:for>
</@htmlpattern>
</faces>

View dosyası

<faces>
<@face file="sablon.ptrn"/>
<my:yaz/>
</faces>

Örneğin kullanıcı girişi için kullandığımız bir formumuz olsun formumuzu kullmak istediğimiz dosyaya include ederiz ve ismi ile etiketleriz

Sablon.ptrn dosyası

<faces>
<@import taglib="phpf.ui.*" prefix="f"/>
<@import taglib="phpf.core" prefix="c" type="static"/>
<@htmlpattern name="login" useprefix="my">
<f:form id="loginform">
<table>
    <tr>
        <td>User Name</td>
        <td><f:textbox id="name"/></td>
    </tr>
      <tr>
        <td>Password</td>
        <td><f:textbox id="pass"/></td>
    </tr>
    </tr>
      <tr>
        <td>Password</td>
        <td><f:button id="send" forname="loginform" text="Login" onclick="actionevent"/></td>
    </tr>
</table>
</f:form>
</@htmlpattern>
</faces>

View dosyası

<faces>
<@face file="sablon.ptrn"/>
<my:login/>
</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)

PHP Faces da Ön ek ile kullanılabilir Şablonlar (Patternler)

0

Tarih : 17-11-2009 | Yazan : Hüseyin Bora | Kategori : FDL, PHP Faces

Daha öncede bahsettiğim gibi (Şablon)patternler view dosyalarında tanımlanan bir çeşit veri yapılarıdır. Pattern kullanımındaki amaç kod yazımını minimuma indirmektir.

Örneğin veri girişi için kullandığımız formlarda çeşitli alanlar vardır örneğin textbox ve çoğuna validation (doğrulama) işlemleri uygularız her etiket için benzer niteliklere değerler aktarırız ve bu böyle uzar gider.

Bu arada PHP faces a pattrenlere yeni eklenen bir özellikte useprefix niteliğidir bu sayede oluşturduğumuz pattern useprefix niteliğine verdiğimiz ön ek ile ilişkilendirilir.

UI Patternler OOP deki sınıflara benzerler her bir nitelik override edilerek(geçersiz kılınabilir)
Örneğin bir formumuz olsun ve bu formdan sunucumuza ad,soyad,dogumyeri bilgileri gönderilecek olsun ve hiçbir bilginin boş bırakılmasını istemiyoruz.

Patterns.ptrn dosyası

<faces>
<@import taglib="phpf.ui.*" prefix="f"/>
<@pattern name="text"  prefix="f" extends="textbox" useprefix="phpf"
     validator="validator"
     rule="required"
     messagefor="label"
     message="Lütfen bu alanı boş bırakmayın"/>
</faces>

Patterns.ptrn dosyamızı include ettiğimiz her dosyada phpf ön eki ile patternimize erişebiliriz

View dosyamız

<html>
    <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<faces>
    <@face file="patterns.ptrn"/>
    <f:form id="form">
        ad <phpf:text id="ad"/>
        </br>
        soyad<phpf:text id="soyad"/>
        </br>
        sehir<phpf:text id="sehir"/>
        <f:message id="label"/>
        <f:button id="btn" text="Gonder" onclick="actionevent" forname="form"/>
    </f:form>
</faces>
</body>
</html>
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)

SQL ve FQL Etiketleri

0

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

SQL etiketi query niteliğine paremetre olarak verilen SQL sorgusu işletir ve id niteliğine verilen isim ile bir sonuc kümesi getirir.

Örnek

<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<faces>
<@import prefix="c" taglib="phpf.core" type="static"/>
<@import prefix="sql" taglib="phpf.db.sql"/>
<sql:sql id="results" query="select * from urun"/>
<table border="1" align="center">
<thead>
<th>Urun NO</th>
<th>Urun Adı</th>
<th>Fiyat</th>
<th>Resim</th>
</thead>
<c:foreach var="#{$results}" item="$urun">
<tr>
<td>#{$urun.no}</td>
<td>#{$urun.ad}</td>
<td>#{$urun.fiyat}</td>
<td><img src="#{$urun.resim}"/></td>
</tr>
</c:foreach>
</table>
</faces>
</body>
</html>

FQL Etiketi
FQL etiketi query niteliğine paremetre olarak verilen FQL sorgusu işletir ve id niteliğine verilen isim ile bir sonuc kümesi getirir.

Örnek

<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<faces>
<@import prefix="f" taglib="phpf.ui.*"/>
<@import prefix="fql" taglib="phpf.db.fql"/>
<fql:fql id="results" query="select u from urun u"/>
<f:grid name="grid" height="30%" width="75%" bind="$results" border="1">
<@item   key="no"  title="no" />
<@item   key="ad" title="Urun adı"/>
<@item   key="fiyat" title="fiyat"/>
</f:grid>
</faces>
</body>
</html>

SQL ve FQL etiketlerine @item etiketinin value niteliği ile parametre aktarılabilir.

Örneğin aşağıdaki gibibir ifademiz olsun

SELECT u FROM urun u WHERE u.fiyat >? AND u.fiyat <?

Örnek fiyat aralığı

<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<faces>
<@import prefix="f" taglib="phpf.ui.*"/>
<@import prefix="fql" taglib="phpf.db.fql"/>
<fql:fql id="results" query="select u from urun u WHERE u.fiyat >? AND u.fiyat <?">
<@item value ="100"/>
<@item value= "500"/>
</sql:fql>
<f:grid name="grid" height="30%" width="75%" bind="$results" border="1">
<@item   key="no"  title="no" />
<@item   key="ad" title="Urun adı"/>
<@item   key="fiyat" title="fiyat"/>
</f:grid>
</faces>
</body>
</html>
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)