quinta-feira, 14 de dezembro de 2017

Construindo interfaces gráficas com php-gui

PorRodrigo "pokemaobr" Cardoso em

Resultado de imagem para php code

Todos sabemos que o PHP é uma linguagem que foi criada e é bastante utilizada para projetos web. Portais, websites, redes sociais, blogs, APIs e muitos outros sistemas web utilizam o PHP como core de suas aplicações.
Porém, não é apenas isso que a linguagem faz. Em um artigo anterior https://imasters.com.br/desenvolvimento/5-bibliotecas-e-projetos-php-que-voce-deveria-conhecer/ eu falo sobre um projeto que é um emulador de gameboy que um grande desenvolvedor PHP brasileiro, o Gabriel Rodrigues Couto, vulgo Bob, desenvolveu.
Dessa vez irei apresentar mais um projeto dele, no caso agora é algo ainda mais louco. É uma biblioteca de interface gráfica em PHP, o php-gui. Esse projeto não foi desenvolvido com o intuito de utilizarmos o PHP como uma linguagem para manipular interfaces, mas sim, para mostrar onde podemos ir com a linguagem.
O projeto consiste em uma espécie de middleware entre o PHP e o Lazarus Component Library (free Pascal). Basicamente você desenvolve um aplicativo utilizando o PHP e o Lazarus cria o binário. Sendo assim, não é necessário nenhuma extensão PHP para a criação da sua interface. Necessitando apenas do PHP 5.6 ou superior para rodarmos o projeto.
Abaixo uma imagem retirada do repositório oficial do projeto que explica um pouco como funciona.
Bem, vamos ver como ele funciona na prática.
Para criar um projeto com o php-gui basta criar uma nova pasta raiz para o projeto e utilizar o seguinte comando do composer.
1composer require gabrielrcouto/php-gui
isso irá fazer com que o composer instale todas as dependências do projeto.
As classes mais importantes do projeto é a Application, que é responsável pela criação e execução da interface e as classes de Componentes (botões, textarea, checkbox, etc).
Para exemplificar, vamos criar uma tela que possui uma caixa de texto (que no caso é um cep) e um botão, e quando esse botão é clicado os dados referente ao cep que foi digitado aparecem na tela. Iremos utilizar a api do https://viacep.com.br/ para fazer as chamadas. E para exemplificar do modo mais simples, a requisição será efetuada por um file_get_contents() (não façam isso em casa :) )
O código abaixo está comentado para melhor entendimento. No caso foi salvo como gui.php esse código, na pasta raiz do nosso projeto.
1<?php
2 
3//autoload do composer
4 
5require 'vendor/autoload.php';
6
8 
9//use das classes que iremos utilizar
10 
11use Gui\Application;
12 
13use Gui\Components\Button;
14 
15use Gui\Components\InputText;
16 
17use Gui\Components\TextArea;
18
21//instanciando a aplicação
22 
23$application = new Application();
24 
25 
26 
27//definindo o evento que é disparado quando a aplicação é iniciada (start)
28 
29$application->on('start', function() use ($application) {
30 
31//criando o botão
32 
33$button = (new Button())
34 
35   ->setLeft(110)
36 
37   ->setTop(10)
38 
39   ->setWidth(200)
40 
41   ->setValue('Pesquisar CEP!');
42 
43//criando o inputtext
44 
45$text = (new InputText())
46 
47   ->setLeft(10)
48 
49   ->setTop(10)
50 
51   ->setWidth(100);
52 
53//criando a textarea
54 
55$textArea = (new TextArea())
56 
57   ->setLeft(10)
58 
59   ->setTop(50)
60 
61   ->setWidth(300)
62 
63   ->setHeight(170);
64 
65 
66 
67// definindo o evento que é disparado quando o botão é pressionado
68 
69$button->on('click', function() use ($button,$text,$textArea) {
70 
71//retornando o valor do inputtext
72 
73   $cep = $text->getValue();
74 
75   //defininindo url de chamada do webservice
76 
77$url = 'https://viacep.com.br/ws/'.$cep.'/json/';
78 
79//retornando a chamada do webservice e convertendo o resultado de Json para objeto
80 
81   $result = json_decode(file_get_contents($url));
82 
83   //definindo o novo valor da textarea
84 
85   $textArea->setValue(
86 
87    'Cep: ' . $result->cep . PHP_EOL .
88 
89    'Logradouro: ' . $result->logradouro . PHP_EOL .
90 
91    'Complemento: ' . $result->complemento . PHP_EOL .
92 
93    'Bairro: ' . $result->bairro . PHP_EOL .
94 
95    'Localidade: ' . $result->localidade . PHP_EOL .
96 
97    'UF: ' . $result->uf
98 
99    );
100 
101 
102 
103   });
104 
105});
106 
107 
108 
109//rodando a aplicação
110 
111$application->run();
Então, basta dar um:
1php gui.php
Dai é só digitar um cep sem hifen e clicar em “pesquisar cep”
Bem, espero que tenham gostado, dá para explorar legal os vários componentes do php-gui e o melhor é sempre entendermos até onde o PHP pode chegar. Até a próxima.

Nenhum comentário:

Postar um comentário