Forum und email

Constantes GTK

O GTK+ utiliza muitas constantes. No PHP-GTK 1, elas eram definidas em um escopo global e podiam ser acessadas via:

echo GTK_WIN_POS_CENTER;
Se você executar este código com o PHP-GTK 2, o seguinte erro será disparado:

PHP Notice:  Use of undefined constant GTK_WIN_POS_CENTER -
assumed 'GTK_WIN_POS_CENTER' in /path/to/file.php on line 23

O problema é que aquele valor original não é mais usado (GTK_WIN_POS_CENTER é reconhecido como um inteiro 1 no PHP-GTK 1). Uma string literal por si só "GTK_WIN_POS_CENTER", é tudo o que o PHP-GTK 2 reconhece - o que tornaria seu código incorreto.

Constantes estáticas de classe são suportadas no PHP 5, então foi decidido não mais poluir o espaço global com constantes do PHP-GTK. Elas são definidas nas classes Gtk, Gdk e outras.

Simplificando, tudo o que você tem que fazer (na maioria dos casos) é substituir o primeiro underscore _ pelo operador de resolução de escopo (::). GTK_WIN_POS_CENTER no PHP-GTK 1, torna-se Gtk::WIN_POS_CENTER no PHP-GTK 2.

Note também, o novo estilo de codificação. Apenas a primeira letra deve ser maiúscula nos nomes das classes Gtk, Gdk, Pango e Atk. Isto serve para exibir o novo status de constantes de classe ao invés de constantes globais.