Desenvolvimento - PHP
PRADO - PHP 5 Framework
O PRADO é um PHP 5 Framework baseado em componentes e eventos, que torna o modelo de programação WEB muito similar ao ASP.NET.
por Eric CavalcantiO PRADO é um PHP 5 Framework baseado em componentes e eventos, que torna o modelo de programação WEB muito similar ao ASP.NET. Criado por Qiang Xue, o PRADO foi inicialmente inspirado no projeto Apache Tapestry. Durante o designer e implementação, o Borland Delphi e o ASP.NET tiveram um papel importante na definição do Framework. Aqueles que já conhecem essas tecnologias vão se sentir mais confortáveis no seu entendimento. Este artigo é baseado no A quickstart tutorial for PRADO que vem junto com o framework.
Instalação
O PRADO necessita do PHP 5 com a extensão SimpleXML. Você pode baixá-lo em
http://www.xisc.com/.
Depois de descompactado será criado um diretório de
nome "prado" com o seguinte conteúdo:
README.html | o arquivo README do projeto |
index.html | um arquivo com o mesmo conteúdo do README.html |
COPYRIGHT | informações de copyright |
HISTORY | informações de atualização das versões |
framework/ | o core code do PRADO framework |
examples/ | alguns exemplos |
docs/ | a documentação do PRADO |
Agora copie todo o conteúdo do diretório prado para diretório root do servidor web.
Árvore das classes de componentes
Ao escrever este artigo a última distribuição era a 1.7 que inclui as seguintes classes de componentes. Suas propriedades, eventos e métodos estão documentados no manual da API.
TComponent TAdodb TModule TControl TExpression TForm TLiteral TPage TPlaceHolder TRepeater TRepeaterItem TStatements TWebControl TButton TCheckBox TRadioButton TFileUpload TFormLabel THyperLink TImage TImageButton TLabel TLinkButton TListBox TListControl TCheckBoxList TDropDownList TListBox TPanel TTextBox TDatePicker THtmlArea TValidationSummary TValidator TCompareValidator TCustomValidator TRangeValidator TRegularExpressionValidator TEmailAddressValidator TRequiredFieldValidatorPercebam a semelhança com o Borland Delphi na nomeclatura das classes e com o ASP.NET nas classes existentes.
Olá Mundo
Como não poderia ser diferente, vamos criar nosso Olá Mundo utilizando este interessante framework.
Nós iremos precisar dos seguintes arquivos para esta tarefa:
olamundo.php | a entrada principal para a aplicação |
olamundo/application.spec | o arquivo de especificação da aplicação |
olamundo/HomePage.php | o arquivo de classe da página |
olamundo/HomePage.tpl | o arquivo de template da página |
Note, que o diretório olamundo pode ser protegido para acesso por usuários finais porque ele contém informações sensíveis da aplicação.
No arquivo olamundo.php, nós iremos iniciar uma aplicação, como mostrado abaixo:
<?php require_once("framework/prado.php"); pradoGetApplication("olamundo/application.spec")->run(); ?>Toda aplicação PRADO dever ter um arquivo de entrada que especifica a localização do arquivo de especificação da aplicação.
O application.spec é um arquivo XML que configura parâmetros à nível de aplicação, muito parecido com o web.config do ASP.NET. Para este exemplo, seu conteúdo será:
<?xml version="1.0" encoding="UTF-8"?> <application ID="olamundo"> <request default="HomePage" /> <alias name="Pages" path="." /> <using namespace="System.Web.UI.WebControls" /> <using namespace="Pages" /> </application>A diretiva <alias> define path aliases. O alias System é definido internamente referenciando o diretório que contém com o core code do framework. Você pode usar aliases para contruir namespaces. A diretiva <using> especifica o namespace usando na inicialização da aplicação (Você pode usar um namespace no código chamando a funcão using() ).
O elemento request especifica a configuração para interpretar os dados solicitados pelo usuário. O atributo default especifica a página que será exibida se nenhuma página for explicitamente solicitada pelo usuário.
O arquivo HomePage.tpl é uma template de página para a HomePage. Ele contém as seguintes linhas:
<html> <head> <title>Olá Mundo!</title> </head> <body> <com:TForm ID="formulario"> Digite seu nome: <com:TTextBox ID="txtNome" /> <com:TButton Text="Clique me" OnClick="clickMe" ID="btnOlamundo" />
<com:TLabel ID="lblOlamundo" />
</com:TForm> </body> </html> Para quem conhece ASP.NET este arquivo é muito familiar e fácil de entender. Observer as tags <com:objeto>, estas tags contém componentes do PRADO que serão renderizados como mostrado abaixo:
<com:TForm ID="formulario"> | <form name="formulario" method="post" enctype="multipart/form-data" id="formulario"> |
<com:TTextBox ID="txtNome" /> | <input id="txtNome" name="txtNome" type="text" value=""/> |
<com:TLabel ID="lblOlamundo" /> | <span id="lblOlamundo"/> |
<com:TButton Text="Clique me" OnClick="clickMe" /> | <input id="btnOlamundo" type="submit" name="btnOlamundo" value="Clique me"/> |
Nós anexamos o método da página de nome clickMe para o evento OnClick do botão. Então quando o botão for clicado pelo usuário, o método clickMe será invocado automaticamente.
O arquivo HomePage.php contém o código que define a página HomePage, como mostrado abaixo,
<?php class HomePage extends TPage { function clickMe($sender,$param) { $this->lblOlamundo->setText("Olá Mundo, ".$this->txtNome->Text."!"); } } ?>Perceba que o arquivo que vai processar os eventos do Template tem que ter o mesmo nome exceto a extensão que dever ser .php. Acesse a aplicação e digite um nome no textbox. O resultado podemos ver na figura abaixo:
O PRADO ainda possui vários recursos como viewstate, sessions, caching, validação de formulários, autenticação e autorização. Além de tornar possível a criação de componentes de forma simples e prática. Mas tudo isso são assuntos para novos artigos.
Espero que tenham gostado!