Jun
28
2010

PHP’nin Gizli Hazineleri – phar

Bence geleceÄŸi en parlak ve aynı zamanda çokca yararlı olabilecek bir PHP kütüphanesi. Phar eklentisinin temel amacı , yapmış olduÄŸunuz uygulamayı, sıkıştırılmış bir dosyada toplayarak (phar – PHpARschive), projenizin kolayca dağıtılmasını ve kurulmasını saÄŸlamak.

Hepimizin başında olan birşeydir bu, kendi oluşturduğumuz veya başka biri tarafından oluşturulmuş, class veya fonksiyonlardan oluşan php dosyalarını uygulamamız içerisine yükleriz. Bunu yaparken de en çok sıkıntısını çektiğimiz şey yüklemeye çalıştığımız dosyanın yolu olur genellikle.

Kendimize has dosya yükleme yöntemleri geliştirmiş olabiliriz, ama bir de şöyle düşünün : bütün dosyalarımızı tek bir çatı altında toplayabilseydik, hatta az yer kaplamasını sağlayabilseydik ve bunlara kolayca ulaşmanın bir yolu olsaydı.

İşte bütün bunları yapabilme olanağımız var. Phar eklentisi sayesinde bütün projemizi phar dosyası olarak , birden fazla sıkıştırma formatını destekleyen biçimde (tar,zip,gzip, bz) tek bir dosya olarak saklayabiliriz.

Phar eklentisi ile projemiz için ihtiacımız olan dosyaların hepsini bir phar arşiv dosyası olarak saklayabiliyoruz :

1
2
$phar=new Phar('test.phar');
$phar->buildFromDirectory('/var/www/test');

Yukarıdaki iki satır kod bloÄŸu ile yapmaya çalıştığımız ÅŸey “/varr/www/test” klasörü içerisindeki dosyaları “test.phar” dosyasına atmak. Böylece tek bir arÅŸiv dosyası içerisinden ihtiyacımız olan tüm dosyalara eriÅŸebiliriz :
( Örneğin /var/www/test klasörü içerisinde class dizini ve bu dizin içerisinde phar.php dosyamız olsun )

1
include 'phar://test.phar/class/phar.php';

Bu kod satırı ile de test.phar arÅŸiv dosyası içerisine attığımız ,class dizini içerisindeki “phar.php” dosyasının yüklenmesini saÄŸlıyoruz. Bunu yapan ise “phar://” akım sarmalayıcısı (stream wrapper) dır. Bu akım sarmalayıcısı sayesinde arÅŸiv dosyasını harddiske açmadan , içerisindeki dosyaya eriÅŸebilmemizi saÄŸlamakta.

Phar ile yapabileceklerimiz sadece bunlar değil tabiki. Daha fazla ayrıntı için phpnin dökümantasyonuna göz atabilirsiniz.

Yaziyi gonderen Ersin in: Deneysel, Php Web Programlama | Etiketler: ,

1 Yorum »

RSS feed for comments on this post. TrackBack URL


Yorum yaz

Powered by WordPress | conserio | xoppla | TheBuckmaker