Olá, pessoal! Este é o meu primeiro
post aqui no
devFranca. O objetivo dele é apresentar o
framework PHP com o qual trabalho, e que acho bastante interessante para o desenvolvimento de aplicações
web. Não deixe de comentar após a leitura.

Há cerca de três anos, percebi que as aplicações estavam migrando para a web, e a partir dessa constatação decidi mudar meu foco de desenvolvimento. Até então, meu trabalho consistia em desenvolver programas para desktop, e minha ferramenta favorita era o Delphi (embora eu já tivesse trabalhado também com o VB). Eu não era nenhum estrangeiro nas terras do desenvolvimento web, tendo já trabalhado por quatro anos com o ASP, e conhecia, portanto, as limitações dessa plataforma.
Como simpatizante das tecnologias opensource, escolher o PHP foi a decisão natural. Naquele momento, eu iria iniciar um projeto PHP do zero, e percebi que reinventar a roda não seria inteligente nem produtivo. Foi daí que parti em busca de um framework, uma caixa de ferramentas mais ou menos prontas, que me poupasse o esforço de codificar muita coisa “na unha”.

Após algumas perguntas ao Grande Oráculo, deparei-me com o PRADO (sigla para PHP Rapid Application Development Object-oriented). Dentre tantos frameworks para PHP, chamou minha atenção no PRADO o seu “jeitão” inspirado no Delphi, de que tomou emprestado vários conceitos, como a utilização de componentes e eventos, além de uma hierarquia de classes nitidamente inspirada na VCL.

Hoje, o PRADO já está na versão 3.1.6 3.1.7, e pode ser baixado gratuitamente aqui aqui, sob a licença BSD revisada. O framework vem num arquivo compactado (padrão ZIP), bastando descompactá-lo, mantendo a estrutura de diretórios, numa pasta acessível pelo seu servidor web (Apache, IIS, etc.).
Pois bem, deixemos de blablablá e vamos colocar a mão na massa, criando nosso primeiro projeto em PRADO, que terá o nome de olamundo (sugestivo e original, não?). O PRADO trabalha com uma estrutura de pastas predefinida, dentro da qual criaremos alguns arquivos, conforme mostra a figura abaixo.

O arquivo index.php, que fica na pasta-raiz do projeto, terá o conteúdo seguinte:
<?php
require('path/to/prado.php');
$application=new TApplication;
$application->run();
E só. Não se esqueça de trocar <pasta do PRADO> pelo caminho da pasta onde você instalou o PRADO.
O arquivo /protected/pages/Home.page, apesar da extensão pouco usual, é apenas um arquivo HTML no qual inserimos, além das tags padrão, as tags especiais do PRADO. No nosso projeto, seu conteúdo será o seguinte:
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<h1>Olá, mundo!</h1>
<com:TForm>
Qual é o seu nome? <com:TTextBox ID="txtNome" />
<com:TButton ID="btnEnviar" Text="Enviar" OnClick="Page.btnEnviarClick" /><br />
<com:TLabel ID="lblCumprimento" />
</com:TForm>
</body>
</html>
Veja que eu negritei as tags especiais do PRADO. Elas representam os componentes, que por sua vez vão se transformar depois em código 100% HTML. Aqui, utilizei três componentes: TTextBox (que se tornará uma caixa de texto), TButton (um botão) e TLabel (uma área de texto estático, que será renderizada como <span>). Note que nesse arquivo não há nenhum código PHP, e essa é exatamente a intenção: separar o que é design do que é código, implementando assim o paradigma MVC (Model-view-controller).
O PRADO é totalmente orientado a objeto. Por isso, a toda página do aplicativo corresponde uma classe, derivada de TPage (como você pode ver logo mais abaixo). Cada classe de página requer dois arquivos, um .page (para a parte visual) e outro .php (para o código). Ambos os arquivos devem ter o mesmo nome, que deve coincidir também com o nome da classe. O padrão para a página inicial do PRADO é Home (há como alterar isso, criando um arquivo de configuração personalizado, assunto que ficará para uma próxima oportunidade). Tudo muito bom, mas cadê o código PHP? Está no arquivo /protected/pages/Home.php:
<?php
class Home extends TPage {
public function btnEnviarClick($sender, $param) {
$this->lblCumprimento->Text = "Olá, " . $this->txtNome->Text . "!";
}
}
Note que, no arquivo Home.page, há um atributo OnClick na tag do TButton, referenciando um método chamado Page.btnEnviarClick. Pois bem, esse método é implementado em Home.php. Acho que todos conseguiram sacar o que o nosso “aplicativo” vai fazer: pegar o nome digitado na caixa de texto e apresentar uma saudação a ele. Quem quiser ver a coisa funcionando ao vivo e em preto-e-branco (desculpe, gente, não deu tempo de colocar CSS para deixar coloridinho :p), clique aqui.
Esse primeiro projeto implementa um formulário pelo método postback, no qual os dados são enviados ao servidor para processamento e a página é completamente recarregada para exibir o resultado. No meu próximo post, vou mostar como, com pouquíssimas alterações, é possível transformar esse aplicativo numa chamada callback, devolvendo o resultado sem recarregar a página. Em suma, veremos como o PRADO trabalha com AJAX – e isso sem mexer numa linha sequer de Javascript!
Bom gente, aqui chega ao fim minha primeira colaboração. Espero que tenham gostado. Até mais!
Curtir isso:
Curtir Carregando...