Php-GTK
PHP-GTK ile ekran görüntüsünü (Screenshot) almak
Gonderen: Ersin tarih: Jul.29, 2007, Kategori: Php-GTK
Başlığa bakıp da, “hadi ya, bu nasıl olacak” diyen olmuştur sanırım. Bu tam olarak PHP-GTK işbirliği ile olabilecek birşey değil, en azından bildiğim kadarıyla
Bu fikrin tamamen can sıkıntısı mahsülü olduğunu belirtmeden geçemeyeceğim.
Bu işlemi yapabilmek için şunlara ihtiyacınız var:
- Buradan temin edebileceğiniz, php-gtk2 çalıştırılabilir dosyaları (indirin ve sadece bir klasöre açın hepsi bu kadar, ne ekstra bir ayar ne de başka birşey gerekmiyor)
- .NET Framework hayda bu da nerden çıktı dediğinizi duyar gibiyim,az sabır
anlatacağım - Bu iş için hazırlanmış ve bize yardım edecek dll dosyamız
Daha önce sistem çekmecesine yerleşen uygulamamızdaki örneği kullanacağım burda. Bunu yaparken de, PHP-GTK çalışıtırılabilirlerini indirip bir klasöre açtığınızı, .NET Framework u indirip kurduğunuzu, linkini vermiş olduğum dosyayı indirdikten sonra, .NET Framework içerisinde bulunan “regasm.exe” yardımıyla “Ekran.dll” dosyamızı kayderttiğimizi (regasm /tlb:ekran.tlb ekran.dll komutuyla) farz ediyorum
şimdi başlayalım:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 <?php
/*
* Daha önce verdiğimiz örnekteki tek değişiklik
* Ekran.dll kütüphanesindeki nesneyi oluşturup kurmamızdır
**/
$NETObjem = new COM("Ekran.Ekran");
$pencere = new GtkWindow();
$pencere->set_title("Örnek Pencere başlığım");
$pencere->set_size_request(240, 120);
$pencere->set_position(Gtk::WIN_POS_CENTER_ALWAYS);
$pencere->connect_simple('destroy', array('Gtk','main_quit'));
$pencere->add($vbox = new GtkVBox());
$vbox->pack_start(
new GtkLabel("Sistem çekmecesindeki ikona tıkladınız!"));
$vbox->pack_start(
new GtkLabel("Gizlemek için birkez daha tıklayın."));
// sistem çekmecesine yerleşecek ikonu ayarlıyoruz
// işte yeni versiyondaki yenilik ve büyük kurtarıcı
$statusicon = new GtkStatusIcon();
// Sistem çekmecesinde görünecek ikonumuzu seçiyoruz
<a href=http://gtk.php.net/manual/en/gtk.enum.stockitems.php target=_blank> burdan da </a>görebileceğeniz gibi PHP-GTK2 içerisinde
// onlarca hazır ikon bulunmaktadır
$statusicon->set_from_stock(Gtk::STOCK_HOME);
// sistem çekmecesindeki ikon üzerine gelindiğinde
// görüntülenecek ipucuyu ayarlıyoruz.
$statusicon->set_tooltip(’Pencereyi gormek için sol tıklayın’);
$app_status = 0;
// sistem çekmecesindeki ikona sol tıkladığımızda bir olay
// gerçekleşir (signal) ve bu olay karşılığında çalışmasını
// istediğimiz işlevi atıyoruz (callback)
$statusicon->connect(’activate’, ‘on_activate’);
$pencere->hide_all();
Gtk::main();
function on_activate($statusicon) {
global $pencere, $app_status;
if ($app_status) {
$statusicon->set_tooltip(’Pencereyi görmek için sol tıklayın’);
$pencere->hide_all();
/*
* Penceremizi gizliyoruz ve ekran görüntümüzü
* alıyoruz, hepsi bukadar
**/
$NETObjem->Cek();
$app_status = 0;
} else {
$statusicon->set_tooltip(’Pencereyi görmek için’);
$pencere->show_all();
$app_status = 1;
}
}
?>
Biliyorum, Print+Screen tuşu ile kolayca yapabileceğimiz bu işi böyle eziyete dönüştürmek istemeyenimiz olacaktır. Fakat burda asıl amacım PHP nin yeteneklerini sergileyebilmekti. Umarım anlatabilmeyi başarmışımdır. Ayrıca bu uygulamanın windowsta (şimdilik) çalıştığını belirtsem fena olmaz sanırım.
PHP-GTK
Gonderen: Ersin tarih: Jul.27, 2007, Kategori: Php-GTK
Bildiğiniz gibi, PHP ile web üzerinde çokca güzel işler çıkarılabilmekte. PHP geliştiricileri
PHP nin bu maharetlerini masaüstünde de sergilemek için, PHP-GTK denilen, PHP nin, masaüstünde , kendi kendine çalışabilen (bir web sunucusuna ihtiyaç duymadan) uygulamalar geliştirmemize olanak veren versiyonunu geliştirme ihtiyacı duymuşlar.
işin kavramsal yönünü çok fazla açmaya gerek varmı bilmiyorum ama kısaca değinip geçeceğim burada. Evet PHP ne biliyoruz, peki GTK?
GTK+ ise kısaca, palatformdan bağımsız Grafiksel Kullanıcı Arayüzleri oluşturmamıza
olanak sağlayan araç kitleridir. GNU projesinin bir parçası olan, LGPL lisansı ile dağıtılan bu araçlarla, küçük çaplı projelerden büyük çaplı projelere kadar geniş yelpazede uygulama geliştirilmesine olanak verir.
PHP geliştiricileride GTK+ ın bu palatformdan bağımsız ve açık kaynak kodlu yapısından dolayı Grafiksel Kullanıcı Arayüzü oluşturmaya olanak veren PHP kütüphanelerini GTK+ üzerine inşa etmişler.
Şimdi kafalar çok karışmadan aklınıza gelebilecek bir soruya cevap vereyim. “Ne yapıcam ki ya ben bununla?”
Mis gibi Java var ya da baba gibi C++ olmadı C# ne gereği varki şimdi kasmanın dimi ya.
PHP-GTK nin fazla kişi tarafından duyulmadığı için birçok kişiye angarya geleceğini tahmin edebiliyorum. Ama Php bilen biri olarak, masaüstü bir uygulama yazmak için yeni bir dil öğrenmeye gerek kalmadan, Php ile geliştirme fikri ilk duyduğumdan beri bana çok güzel gelmekte ve ayrıca Php nin esnekliği ve kod yazımındaki rahatlığınıda göz önüne alırsak, Php-Gtk nin kullanıldıkça hak ettiği yeri alacağını düşünüyorum. Bunun haricinde platformdan bağımsız oluşu( geliştirin ister windows ta ister *nix te çalıştırın ve hiçbir ekstra işleme gerek kalmadan). İşte Java, işte .NET bunu yapıyor ve tüm amaçları bu, bir kere yaz ve her yerde kullan.
POT ta önceleri PHP-GTK ile ilgili makaleler hazırlarken , PHP-GTK nin 2. versiyonun çıkacağı söylentileri gezinmeye başlandı.
Var olan mevcut sürümün bir masaüstü uygulama geliştirmeye yetmediği farkedilmiş olmalı ki ikinci versiyonu çıkarma kararı aldılar.
2. versiyonu kendini radikal değişikliklerle gösterdiğinde neye uğradığımı şaşırmıştım, neredeyse herşeye baştan başlamak gerekiyordu çünkü. PHP4 ten vazgeçildi PHP5 e geçildi, bazı widgetler (parçaçık) çıkarıldı, yeni birçok özellik eklendi, sitede bulunan tüm dökümantasyon eski sürüme ait olduğu için yeni sürüme ait dökümantasyon yoktu. Araya başka sebepler de girince iyice uzaklaştığım bu PHP-GTK serüvenine burada yeniden başlıyorum.
Elimden geldiğince ve zaman buldukça PHP-GTK üzerine örnek uygulamalarla yazılar hazırlayacağım burda. PHP-GTK meraklılarının artması dileği ile, hoşçakalın…
Linuxta PHP-GTK2 kurulumu
Gonderen: Ersin tarih: Jul.27, 2007, Kategori: Php-GTK
PHP-GTK 2 yi Linuxta kurmanın en iyi yolu onu derlemektir. Henüz herhangi bir dağıtım
için ikili veya kaynak paketleri mevcut değil, bu yüzden paket yöneticinizle PHP-GTK 2 yi kuramazsınız!
Buradaki kurulum açıklamaları birçok Linux dağıtımı için geçerlidir. Yalnız FreeBSD de çalışmamaktadır.
PHP-GTK 2 yi Linux sisteminize kurmak için iki seçenek var. Ya mevcut PHP kurulumunuzun kullanabilir ya da ayrı bir kurulum yapmayı seçerek bunu PHP-GTK olarak kullanabilirsiniz. Her iki seçenekte de GTK+ 2.6 ve üstü sisteminizde kurulu olmalı.
PHP-GTK 2 yi yeni bir kurulum olarak kurmak
Sadece aşağıdaki adımları takip ederek kurulumu başarıyla tamamlayabilirsiniz. Öncelikle PHP nin en yeni sürümünü kontrol etmelisiniz. 5_1 veya 5_2 sürümlerinden herhangi birini seçebilirsiniz, her ikiside çalışmaktadır:
$ cvs -d :pserver:cvsread@cvs.php.net:/repository login
$ cvs -d :pserver:cvsread@cvs.php.net:/repository co -r PHP_5_2 php-src
Şimdi bunu derlemeniz ve kurmanız gerekiyor
$ cd php-src
$ ./buildconf
$ ./configure –prefix=/opt/php5_2 –disable-cgi
$ make
$ su
$ make install
$ echo extension=php_gtk2.so >> /opt/php5_2/lib/php.ini
$ /opt/php5_2/bin/php-config –extension-dir | xargs echo ‘extension_dir=’ /opt/php5_2/lib/php.ini
Eğer CVS den derlemeyi başaramazsanız, php nin download sayfasından kaynak kodları indrerek derleyebilirsiniz:
Şimdi işlemlerimizi bitirerek kurulumumuzu tamamlayalım:
$ cd ..
$ cvs -d :pserver:cvsread@cvs.php.net:/repository co php-gtk
$ cd php-gtk
$ ./buildconf –with-phpize=/opt/php5_2/bin/phpize
$ ./configure –with-php-config=/opt/php5_2/bin/php-config
$ make
$ make install
Hepsi bu, kurulumu bitirdiniz!
Mevcut Kurulumun üzerine kurmak
Php nin mevcut kurulumunun üzerine kurmaya karar verirseniz, CLI destekli en azından 5.1 versiyonunun bulunmasına dikkat edin. PHP nin bundan önceki hiçbir sürümüyle çalışmayacaktır. PHP sürümünüzü komut satırından php -v yazarak kontrol edebilirsiniz. Versiyonu kontrol ederken, çıktı da cli kelimesinin var olmasına dikkat edin.
Şimdi PHP-GTK 2 en son sürümünü CVS kaynağından kontrol edebilir veya download sayfasındaki açıklamalarda yer alan bütün kaynak kodları indirip bir klasöre açtıktan sonra cd komutuyla bu klasöre girerek aşağıdaki kodları çalıştırın:
$ ./buildconf
$ ./configure
$ make
$ make install
Bu birçok kişide çalışır. Fakat eğer PHP nin birkaç farklı sürümü kuruluysa veya PHP karmaşık bir klasör yapısına kurulmuşsa sorunlarla karşılaşabilirsiniz. Fakat bu gibi durumlardan phpize ve php-config dosyalarının yollarının tam yollarını belirterek kurtulabilirsiniz :
$ ./buildconf –with-phpize=/path/to/phpize
$ ./configure –with-php-config=/path/to/php-config
Kurulumu test etmek:
PHP-GTK2 yi kullanmadan önce, php.ini dosyanıza
extension=php_gtk2.so
satırını ekleyerek PHP-GTK yi etkinleştirdikten sonra kullanabilirsiniz.
Kaynak kodlarını indirdiğiniz klasör içerisindeki demo klasöründeki örnekleri test ederek kurulumunuzun sağlıklı olup olmadığını kontrol edebilirsiniz.
Bunun için demos klasörünüzde komut satırından
$ php phpgtk2-demo.php
şeklinde çalıştırarak test edebilirsiniz.
Kaynak: gtk.php.net
PHP-GTK2 ile sistem çekmecesine yerleşelim
Gonderen: Ersin tarih: Jul.27, 2007, Kategori: Php-GTK
Ve PHP-GTK2 Beta yayında. Evet yeni değil 17 Hazirandan beridir yayında. Şimdi PHP-GTK2 ile gelen yeniliklerden biri olan, birçok kişinin ilgisini çekeceğinden şüphem olmadığı bir konuya örnek vereyim.
Sistem çekmecesine yerleşen ikonları bilirsiniz. Bir program başlatırsınız ve penceresini kapadığınızda hemen sistem çekmecesine kendi ikonunu yerleştirir ve bu ikon yardımıyla o programa ait, program yazarı tarafından hazırlanmış olan nimetlerden faydalanabiliyoruz bu ikon üzerinden.
Şimdi bu ikonu PHP-GTK ile nasıl oluşturup kullanacağımızı görelim.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | <?php /** * * Standart bir PHP-GTK uygulamasındaki gibi *penceremizi oluşturalım * **/ $pencere = new GtkWindow(); $pencere->set_title("Örnek Pencere başlığım"); $pencere->set_size_request(240, 120); $pencere->set_position(Gtk::WIN_POS_CENTER_ALWAYS); $pencere->connect_simple('destroy', array('Gtk','main_quit')); $pencere->add($vbox = new GtkVBox()); $vbox->pack_start( new GtkLabel("Sistem çekmecesindeki ikona tıkladınız!")); $vbox->pack_start( new GtkLabel("Gizlemek için birkez daha tıklayın.")); // sistem çekmecesine yerleşecek ikonu ayarlıyoruz // işte yeni versiyondaki yenilik ve büyük kurtarıcı $statusicon = new GtkStatusIcon(); // Sistem çekmecesinde görünecek ikonumuzu seçiyoruz <a href=http://gtk.php.net/manual/en/gtk.enum.stockitems.php target=_blank> burdan da </a>görebileceğeniz gibi PHP-GTK2 içerisinde // onlarca hazır ikon bulunmaktadır $statusicon->set_from_stock(Gtk::STOCK_HOME); // sistem çekmecesindeki ikon üzerine gelindiğinde // görüntülenecek ipucuyu ayarlıyoruz. $statusicon->set_tooltip(’Pencereyi gormek için sol tıklayın’); $app_status = 0; // sistem çekmecesindeki ikona sol tıkladığımızda bir olay // gerçekleşir (signal) ve bu olay karşılığında çalışmasını // istediğimiz işlevi atıyoruz (callback) $statusicon->connect(’activate’, ‘on_activate’); $pencere->hide_all(); Gtk::main(); function on_activate($statusicon) { global $pencere, $app_status; if ($app_status) { $statusicon->set_tooltip(’Pencereyi görmek için sol tıklayın’); $pencere->hide_all(); $app_status = 0; } else { $statusicon->set_tooltip(’Pencereyi görmek için’); $pencere->show_all(); $app_status = 1; } } ?> |
Evvet işte oldu, nur topu gibi, sistem çekmecesinde yerleşke bir uygulamacık sahibiyiz
Kodların sade ve açık olduğunu düşündüğümden fazla açıklama yaparak kafa karıştırmak istemedim.
Eğer daha önce PHP-GTK1 ile uğraştı iseniz, burdaki Türkçe karakter desteğini fark etmişsinizdir. Evet
artık Türkçe karakter kullanmaktan korkmanıza gerek yok, uygulamanız abuk subuk tavırlar sergilemeyecek, sonlanmayacak.
