Giris

$mesaj

Üye Adi Sifre
| Üye ol

Online Sayisi : 34 Toplam Üye Sayisi : 1586 Son Üye : okan109

Tarih 2008:Nov:Sat

Kategoriler
  • ACPI [0]

  • Action Script [5]

  • Ajax [7]

  • ASP [17]

  • ASP.NET [23]

  • Assembly [3]

  • Bash [1]

  • C [6]

  • C# [9]

  • C++ [12]

  • Cobol [1]

  • Css [20]

  • Delphi [31]

  • Flash [5]

  • Html [9]

  • JAVA [36]

  • Java Script [17]

  • JSF [2]

  • Jsp [6]

  • Lua [1]

  • Matlab [2]

  • MySQL [31]

  • Oracle [1]

  • Pascal [31]

  • Pear [3]

  • Perl [22]

  • Photoshop [2]

  • PHP [169]

  • Python [9]

  • REXX [6]

  • Ruby [4]

  • SEO [5]

  • Visual Basic [37]

  • PHP / PHP ve PEAR Kullanımı
    PHP ve PEAR Kullanımı
    Yazar: Gazikentli
    Eklenme: 03/08/08    Okunma: 445    
     
     

    Bu yazının amacı PHP ile yazılım geliştirmenin bir üst basamağı olarak tanımlayabileceğimiz PEAR bileşenleri hakkında açıklayıcı belge oluşturmaktır. Bu yazıyı yazmaya beni iten sebep PEAR kullanarak yapmaya çalıştığım birkaç projede PEAR'ı anlatmakta zorlanmam ve bu konuda yeterli bilgi sahibi olunmadığı kanısına varmamdır. PEAR

    İ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.

    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 :


     Kod Çizelgesi     Kod Dili: php
    /**********************************************************/
    <?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


     Kod Çizelgesi     Kod Dili: php
    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 --]




     Kod Çizelgesi     Kod Dili: php
    /**********************************************************/ <
    [!-- 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"truetrue); // 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.

     Kod Çizelgesi     Kod Dili: php
    /**********************************************************/ 
    [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 : Türkiye Php Gurubu


    Bu Kategoriye Ait Diğer Makaleler
    Başlık Tarih Hit
    PHP File Exists 2008-10-12 15:25:13 300
    PHP ile Bot Yapımı ve Sitelerden veri çekmek 2008-10-10 20:21:43 673
    Php ile Online sayac yapalim 2008-10-7 23:19:13 440
    Resim Yüklerken Küçük Resim Oluşturma Kodu 15/09/08 434
    php ile dosya upload ve veritabanına dosya ismini yazdırmak 15/09/08 383
    PHP ile Resim Üzderine Yazı Ekleme ve Kaydetme (anlatım) 13/09/08 360
    PHP’ye Namespace desteği 12/09/08 104
    PHP Podcastleri 12/09/08 172
    PHP 5.2 ile Dosya Yüklemelerini Takip Özelliği 12/09/08 198
    PHP & Json ve Twitter’dan Veri Çekmek 12/09/08 109
    Linke Gelince Değişen Resim (Javascript Rollover) 11/09/08 335
    Php ile Txt ziyaretçi sayaci yapalim 11/09/08 328
    HTML Dosyalarının İçine Php Kodlarını Ekleme 05/09/08 323
    PHP ile Resim Üzerine Yazı Ekleme ve Kaydetme 13/08/08 772
    Uzaktaki MySql a bağlanma? 08/08/08 508
    PHP ve PEAR Kullanımı 03/08/08 446
    Içeriklerimizi Koruyalim? 01/08/08 513
    PHP ile vBulletin Tarzı Sayfalama yapma 31/07/08 645
    php ile profesyonel sayfalama yapma 31/07/08 830
    Tarih Dönüşüm Fonksiyonu 25/07/08 409
    Dosya Kontrolleri 25/07/08 401
    PHP Zip Dosya Sıkıştırma Sınıfı (Class) 16/07/08 424
    İki defa aynı nickle üye olunmasını engellemek 09/07/08 587
    kelimeleri bölmek 03/07/08 431
    preg_match kullanımı 01/07/08 608

    Misafir - 2008-08-05 14:52:56
    tşk


    electro71 - 2008-08-10 01:00:02
    tşk


    Misafir - 2008-08-07 19:42:32
    tşkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk

    Isminiz:
    E-mail adresiniz:
    Güvenlik Kodu:
      
     

     

    Görsel Dersler
  • Asp [59]

  • Asp.Net [5]

  • Csharp [33]

  • Delphi [85]

  • Delphi 7 [0]

  • Dreamweaver [45]

  • DW ile ASP Uygulamaları [28]

  • English Lessons [52]

  • Fireworks [4]

  • Flash [16]

  • HTML [20]

  • Java Script [0]

  • MS Access [19]

  • MS FrontPage [11]

  • Photoshop [32]

  • PHP [99]

  • Python [3]

  • SolidWorks [25]

  • Think Design [26]

  • VB Script [32]

  • Vb.Net [37]

  • Visual Basic [4]

  • iletisim    Reklam Verin Kadromuz Tavsiye Edin Site Haritasi Etiketler

    Sesli Chat beceri oyunlari

    Sitenizi Ekleyin.

    Sitemize Hosgeldiniz Sitemiz Genç Nesil Programlama Kaynak Sitesi Olup Siz Degerli Misafirlerimize Yararlanmaniz Amaci Ile Kurulmustur.



     

    Her hakki saklidir 2008 Tema : Pd - Ramazan
    Ferdi KÜÇÜK Web Stats webmaster forumu