Если вы много лет занимались только web-программированием и вдруг возникает потребность в написании чего-то не слишком большого десктопного с GUI, то скорее всего вы поймете, что забыли языки, среды на которых некогда вы сдавали настольные приложения. Было бы хорошо, если бы можно было накидать несложное приложение с GUI и на php. Такую возможность дает библиотека php-gtk, о которой и пойдет речь в данной заметке.

Библиотека php-gtk дает возможность пользоваться элементами интерфейса, которыми располагает GTK (один из двух самых популярных наборов элементов интерфейса для X Window System). Таким образом, на языке php вы сможете теперь создавать кроссплатформенные настольные приложения!

Код простейшей программы выглядит так:

$window = new GtkWindow();
$window->connect_simple('destroy', array('Gtk', 'main_quit'));
$label = new GtkLabel('Hello, world!');
$window->add($label);
$window->show_all();
Gtk::main();

Этот код отображает окно с традиционной надписью приветствия.

Для запуска этого приложения вам необходимо установить php-gtk. Скачать дистрибутив можно здесь

Для установки на openSUSE вам необходимо распаковать архив с исходным кодом, перейти в консоли в эту директорию (сделать ее текущей) и выполнить ряд команд:

./buildconf
./configure
make
make install
 
echo extension=php_gtk2.so >> /etc/php5/cli/php.ini
ln -s /usr/bin/php /usr/bin/php-gtk

После этого команда php -m | grep gtk должна выдать php-gtk. И затем вы сможете запустить приложение так: php-gtk /home/user_name/path_to_file/test.php

У некоторых из вас сразу же возник вопрос про средства RAD. Есть ли они для php-gtk? Я нашел в сети парочку. Первое приложение - это PHP-GTK Builder. Но к сожалению автор перестал над ним работать несколько лет назад. Оно рассчитано на php-gtk версии 1. Видимо поэтому оно не запустилось у меня из-за каких-то ошибок. Второе написано на freepascal в среде Lazarus. Это Anubis. Вы можете скачать его на официальном сайте автора (Luiz Fernando Estevarengo is developer of Anubis - RAD for php-gtk). Последняя версия - beta 0.3 от 19-07-2006. Я попробовал ее запустить. Есть возможность кинуть на форму несколько типов элементов управления, но типов всего несколько и нельзя прикрепить там же обработчики событий. Я связался с автором. Он сказал, что сейчас он разрабатывает новую версию и ему нужны люди в команду. Возможно что даже кто-то из вас заинтересуется, и скоро мы увидим новую версию. Однако сейчас, пожалуй, лучшим дизайнером интерфейсов для php-gtk будет Glade. Есть хороший блог с уроками по php-gtk на русском. Там есть статья как использовать Glade для php-gtk приложений.

Вот пожалуй и познакомились с еще одной технологией. Надеюсь мои ссылки вам помогут. Так же не следует забывать про официальный сайт php-gtk. Удачи вам!

Tags:

2 Responses to “Настольные приложения на php (PHP-GTK)”

  1.  Evgen Says:

    Создавать виджеты вручную весьма утомительно. По это причине лучше вспомнить компилируемые языки. Ведь и проблем с переносимостью в данном случае будет меньше. В свое время рассматривал этот вопрос. Glade же по моему мнению ничего не решает. Все же php хорош в нише web и CLI, но ни как не GUI. Конечно всё вышесказанное ИМХО =)

    з.ы. Капча у вас больно сложная. Сам угадаешь после смены эдак 5 картинок =)

  2.  Игорь Тельменко Says:

    Чуть выше ссылка по которой написано как использовать Glade. Никаких проблем.