Jun
28
2010
1

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: ,

Powered by WordPress | conserio | xoppla | TheBuckmaker