PEAR nedir?

İlk önce PEAR nedir? sorusundan başlayalım. PEAR ingilizce PHP Extension and Application Repository nin kısaltılmasıdır. Yani türkçe PHP eklenti ve uygulanma deposu (kaynağı) diyebiliriz. Biraz daha açmak gerekirse PHP kullanıcıları için yazılmış hazır fonksiyonlar ve sınıflar kütüphanesi de diyebiliriz. PEAR 1999 yılında Tig S. Bakken tarafından başlatılmıştır ve birçok serbest yazılım gönüllüsünün desteği ile gelişerek bugüne kadar gelmiştir. PEAR 2003 yılında PHP Community tarafından stable olarak kabul edilmiştir
www.dijitalders.comPEAR'ın genel amaçları şöyle listelenebilir.

PHP ile yazılım geliştirenlere geniş bir kütüphane oluşturmak : PEAR şuan 30 in üstünde farklı paketi ve bunların içindeki onlarca sınıfıyla PHP ile yazılım geliştirenlere çok geniş bir kaynak oluşturmaktadır. (pear.php.net)

Yazılımların dağıtılmasında , paylaşılmasında ve teknik desteğinde yardımcı bir sistem oluşturmak : PEAR kullanılarak yapılan yazılımların ortak bir yapı sahip olması sebebiyle paylaşımı , dağıtılması ve sonradan düzeltilmesi kolaydır. Ayrıca oluşturan kod veritabanına intenetten ulaşılması sayesinde PEAR paketlerine heryerden ulaşılması sağlanarak kod dağıtımı da kolaylaştırılmıştır.

Yazılımların platformlardan bağımsız ve yeni gelişen platformlara uyumlu olmasını sağlamak : PEAR bütün platformlardan bağımsız olarak geliştirildiği için PEAR kullanılarak yapılan yazılımlar bütün sistemlerde çalışırlar.

PHP kodu yazanlara standart bir kod stili oluşturmak : PEAR geliştirlirken belli yazım kurallarına sadık kalınmıştır. Bu yazım kuralları oluşturulurken bütün PHP geliştiricilerine örnek olması düşünülmüştür.

PHP ve serbest yazılımın gelişiminde yardımcı olmak : Oluştulucak sitede ve forumlarda tecrübeler ve birikimler paylaşılarak PHP ve serbest yazılımın gelişiminde faydalı olmak.


Yukarıda sayılan nedenlere eklemeler yapılabilir. Şimdilik bunları yeterli görüp bir değerlendirme yapalım. PEAR kullanmadan bu amaçları ulaşmak imkansız değildir. Fakat büyük bir emek gerektireceği ve vakit alacağı süphesizdir. Ayrıca dünyanın dört bir tarafından katılan geliştiricilerin birlikteliği ve seçiciliği ve PEAR standartları düşünülürse PEAR kullanmanın gerekli olduğu sonucu bile çıkartılabilir ( :-) ).

PEAR kullanmanın güzel birşey olduğunu kabul ettiğimizi düşünerek PEAR kurulumundan bahsedelim. PEAR genel yapısı PHP 4 ten itibaren PHP ile birlikte kurulu olarak gelmektedir. Eğer daha eski bir sürüm kullanıyorsanız yeni sürümlere geçmenizi tavsiye ederim. Sisteminizin PEAR genel yapısına sahip olduğunu yani yeni bir sürüm kullandığını varsayarak paket yöneticisinden bahsedelim. PEAR paket yöneticisi sisteminize PEAR paketlerinin kurulumu , yönetimi , sürüm takibi ve paketlerin kaldırılması gibi işlemleri yapmanıza yardımcı olur. Eğer PHP sürümününüz 4.3.0 dan yeni ise paket yönetici sisteminizde kuruludur. Paket yöneticisini kurmak için

Eğer Linux/Unix/BSD kullanıyorsanız : lynx -source http://go-pear.org/ | php komutunu çalıştırın. (Bazı dağıtımlar lynx yerine links kullanırlar. Böyle bir durumda $ links -source http://go-pear.org/ | php komutunu çalıştırın.). Bu komut sisteminize paket yöneticisini kuracaktır. Artık sisteminizde pear komutu çalışmaktadır. Herhangi bir terminalde pear yazıp sonucu görebilirsiniz.

Eğer Windows kullanıyorsanız : php dizini altindaki go-pear.bat dosyasini çalıştırarak paket yöneticisini sisteminize kurabilirsiniz. ( Start > Control Panel > System > Environment ) yolunu takip ederek kurulum yolunu ekleyerek kurulumunuzu sonlandırın. Daha sonra command prompt'ta pear komutunu yazıp sonucu görebilirsiniz.

Paket yöneticisini kurduktan sonra istediğimiz pear paketlerini paket yöneticisini kullanarak sistemimize yükleyebilirsiniz. Linux veya windows ta pear komutunu kullanarak paketlerle ilgili yükleme, silme ve güncelleme işlemlerini yapabilirsiniz. Örneğin pear list komutunu çalıştırarak sisteminizde şuan kurulu olan paketlerin listesini görebilirsiniz. pear install <paket_adi> ile ilgili paketi sisteminize yükleyebilirsiniz. PEAR paket yöneticisi bu komutu altındığında sizin için internet bağlantınızı kullanarak paketi indirip sisteminize kurar. Bunun yanında eğer paketi siz kendiniz download ettiyseniz ( ki paket .tgz formatındadır ) pear install <paket_adi>.tgz kullanarak paketi yükleyebilirsiniz. Diğer komutları komutsatırında pear yazdığınızda listelenir.

PEAR kurulumunu bitirdiğimizi düşünerek şimdi birkaç PEAR paketi hakkında konuşalım. İlk paketimiz veritabanı paketi :

Veritabanı Paketi : Beş ana sınıftan oluşur. DB , DB_Common , DB_Result , DB_Error ve DB_Warning . Bu paketin kullanımını için bir örnek :

/**********************************************************/
<?php
require_once 'DB.php';

$user = 'kul';
$pass = 'sifre';
$host = 'localhost';
$db_name = 'deneme';
$db_type = 'mysql';

$dsn = "$db_type://$user:$pass@$host/$db_name";
//(Data Source Name) DB sınıfının veritabanı bağlantısı için kullandığı string
$db = DB::connect($dsn);
// Sonuç başarılı ise bir DB nesnesi döner
// Sonuç başarısız ise DB_Error
if (DB::isError($db)) { // eğer bağlantı hatası varsa
die ($db->getMessage());

$sql = "select id from tablo1";
$res = $db->query($sql);
if (DB::isError($res)) { // eğer sorguda bir hata varsa
die ($res->getMessage());
}
while ($row = $res->fetchRow()) { //
echo $row[0];
}
// bağlantıyı kapat
$db->disconnect();
?>
/**********************************************************/

Yukaridaki kod örneği localhostta çalışan MYSQL sunucusuna bağlanıp deneme veritabanındaki tablo1 tablosundan bütün id'leri çekip ekrana yazdırır. Şimdi burada geçen bazı fonksiyonları ve değişkenleri tanıtalım.

$dsn : (Data Source Name) DB sınıfının veritabanı bağlantısı için kullandığı string. Burada dikkat edilmesi gereken bu string oluşturulurken kullanılan $db_type değişkenidir. Bu değişkeni değiştirerek aynı kodun desteklenen diğer veritabanlarını da kullanmasını sağlarız. Tabi aynı veritanı ve tablolarının olması şartıyla :-) . Yani $db_type=mssql yaparsak MSSQL sunucusuna bağlanırız.

Connect() : DB sınıfının bir metodudur. Veritabanı bağlantısını kurar. Bağlantı kurulursa DB nesnesi döndürür kurulmasza DB_Error nesnesi dödürür.

IsError($db) : DB sınıfının bir metodudur.Altığı parametrenin bir DB_Error objesi olup olmadığını kontrol eder.




Query($sql) : DB sınıfının bir metodudur. $sql i çalıştırır ve eğer geçerli bir sorgu ise sonuç olarak DB_Result nesnesi döndürür , yanlış ise DB_Error nesnesi döndürür.

fetchRow() : DB_Result sınıfının bir metodudur. Sorgu sonucunu satır satır çekmenizi sağlar.

Disconnect() : DB sınıfının bir metodudur. Veritabanına yapılan bağlantıyı kapatmaya yarar.

Veritabanı paketinde kullnıcıya birçok alternatif sunan çok sayıda fonksiyon vardır. Bunların listesine ve ayrıntılarına pear.php.net/package.database.html sayfasından ulaşabilirsiniz. veritabanı paketini kullanmak yazılan kodun veritabanından bağımsız olmasını sağlar. Bunun yanında sunduğu hata sınıfıyla veritabanı işlemleri sırasında oluşan hataları daha kolay anlamanızı sağlar.

HTML Paketinin HTML_Template_IT sınıfı : HTML paketi genel olarak HTML kodları ile ilgili sınıfları içermektedir. İçerdiği sınıflar form ve menu oluşturma, html kalıpları kullanma gibi işlemler için size bir sürü kolaylık sunar. Burada örnek olarak HTML_Template_IT sınıfı ayrıntılandırılacaktır. HTML_Template_IT sınıfı sayfanızı html kalıpları kullanarak oluşturmanızı sağlar. Herkezin bildiği gibi bazı projelerde yazılımcılar ve tasarımcılar beraber çalışmak zorunda kalırlar. Çoğu zaman tasarımcılar kod yazmaktan bihaberdirler yazılımcılar ise tasarımcıların dilinden anlamazlar. Bu problemi çözmek için hep html kalıpları kullanırız. Bunun için HTML paketinde HTML_Template_IT, HTML_Template_Sigma, HTML_Template_Flexy gibi sınıflar kullanılır. Bunların içinde HTML_Template_IT kullanımı en basit olanıdır.

HTML kalıp kullanımı şöyle özetlenebilir. HTML ile oluşturulan küçük kalıplar PHP kodu ile işlenip çoğaltılıp sayfa oluşturulur. Tasarımcı PHP kodu görmeden kalar üzerinde tasarım yaparak sayfanın tasarımı değiştirebilir. Şimdi HTML_Template_IT kullanarak bu işlemlerin yapılışına bakalım.

Örnekte bir veritabanındaki bir tablodaki kullanıcıların adının soyadının listesini oluşturalım. Liste için html kalıbımız söyle olsun.
liste.klp.htm

Not : html taglarındaki < yerine [ ve > yerine ] kullanılmıştır
/**********************************************************/


[!-- BEGIN liste --]
[table] >
[!-- BEGIN satir --]
[tr][td]{AD}[/td][td]{SOYAD}[/td][/tr]
[!-- END satir --]
[/table]
[!-- END satir --]

/**********************************************************/ <
[!-- BEGIN liste --] bloğu başlatır
{AD} değişken tanımlar
[!-- END satir --] bloğu bitirir
Listeyi oluşturan php dosyası da
liste.php<
/**********************************************************/ <
<?php
require_once "HTML/Template/IT.php";
$liste = .. // veritabanından butun listeyi çektiğimiz array tabiki PEAR DB
// sınıfını kullanarak :-)
$tpl = new HTML_Template_IT("/kalıp/dosyalarının/olduğu/dizin/");
$tpl->loadTemplatefile("liste.klp.htm", true, true); // kalıp yüklendi
$tpl->setCurrentBlock("liste") ;
for($i=0;$i<count($liste);$i++) {
// AD ve SOYAD a değerleri veriyoruz
$tpl->setCurrentBlock("satir") ;
$tpl->setVariable("AD", $liste[$i]["ad"]) ;
$tpl->setVariable("SOYAD", $liste[$i]["soyad"]) ;
$tpl->parseCurrentBlock("satir") ;
}
$tpl->parseCurrentBlock("liste") ;<
}
// sonucu yazdiriyoruz
$tpl->show();
?>

/**********************************************************/

Veritabındaki tablosunun şöyle olduğunu düşünürsek
Ad Soyad

Umut IŞIK

Ali Gül

Bill Gates

Cüneyt Arkın


Sonuç şöyle olacaktır.
/**********************************************************/
[table]
[tr][td]Umut[/td][td]IŞIK[/td][/tr]
[tr][td]Ali[/td][td]Gül[/td][/tr]
[tr][td]Bill[/td][td]Gates[/td][/tr]
[tr][td]{AD}[/td][td]Arkın[/td][/tr]
[/table]
/**********************************************************/

Şimdi kullandığımız fonksiyonları açıklayalım.

loadTemplatefile("liste.klp.htm", true, true); Üç parametresi vardır. Birincisi kullanılacak kalıp dosyasının adıdır. Bu dosyayı hangi klasörde arayacağını $tpl = new HTML_Template_IT("/kalıp/dosyalarının/olduğu/dizin/") satırında verdik. İkinci parametrede true olarak verildiginde değeri yazılmayan değişkenler kalıptan silinir. Üçüncü true olursa kullanılmayan bloklar silinir.

setCurrentBlock("satir") ; ismini aldığı bloğu kullanmanızı sağlar. Bu bloğun içindeki değişkenlere parseCurrentBlock("satir") fonksiyonunu çağırana kadar değer atabilirsiniz.

parseCurrentBlock("satir") ; kullandığınız bloğu bırakmanızı sağlar. Yeni bir blok seçene kadar değişkenlere değer atayamazsınız.

setVariable("AD", $liste[$i]["ad"]) ; AD isimli değişkene içeriğini atar.

show() ; kalıbın içeriğini yazdırır

get() ; kalıbın içeriğini döner.

Kısaca PEAR kullanımı hakkında bilgi vermeye calıştım. Daha ayrıntılı bilgiler ve sorular için forumlarda bu konuyla ilgili bir başlık açabiliriz.

Kaynak www.krcbilisim.com/switch.php
Yorumunuzu Ekleyin


Yükleniyor...
Yükleniyor...