Уничтожение
Этот шаг происходит при уничтожении графического элемента, обычно в ходе процедуры закрытия. Все необходимые здесь действия выполняются самим PHP-GTK. Однако важно создать связь с сигналом для того, чтобы инициировать закрытие и включить статический метод gtk: :main_quit() в функцию закрытия:
$window->connect('destroy', 'myShutdownRoutine');
Пример Hello World
Вот и он — вездесущий пример Hello World. В данном случае это не просто вывод на консоль. Мы создадим окно с кнопкой Hello World! и всплывающей подсказкой, объясняющей действие кнопки. При нажатии кнопки приложение выводит Hello to rid! в окно сеанса DOS или консоли, из которой было запущено, и закрывается.
Оператор if проверяет, под какой операционной системой мы запустили PHP-GTK. Это достигается сравнением строки «WIN» с первыми тремя символами значения переменной $PHP_OS. В зависимости от результата функция dlC > загружает в память соответствующий модуль:
<?php
dl('php_gtk.' . (strstr($PHP_0S, 'WIN')? "dll' : 'so')) || die("Unable to load PHP-GTK module\n");
Функция quitRoutineQ вызывается при разрушении окна. Это происходит независимо от способа разрушения. Событие удаления (генерируемое при закрытии пользователем GtkWindowc помощью кнопки X в правом верхнем углу окна) генерирует который внутренне обрабатывает метод de- stroy(). По умолчанию gtk: :main_quit О является статическим методом, останавливающим основной цикл:
function quitRoutirie($window)
{
gtk::main_quit();
}
Функция вызывается при щелчке по кнопке. Она просто выводит
Hello World! на консоль, а затем уничтожает окно. Обратите внимание, что второй параметр функции обратного вызова - $window - это пользовательский параметр, переданный из соединения, вызванного из объекта $button, причем вызывающий объект обеспечивает первый параметр, когда используется метод connect(). Если бы он не был передан как параметр обратного вызова, то мы могли бы объявить $window в качестве глобальной переменной в функции hello():
function hello($button, $window) {
print "Hello World! \n"; $window->destroy();
)
Следующие несколько строк настраивают окно. Первая строка в этом блоке устанавливает $windowKaK вновь созданный экземпляр GtkWindow. В большинстве случаев в PHP-GTK надо использовать &new, а не просто new - из-за способа работы с объектами, реализованного в Zend Engine. В следующей строке из нашего окна вызывается метод устанавливающий ширину рамки равной 10 пикселам. В следующей строке сигнал окна destroy' связывается с функцией oбpaбoтчикacигнaлaqu i t R out i n e О: