Installer la version stable de php-gtk sur archlinux
Aujourd'hui j'ai décidé d'apprendre à programmer avec php-gtk.
Pour installer cette extension sur archlinux il nous faut php 5.2, nous allons donc compiler cette version:
cd /usr/local/src
sudo wget http://fr.php.net/distributions/php-5.2.14.tar.bz2
md5sum php-5.2.14.tar.bz2
sudo tar xvjf php-5.2.14.tar.bz2
cd php-5.2.14
sudo ./configure --prefix=/usr/local --sysconfdir=/usr/local/etc/php --with-config-file-path=/usr/local/etc/php --with-config-file-scan-dir=/usr/local/etc/php/conf.d --enable-inline-optimization --enable-shared --mandir=/usr/local/share/man --with-curl --with-gd --with-zlib --with-bz2 --with-jpeg-dir=shared,/usr --with-png-dir=shared,/usr --with-openssl --with-pear --with-readline --with-mysql=mysqlnd --enable-calendar --enable-mbstring --enable-bcmath --with-pdo-odbc=shared,unixODBC,/usr
sudo make
sudo make test
sudo make install
On peut mettre un php.ini:
sudo cp php.ini-recommended ../../etc/php/php.ini
Il nous reste juste à remplacer la ligne (sudo nano /usr/local/etc/php/php.ini):
extension_dir = "./"
Par:
extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20060613"
Une fois php 5.2 installé nous pouvons compiler php-gtk comme suit:
cd /usr/local/src
sudo wget http://gtk.php.net/distributions/php-gtk-2.0.1.tar.gz
sudo tar xzvf php-gtk-2.0.1.tar.gz
cd php-gtk-2.0.1
export PATH=/usr/local/bin:$PATH && sudo ./buildconf
sudo ./configure --prefix=/usr/local --with-php-config=/usr/local/bin/php-config
sudo make
sudo make test
sudo make install
Pour finir il nous reste plus qu'à activer l'extension:
sudo mkdir /usr/local/etc/php/conf.d
sudo nano /usr/local/etc/php/conf.d/php-gtk.ini
et on copie colle cette ligne:
extension=php_gtk2.so
Maintenant nous pouvons tester une class, beaucoup d'exemples sont disponibles sur internet
(je vais utiliser la 1ère class que j'ai trouvé ici : http://www.ydhen.com/ydokuwiki/doku.php?id=wiki:programmation:php-gtk2:exemples)
Contenu de notre class Fenetre:
//On dérive la fenêtre de l'objet fenêtre
class Fenetre extends GtkWindow {
function __construct() {
//apparemment il faut quand meme lancer le constructeur du parent
parent::__construct();
$this->connect_simple('destroy', array($this, 'quit'));
$this->show_all();
}
function quit() {
Gtk::main_quit();
}
}
new Fenetre();
Gtk::main();
?>
Pour lancer le code:
/usr/local/bin/php fenetre.php
Ce qui nous donne le résultat: