Criando Aplicações Gráficas Com PHP
Criando Aplicações Gráficas Com PHP
Criando Aplicações Gráficas Com PHP
Pablo Dall'Oglio
Novatec
Captulo 1
Introduo
Quando voc tem uma meta, o que era um obstculo passa a ser uma das etapas do seu plano. (Gerhard Erich Boehme)
Neste captulo de introduo, conheceremos as razes do PHP e do GTK, sua histria e como surgiu o PHP-GTK, assunto principal deste livro.
Em novembro de 1997 foi lanada a segunda verso do PHP. Naquele momento, aproximadamente 50 mil domnios ou 1% da Internet j utilizava PHP. No mesmo ano, Andi Gutmans e Zeev Suraski, dois estudantes que usavam PHP em um projeto acadmico de comrcio eletrnico, resolveram cooperar com Rasmus para aprimorar o PHP. Para tanto, reescreverem todo o cdigo, baseado no PHP/FI 2. Assim nasceu o
23
24
PHP3, disponibilizado oficialmente em junho de 1998. Dentre as principais caractersticas do PHP3 estavam a extensibilidade, a possibilidade de conexo com vrios bancos de dados, novos protocolos, uma sintaxe mais consistente, suporte orientao a objetos e uma nova API, que possibilitava a criao de novos mdulos e acabou por atrair vrios desenvolvedores ao PHP. No final de 1998, o PHP j estava presente em cerca de 10% dos domnios da internet. Naquela poca, o significado da sigla PHP mudou para PHP: Hypertext Preprocessor, a fim de retratar a nova realidade de uma linguagem com propsitos mais amplos. No inverno de 1998, aps o lanamento do PHP 3, Zeev e Andi comearam a trabalhar em uma reescrita do ncleo do PHP, tendo em vista melhorar sua performance e modularidade em aplicaes complexas. Para tal, resolveram chamar este ncleo de Zend Engine, ou Mecanismo Zend (Zeev + Andi). O PHP4, baseado neste mecanismo, foi lanado oficialmente em maio de 2000, trazendo muitas melhorias e recursos novos, como sees, suporte a diversos servidores Web, alm da abstrao de sua API, permitindo inclusive que fosse utilizado como linguagem para shell script. Neste momento, o PHP j estava presente em cerca de 20% dos domnios da Internet, alm de ser usado por milhares de desenvolvedores no mundo inteiro. Apesar de todos esforos, o PHP ainda se ressentia de maior suporte orientao a objetos, tal qual existe em linguagens como C++ e Java. Estes recursos esto finalmente presentes no PHP5, aps um longo perodo de desenvolvimento que culminou com sua disponibilizao oficial em julho de 2004. Ao longo do livro sero vistos estes recursos por meio de exemplos de sua utilizao com o GTK. Fonte: PHP Group.
Captulo 1 Introduo
25
O GTK um conjunto de ferramentas composto de vrias partes: glib (G Library) Esta biblioteca contm algumas rotinas de programao em C, prov a estrutura bsica de programao, define alguns tipos de dados que so usados pelas camadas superiores. gdk (GTK Drawing Kit) Encapsula o Sistema de Janelas (X ou Windows) sob o GTK. Contm as rotinas para desenho da interface e para responder aos eventos do mouse ou do teclado. gtk (Gimp Toolkit) Contm a biblioteca de componentes, que consiste em uma srie de controles como caixas de edio, listas e botes, dentre outros, organizados em uma estrutura orientada a objetos. pango Biblioteca responsvel pelo layout e renderizao de texto (caracteres de mltiplos idiomas). Forma o ncleo de manipulao de textos e fontes no GTK2. Utiliza o padro Unicode e suporta a maioria dos idiomas.
26
para provar que o PHP uma linguagem completa e de propsitos amplos. O casamento do PHP com o GTK harmonioso, pois ambos so independentes de plataforma. No PHP-GTK temos uma ferramenta de desenvolvimento que permite aos desenvolvedores rodarem o mesmo cdigo em ambientes Linux, Windows e Mac. Na Figura 1.3, voc confere o logotipo do PHP-GTK.
A primeira verso do PHP-GTK, que vigorou de 2001 a 2005, era baseada no PHP4 em conjunto com a biblioteca GTK1.2, justamente a verso coberta pela primeira edio deste livro. Logo que as primeiras verses beta do PHP5 comearam a ser lanadas, Andrei iniciou o trabalho de reescrever o PHP-GTK para aproveitar todos os novos recursos relacionados orientao a objetos que foram surgindo, bem como passar a adotar a biblioteca GTK2, que j estava consolidada e com grande adoo. Assim surge o PHP-GTK2, que a unio da linguagem PHP5 com a biblioteca GTK2, possibilitando o desenvolvimento de aplicaes grficas complexas e de grande apelo visual, proporcionadas pelo GTK2, e, ao mesmo tempo, o uso dos avanados recursos de orientao a objetos e conexo a bancos de dados, proporcionados pela linguagem PHP5. E exatamente para cobrir a utilizao deste dueto que este livro foi escrito. Utilizando PHP-GTK, voc poder criar uma aplicao que possui conectividade com o servidor (banco de dados e acesso arquivos), como todos os demais programas escritos em PHP. Mas, pelo fato de rodar a aplicao na mquina-cliente, tambm tem total acesso aos recursos desta, como, por exemplo, executar aplicaes, escrever arquivos e acessar dispositivos perifricos. Para tal, o PHP-GTK precisa ser instalado em cada mquina-cliente que executar uma aplicao. Veja na Figura 1.4 um grfico que ilustra bem tudo o que foi descrito at aqui. A linguagem PHP parte central do desenvolvimento. Todo o cdigo escrito em PHP, que a linguagem-me. Como resultado visvel da aplicao ao usurio final, existem duas possveis sadas: pgina HTML, utilizando o PHP da forma tradicional, ou Interface Grfica, com um ambiente de botes e janelas empregando o GTK.
HTML BD PHP GTK
Captulo 1 Introduo
27
O PHP uma linguagem de programao modularizada, composta por um ncleo e cercada por inmeras extenses da linguagem. Existem extenses para gerao de imagens (GD), documentos PDF (FPDF), acesso a servidores Web via Web-Services e FTP, compactao de arquivos (zlib), dentre outras. O PHP-GTK surge neste contexto com a extenso de maior tamanho e complexidade, provendo um framework completo para a construo de aplicaes grficas para projetos escritos em PHP. Veja na Figura 1.5 alguns exemplos de extenses do PHP.
1.4.1 Compilao
Para compilar o PHP-GTK no Linux necessrio ter instaladas as ferramentas GNU (make, libtool, autoconf, automake, gcc etc). Tambm necessrio ter as verses completas do Gtk (libgtk-2.0, libgtk2.0-dev) e Glib (libglib2.0, libglib2.0-dev). Se voc quiser tambm o suporte ao Glade, necessrio ter instaladas as bibliotecas libglade2, libglade2-dev, libxml2 e libxml2-dev. Instale o PHP 5.1.x ou superior. Os parmetros a seguir so somente uma sugesto:
# # # # cd /usr/local/src tar -xzvf php-5.1.6.tar.gz cd php-5.1.6 ./configure --prefix=/usr --disable-cgi --enable-cli --with-mysql --with-mysqli
28
Habilitando o PHP-GTK2:
# # # # cp php.ini-dist /usr/lib/php.ini echo php-gtk.codepage = ISO8859-1 >> /usr/lib/php.ini echo extension=php_gtk2.so >> /usr/lib/php.ini /usr/bin/php-config --extension-dir |xargs echo extension_dir=>>/usr/lib/php.ini
Instalando o PHP-GTK2:
# # # # # # # cd /usr/local/src tar -xzvf php-gtk-2.0.0.tar.gz cd php-gtk-2.0.0 ./buildconf ./configure --prefix=/usr --with-php-config=/usr/bin/php-config make make install
Verificando a instalao:
# php -m [PHP Modules] .... libxml pcre PDO pdo_sqlite php-gtk << aqui posix session ....
Captulo 1 Introduo
29
1.5.1 Configurao
Para configurar o PHP-GTK no Windows, basta editar o arquivo C:\php-gtk2\php.ini, habilitando ou removendo bibliotecas. Diretrio onde as bibliotecas esto localizadas:
extension_dir = C:\php-gtk2\ext