DevSecOps

18 abr, 2007

Delphi For PHP

Publicidade

Bom pessoal, esse é o meu primeiro artigo no iMasters e falarei sobre o Delphi For PHP.

Essa nova plataforma de desenvolvimento promete revolucionar o desenvolvimento web, integrando o PHP ao Delphi, com um ambiente gráfico totalmente visual e ainda com um depurador, conexões inteligentes com MySQL e interbase. Ele utiliza uma biblioteca de classes do PHP5 integrada, chamada de VCL.

Os componentes VCL aparecem na barra de objetos e incluem botões, labels, check boxes, imagens, DHTML, menus, componentes de acesso da dados, objetos Flash e muito mais.

Para baixar a versão trial, basta visitar o site http://www.codegear.com e selecionar o programa. Você deve preencher uma ficha de cadastro para depois fazer o download. Após isso deverá selecionar um outro link para que seja enviado para seu e-mail um arquivo para a liberação do produto por 14 dias.

Agora, vamos colocar a mão na massa…

Este é um pequeno exemplo com uma conexão ao banco de dados, na qual irá mostrar uma tabela específica através de uma consulta criada pelo objeto query.

Depois de instalado o sistema, ele irá apresentar a tela abaixo:

Eu que não sou programador de Delphi e sim de PHP (mas programador é sempre programador) não tive muitos problemas com sua utilização. É claro que essa não é a versão final e podem apresentar alguns bugs, mas podemos claramente ter idéia do que nos espera. Seu ambiente é muito semelhante ao Delphi:

  • À esquerda superior uma biblioteca criada de acordo com os objetos que são utilizados no formulário;
  • À esquerda abaixo as propriedades do objetos, eventos de cada objeto criado;
  • À direita superior os formulários criados durante o desenvolvimento do projeto
  • À direito inferior os objetos a serem utilizados.

De início, vamos criar uma conexão com um banco de dados MySQL.

Para isso, selecione File->New->Application

Se você escolher Other, ainda poderá optar por trabalhar com outras linguagens, estilos e projetos

Em sua barra de ferramentas (Tool Palette), vamos escolher o item Data Access, clicar duas vezes sobre os itens Database, DataSource e Query ou clicar e arrastar para o formulário.

Aproveitando, vamos criar um BDGrid que se encontra logo abaixo em Data Controls, onde este será mostrado o resultado da query. Seu form irá ficar assim:

Pode-se alinhar os objetos, redimencionar de acordo com a preferência de cada um.

Ao clicar em algum item do formulário, a sua barra de propriedades do objeto (Object Inspector) irá mudar de acordo com objeto selecionado.

Inicialmente vamos ao Database:

DatabaseName: você irá escolher qual o nome do banco de dados irá conectar|

DriverName: que tipo de driver você irá utilizar para a conexão|

Host: onde irá conectar|

UserName: [c]nome do usuário do banco de dados[/c]|

UserPassword: [c]senha do usuário do banco de dados [/c]

Em Query você deve informar por qual conexão você irá conectar e o SQL que deseja realizar. Nesse caso mandei listar todos os usuários da tabela user, padrão do banco de dados. As outras opções dependem de como você vai realizar a consulta, seja em ordem crescente, descrescente, com filtros, parâmetros, quantos registros (Limit Count).

Em Datasource, na propriedade DataSet, você irá localizar a query na qual irá fazer a consulta:

Para que seu DBGrid possa exibir o conteúdo da tabela, deverá ser informado por qual o DataSource ele deverá conectar.

Pronto, quase lá.

Feito isso, clique duas vezes sobre o formulário e vamos ao código:

O formulário irá criar toda a estrutura de biblioteca que será usada em seu projeto. Para esse nosso pequeno exemplo, basta incluir apenas duas linhas no código, dentro da função que se refere ao formulário, function Unit1Create.

Deverá ficar assim:

<?php

        //Includes Bibliotecas usadas no projeto

        require_once("vcl/vcl.inc.php");

        use_unit("dbgrids.inc.php");

        use_unit("db.inc.php");

        use_unit("dbtables.inc.php");

        use_unit("forms.inc.php");

        use_unit("extctrls.inc.php");

        use_unit("stdctrls.inc.php"); 

        //Class definition

        class Unit1 extends Page

        {

               # Informa que os objetos criados serão de propriedade pública

           public $DBGrid1 = null;

               public $Query1 = null;

               public $Datasource1 = null;

               public $Database1 = null; 

           # Função que se refere ao formulário 

               function Unit1Create($sender, $params)

               {

                    # Ao iniciar a página, será aberta a conexão e executada a query que foi criada

                    $this->Database1->Open();

                    $this->Query1->Open();

               } 

        } 

        global $application; 

        global $Unit1; 

        //Creates the form

        $Unit1=new Unit1($application); 

        //Read from resource file

        $Unit1->loadResource(__FILE__); 

        //Shows the form

        $Unit1->show(); 

?>

Como no Delphi, ao começar a digitar, o sistema começará informando o que deseja fazer, qual objeto, propriedade, função irá utilizar. O delimitador entre eles, que em muitas linguagens é o ponto final (.), no Delphi for PHP, é hífen maior (->). Em qualquer instante basta pressionar a tecla Ctrl e barra de espaços que ele irá lhe mostrar as opções.

Ao rodar o seu script (F9), será solicitado um lugar, geralmente em

C:\Documents and Settings\<usuario>\Meus documentos\Delphi for PHP Projects\Exemplo1

Como resultado, em seu navegador será exibida a tabela:

Nessa tabela é possível fazer alterações e salvá-las instantaneamente, mudar a posição das colunas, modo de ordenação e escolher quais colunas deseja exibir (para isso, basta clicar no canto superior direito e marcar ou desmarcar as colunas).

Espero ter contribuído.