Php Dersleri : PEAR nedir?

Transkript

Php Dersleri : PEAR nedir?
PEAR nedir?
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
PEAR'ı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.
dersmax.net
PEAR nedir?
1
PEAR nedir?
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();
dersmax.net
PEAR nedir?
2
PEAR nedir?
?>
/**********************************************************/
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/");
dersmax.net
PEAR nedir?
3
PEAR nedir?
$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
dersmax.net
PEAR nedir?
4

Benzer belgeler