|
PRADO - Framework para PHP5
por Eric de Oliveira Cavalcanti
O PRADO é um PHP 5 Framework baseado em componentes e eventos, que torna o modelo de programação WEB muito similar ao ASP.NET. Estarei dando uma introdução à esse framework nesse artigo.
|
O 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.
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.
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
TRequiredFieldValidator
|
Percebam a semelhança com o Borland Delphi na nomeclatura das classes e com o ASP.NET nas classes existentes.
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:
<table width="508" border="1">
<tr>
<td width="184">olamundo.php</td>
<td width="308">a entrada principal para a aplicação</td>
</tr>
<tr>
<td>olamundo/application.spec</td>
<td>o arquivo de especificação da aplicação</td>
</tr>
<tr>
<td>olamundo/HomePage.php</td>
<td>o arquivo de classe da página</td>
</tr>
<tr>
<td>olamundo/HomePage.tpl</td>
<td>o arquivo de template da página</td>
</tr>
</table>
|
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 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 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. Observe as tags , 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."!");
}
}
?>
|
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!
|
|
|