Sie sind auf Seite 1von 13

PHP-GTK para quem no conhece PHP

Jos Augusto F. Franco

Antes de inicarmos o tema principal deste manual, importante abordar duas temticas em separado, at porque o PHP-GTK nasceu , no da fuso , mas sim da criao de uma extenso que permite linguagem de programao PHP, criar aplicaes grficas que funcionam do lado do cliente, ou seja, funcionam no computador do utilizador. Se a primeira vez que est a entrar em contacto com uma linguagem de programao , este livro dotado de um glossrio no final, onde encontra descries detalhadas de algum dos termos que possam parecer-lhe demasiado tcnicos. Os restantes chaves tcnicos so explicados em detalhe ao logo de cada captulo, de forma a permitir uma melhor compreenso sobre a matria a abordar a cada momento.

O que o PHP ?
O PHP, uma linguagem web bastante poderosa, conhecida pela sua facilidade em criar aplicaes dinmicas que correm ao lado do servidor. Possui suporte maioria de base de dados conhecido, como Access, Sqlite, Mysql, Postgres, entre muitas outras. Com ela possvel desenhar imagens, gerar pdf, criar web services, orientar a objectos, criar SOAP, XML, embeber facilmente outras linguagens, como Java e at criar, APIs bastantes poderosos, e alm do mais open source. Por vezes, porm torna-se necessrio, desenvolver aplicaes que no dependam do servidor, mas possuam um ambiente grfico, onde o utilizador possa interagir por meio de botes, listas, painis e janelas, sem que sejam necessariamente um navegador. At pouco tempo, esta lacuna era bem presente no php, pois os programadores que desejavam criar aplicaes tipo stand alone para funcionar em client-side tinham de recorrer a outras linguagens, tais como o c++, c#, phyton, delphi, vb.etc. Esta forma pouco peculiar de programar, tem bastantes desvantagens, pois o programador tem de aprender uma linguagem totalmente nova, que em nada tem a ver com o php e em projectos futuros a criao de apis que funcionassem em conjunto com o servidor seria um processo moroso, ou at impensvel. Como uma resposta, a forma encontrada para solucionar esta lacuna, foi a adio de uma exteno que permite criar aplicaes mutiplataforma em ambiente grfico, vulgarmente conhecidas por GUIs - do ingls Graphical User Interface. Este mdulo no mais que uma classe toolkit escrita em C; baseada inteiramente no GIMP, cujas funcionalidades, foram adicionadas ao php, por Andrei Zmievski como forma de extenso, originado o PHP-GTK.

Como autodidacta que sou , prefiro muitas vezes medida que leio os manuais , praticar em paralelo a tcnica para assim a interiorizar melhor. Foi assim que me especializei em PHP, e o mesmo no PHP-GTK. Assim sendo, estou seguro que para quem vai ler este manual , ter mais facilidade em compreender aquilo que escrevemos se forem praticando com alguns exemplos. Para estarmos aptos a fazer isso , numa primeira fase iremos precisar de obter um pequeno software , que instalar o servidor, com a capacidade de intrepretar cdigo PHP, dos nossos exemplos.

PHP-GTK para quem no conhece PHP

Jos Augusto F. Franco

Instalao do servidor PHP+Apache+Mysql no Windows


O software que iremos instalar em seguida , permitir fazer ligaes a uma base de dados , por exemplo, bem como suportar uma site web a funcionar em pleno. O objectivo no criar um qualquer sitio web, mas sim , o de compreender de como a sintaxe PHP formada, e onde colocar os ficheiros para que os nossos exemplos funcionem como pretendido. Vamos ento baixar a aplicao para o nosso computador. 1 passo) Aceda ao site http://www.wampserver.com/en/ , e j no sitio do software Wamp, clique em Download 2 passo) De acordo com a verso do seu sistema operativo, baixe o mais adequado.

As verses mais recentes do Widnows trabalham a 64 bits. Poder obter essa informao clicando com o boto direito do rato sobre O meu computador, clicando seguidamente em Propriedades , obtendo a informao na rea indicada Tipo de sistema.

PHP-GTK para quem no conhece PHP

Jos Augusto F. Franco

Por baixo da seo do download, encontra informaes sobre as verses dos diferentes softwares intergrados no Wamp. Neste caso por exemplo estaremos a usar a verso 5.3.13 do PHP.

Ao tentar fazer o download, poder ser mostrada uma pequena janela informando os requesitos necessrios , para que o Wamp funcione devidamente:

Repare que para que o WampServer v funcionar correctamente, o autor alerta na janela acima , que deveremos ter instalado o Visual C++ 2010 SP1, no meu caso a verso a 64 bits. O endereo para o baixar o Visual C++, aparace junto ao aviso do autor logo abaixo. ainda referido que no podemos instalar o WampServer em cima de verses anteriores, bem como no devemos importar componente de verses antigas para a nova verso, pois o funcionamento do servidor revelar-se- instvel.

Para baixar o software clique no texto you can download it directly, e aguarde alguns segundos at o software fique disponvel no seu computador. Execute o ficheiro executvel at que a janela abaixo seguinte seja mostrada. Repare que o instalador continua a apresentar as verses dos softwares includos no WampServer. No meu caso , estando agora num computador a funcionar a 32 bits, as verses so diferentes da aplicao que baixamos a 64 bits.

PHP-GTK para quem no conhece PHP

Jos Augusto F. Franco

Continue com a instalao, clicando no boto Next. No passo seguinte marque I accept the agreement, e neste momento vamos verificar o directrio de instalao. recomendvel que use o directrio que apresentado por defeito, ou seja, neste exemplo C:\wamp .

Na opo seguinte marque a opo de criar um atalho no Ambiente de Trabalho por exemplo, para poder iniciar rapidamente o servidor. Finalmente clique em Install para que o software seja instalado.

PHP-GTK para quem no conhece PHP

Jos Augusto F. Franco

Antes da instalao ficar completa dever indicar o directrio do seu navegador de internet que deseja usar para visualizar o restado da codificao PHP. J adiante iremos testar um pequeno exemplo. D ainda permisso ao Apache, na opo marcada por defeito, para que este no seja bloqueado pela Firewall.

Ainda ir encontrar a opo de indicar o seu email, para que seja possvel criar aplicaes PHP que enviam email a partir do seu computador, usando o protocolo SMTP. Chique Terminate e deixe a opo Launch application

Repare que foi criado um cone na barra de cones (Trayicon). Dever visualizar a passagem na cor do cone de laranja a verde, o que significa que o servidor e os servios foram iniciados e esto a ser executados com sucesso.

Clicando com o rato sobre o cone poder visualizar uma pequena janela com as opes disponveis para o servidor, como execut-lo, par-lo ou reinici-lo. Ao clicar em localhost ser aberto o seu navegador de Internet seleccionado durante a instalao, e listados os ficheiros contidos no chamado servidor local (localhost). Esses ficheiros listados encontram-se no directrio www. Poder atalhar rapidamente a eles clicando www directory. Poder tambm a partir daqui operar sobre os servios Apache, PHP e Mysql . O servidor acompanha uma aplicao webbased , para operar sobre base de dados a operar sobre o servio Mysql. Chama-se phpMyAdmin e uma ferramenta bastante simples e fcil de usar , que ir facilitar a tarefa de criao e operar sobre a base de dados e as tabelas nela contidas.

PHP-GTK para quem no conhece PHP

Jos Augusto F. Franco

Acompanha ainda a ferramenta tambm webbased, webGrind, uma aplicao que permite corrigir bugs e aumentar a performance do cdigo escrito com PHP. Primeiro exemplo com PHP Como j foi referido antes, o objectivo deste manual no ensinar ningum a programar em PHP. No entanto quem no sabe PHP, mas tem j umas luzes de linguagens de programao, ir entender facilmente os exemplos descritos ao longo deste percurso de leitura. Para aprender tudo e mais alguma coisa sobre PHP, recomendo um bom manual que entre em detalhe sobre todos os conceitos. Existem muitos venda na Internet. No nosso caso iremos apenas preocupar-nos por compreender todos os exemplos expostos no livro. No ser difcil com certeza. Para entender a flexibilidade de qualquer linguagem de programao, este primeiro exemplo ser escrito no Notepad, existente em qualquer sistema Windows. No ficheiro notepad ao lado temos uma codificao cujo resultado apenas o de imprimir no navegador a frase Ol mundo!. Repare que qualquer aplicao escrita com PHP , deve possuir os marcadores <?php , que diz ao servidor onde comea a codificao PHP , e ?> onde esse troo de cdigo termina.

Tudo o que estiver dentro desses marcadores deve obedecer sintaxe prpria da linguagem PHP, caso contrrio ocorrero erros, que sero mostrados no navegador se a directiva error_reporting estiver activa no ficheiro de configurao php.ini, ou ento seja informado no prprio cdigo PHP. Para testar o resultado do cdigo acima , proceda da seguinte forma; dentro do directrio www , crie uma nova pasta e chame-lhe por exemplo, testes e dentro dela grave ficheiro com o nome index.php. Neste momento j podemos executar o nosso cdigo. Basta clicar em localhost, pelo Trayicon, ou escrever http//localhost directamente no seu navegador.
Acesso ao ficheiro de configurao php.ini

Ser apresentada a pgina com o aspecto abaixo. A nossa pasta est localizada na seco Your Projects, em portugus, Os seus projectos.

PHP-GTK para quem no conhece PHP

Jos Augusto F. Franco

Para executar o cdigo no ficheiro index.php basta clicar sobre a pasta testes, e ser visualizado no navegar o resultado. Isto porque gravmos o ficheiro com o nome de execuo por defeito, ou seja index.php. Se de outro modo tivssemos gravado o ficheiro com o nome exemplo1.php, a execuo no seria automtica. Ou escreveramos a localizao completa no navegador, http://localhost/testes/exemplo1.php, ou teramos de clicar nesse ficheiro, na seco Your Projects.

Como pudmos constatar, o Notepad serve perfeitamente para escrever codificao PHP, mas em aplicaes de maior complexidade, no de todo a melhor forma de o fazer. Para essa finalidade existem aplicaes concebidas para efeito, como o caso do Adobe Dreamweaver, um editor profissional, que permite a integrao com o servidor, fazer o code hinting (troos de cdigo a cores diferentes, de forma a identificar mais facilmente o tipo, se se trata de funes , classes etc), e o papel de debuger , visualizando erros de sintaxe e seleccionando-os em tempo real. No iremos abordar a instalao o Abobe Dreamweaver passo a passo, uma vez que muito fcil fazer o procedimento. Tenha em mente que necessrio possuir um registo prvio para que o download seja bem-sucedido. A Adobe usa neste momento o conceito de aplicao a funcionar em nuvem. Por esse motivo ter de instalar primeiramente o Creative Cloud, disponvel para download neste endereo; https://creative.adobe.com/products/creative-cloud.

Durante a instalao poder ocorrer um erro estranho, como o seguinte:

A soluo passa por instalar o Adobe Application Manager (AAM), no seguinte endereo:
PC: http://download.adobe.com/pub/adobe/creativesuite/cs/win/ApplicationMa nager7.0_all.exe MAC: http://download.adobe.com/pub/adobe/creativesuite/cs/mac/ApplicationMa nager7.0_all.dmg .

O AAM ir actualizar automaticamente para o Adobe Cloud(AC).

PHP-GTK para quem no conhece PHP

Jos Augusto F. Franco

Aps a instalao e actualizao deste, abrimos o AC, clicando no separador Apps para baixar o Dreamweaver carregue no boto Avaliar. Aguardar at que a aplicao seja instalada, at finalizao da barra de progresso.

Agora j temos disposio todas as ferramentas para programar com extrema facilidade e agilidade.

Abrindo o Dreamweaver clicamos em Arquivo > Novo escolha como Tipo de Pgina , PHP.

PHP-GTK para quem no conhece PHP

Jos Augusto F. Franco

Vamos alterar a visualizao para a rea de cdigo,

Veremos a estrutura bsica de uma pgina HTML, totalmente em branco. A flexibilidade do PHP permite codificar pginas web e embeber o PHP junto com a linguagem de marcao HTML. Aproveitando o HTML criado automaticamente pelo Dreamweaver, vamos codificar um novo exemplo (script), e colocando-o junto com o cdigo HTML.

PHP-GTK para quem no conhece PHP

Jos Augusto F. Franco

Exemplo 1: PHP embutido no HTML O exemplo acima cria o ficheiro chamado membros.txt, e nela grava na primeira linha os dados Onidesk TI.

Tipo $fp fopen fwrite fclose

Descrio armazena o recurso de manipulao sobre o ficheiro Aponta ao ficheiro indicado pelo nome. http://www.php.net/manual/pt_BR/function.fopen.php Escreve o contedo no ficheiro. http://php.net/manual/pt_BR/function.fwrite.php Fecha o manipulador indicado por $fp http://www.php.net/manual/pt_BR/function.fclose.php

Grave a pgina como exemplo1.php, numa pasta criada previamente e a que chamaremos de cap1. Chame a pgina no seu navegador, da seguinte forma: http://localhost/cp1/exemplo1.php Verifique se o ficheiro membros.txt foi gerado, e se nele foi escrito o texto Onidesk TI .

PHP-GTK para quem no conhece PHP Exerccio prtico n1 :

Jos Augusto F. Franco

O IP (Internet Protocol), uma espcie de bilhete de identidade na internet que identifica um utilizador ao visitar uma pgina de um sitio web. Aproveitando o exemplo acima, vamos agora criar algo mais complicado. No exemplo seguinte iremos criar um ficheiro que vai armazenar os visitantes a uma determinada pgina na Internet. Iremos ainda prever que um determinado utilizador s registado uma nica vez, mesmo que seja dado refresh na pgina.

Resoluo: O primeiro passo ser indicar no cdigo uma forma de captar um determinado utilizador que chega pgina. O PHP possui algumas funes e variveis para obter informaes do servidor em execuo e das informaes de quem interage com as pginas. O array $_SERVER (http://php.net/manual/pt_BR/reserved.variables.server.php) , permite responder a esta necessidade. $_SERVER[REMOTE_ADDR] a forma mais adequada de identificar e obter o IP do utilizador que est a visualizar a pgina. Assim teramos:

Com o cdigo acima estamos a obter o IP do utilizador que est a visitar a pgina num dado momento. Repare que usmos a varivel $ip_utiliz para guardar o ip , podendo usar essa varivel ao logo do cdigo , ou como no exemplo , imprimir o contedo da varivel. A essa tcnica de ir acompanhando o que se passa ao longo do cdigo , d-se o nome de debug. As frases a laranja no cdigo so comentrios. Resultado do teste no navegador:

O ip 127.0.0.1 corresponde ao ip da mquina local onde eu estou a trabalhar e usado para fazermos aquilo a que se chama loopback, que mais no que falarmos com o nosso computador. Na prtica permite uma interface IP no prprio servidor, independente da restante configurao da rede existente. O mesmo cdigo a funcionar num domnio online teria um resultado diferente, obtendo um IP real.

PHP-GTK para quem no conhece PHP

Jos Augusto F. Franco

FUNES NO PHP Obter um IP de um utilizador extremamente til e podemos sentir necessidade de o fazer ao longo do nosso cdigo vrias vezes. Para no termos de reescrever o cdigo vrias vezes, sempre que necessitarmos; podemos criar funes, que armazenam uma determinada funcionalidade e obtemos resultado esperado sempre que invocadas. Para exemplificar vamos criar uma funo simples que permite obter o IP de um determinado utilizador. Vamos deste modo usar algumas funcionalidades do array $_SERVER Tipo $_SERVER[REMOTE_ADDR ] $_SERVER[HTTP_X_FORWARDED_FOR ] $_SERVER[HTTP_CLIENT_IP ] Descrio Armazena o IP do utilizador actual, lendo do servidor Armazena o IP de origem atravs do cabealho HTTP Armazena o IP de origem atravs do cabealho HTTP

Como numa boa parte das linguagens de programao, o escopo de uma funo criado usando o tipo de dados function, como por exemplo: function Obtem_IP( ) { }

Vamos seguir de incios as boas prticas de programao. Criamos ento um novo ficheiro PHP , e gravamos numa pasta , a que chamamos funcoes, gravando l o ficheiro como o nome obter_ip.php. Usando as funcionalidades anteriores para obteno criamos a funo ao lado. A expresso return devolve o resultado conseguindo ao longo da funo e armazenado na varivel $ip. Repare ainda na particularidade anotada nos comentrios. A funo stlen avalia o comprimento da varivel $ip, como o resultado de strlen um nmero inteiro iremos avaliar se o comprimento zero, o que significa que o ip no foi obtido naquela expresso avaliada.

De notar que neste momento apenas declarmos a funo. Ela no est a ser invocada, e muito menos a ser executada. Para o fazer teramos de declarar a funo em qualquer parte do nosso cdigo.

PHP-GTK para quem no conhece PHP

Jos Augusto F. Franco

Agora sim, a nossa funo passou a ser chamada, mas ainda no podemos visualizar o resultado de nada porque , no existe nada a ser impresso . Para o fazer faramos:

O resultado, testando localmente ser , o mesmo que anterior, como esperado.