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 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. 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:

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
                TRequiredFieldValidator

Percebam 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:

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:


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!

Eric Cavalcanti

Eric Cavalcanti - Engenheiro de Sistemas do C.E.S.A.R (Centro de Estudos e Sistemas Avançados do Recife) atuando atualmente em desenvolvimento de jogos para dispositivos móveis.