Novidades do Delphi for PHP 2.0

Veja o que há de mais interessante na nova versão da IDE Delphi for PHP 2.0

 

Neste artigo veremos

         Novidades do Delphi for PHP 2.0;

         Principais atualizações do editor de códigos;

         Principais atualizações da IDE.

Qual a finalidade?

         Mostrar o que há de mais novo na versão 2.0 do Delphi for PHP;

Quais situações utilizam esses recursos?

         Aplica-se a toda d qualquer aplicação desenvolvida com Delphi for PHP;

Resumo do DevMan

O Delphi for PHP vem ganhando mercado desde que foi lançando no início do ano. Agora em sua versão 2.0 traz inovações que vão além do que se esperava. Novas facilidades no editor de códigos, suporte a novos bancos de dados, agilidade na ferramenta e maior produtividade são os pontos fortes da IDE.

No início desse ano a CodeGear from Borland lançou um projeto até então ousado. O projeto chama-se Delphi for PHP: uma IDE totalmente voltada ao desenvolvimento de Web Sites na linguagem PHP. Ousado porque até o momento não havia nenhuma IDE (Integrated Development Enviroment) de desenvolvimento PHP realmente RAD (Rapid Application Development) o que torna a ferramenta única.

O maior desafio, em minha opinião, é, sem dúvida nenhuma, criar uma ferramenta que seja realmente útil a comunidade PHP e que possa agilizar o processo de desenvolvimento de sites. Quem desenvolve ou já desenvolveu soluções Web com PHP sabe do que estou falando. Eu mesmo desenvolvi diversos sites utilizando a linguagem digitando meus códigos no Bloco de Notas. Isso mesmo! No Bloco de Notas do Windows. Claro, depois de alguns meses de apuros acabei dando o braço a torcer e passei a usar ferramentas especializadas em código HTML como o Dreamweaver da antiga Macromedia ou o HotDog da Sausane Tools.

De fato, ambas ferramentas me ajudaram bastante ao logo dos tempos, mas são apenas editores HTML, não provêem os principais recursos de uma ferramenta de desenvolvimento, tais como: sintax highlight, depuradores de código step-by-step, log de erros e tão pouco Code Insight ou Intellisense. Resumindo: para PHP acabam virando um super-notepad.

Acabei abandonando o pouco o desenvolvimento Web com PHP em vista da grande quantidade de trabalho que desprende qualquer desenvolvimento Web.

Com o surgimento do Delphi for PHP uma nova luz no fim do túnel se abriu. É perfeitamente possível arrastar e soltar um controle em tela, programar uma funcionalidade, codificar um evento de forma rápida e legível. Já na versão 1.0 é possível desenvolver aplicações completas utilizando a ferramenta, sem restrições e com total agilidade. Um exemplo bastante completo e totalmente desenvolvido em Delphi for PHP 1.0 pode ser visto no link www.delphisophp.com do meu amigo e colunista DevMedia Rodrigo Mourão.

O mais interessante é que a ferramenta vem ganhando espaço e adeptos rapidamente. Com isso a CodeGear from Borland tratou de agilizar o processo de desenvolvimento da IDE e lançou a segunda versão do produto com novas features, correção de bugs e muitas novidades.

Nesse artigo veremos os principais aspectos da nova versão do Delphi for PHP 2.0, algumas novidades e segredos da nova IDE.

Suporte a linguagem

Acredito que uma das novidades que deve surpreender os usuários da ferramenta no Brasil é o seu suporte a linguagem Português. Isso mesmo! O Delphi for PHP 2.0 pode ser instalado em Português bem como nas linguagens Alemão, Inglês e Espanhol como podemos ver nas Figuras 1, 2 e 3 que fazem parte das telas introdutórias a instalação da ferramenta. Esse foi o primeiro produto CodeGear a ser lançado totalmente em Português, o que acaba facilitando o aprendizado.

Figura 1. Seleção de idioma na instalação do Delphi for PHP 2.0


Figura 2. Tela de boas vindas do Delphi for PHP 2.0


Figura 3. Suporte a linguagens no Delphi for PHP 2.0

Aperfeiçoamentos no IDE

Atendendo a pedidos, a ferramenta foi bastante modificada no que diz respeito a IDE. Um recurso, que já havia sido incorporado as últimas versões do Delphi for Win32, também foi incluída no Delphi for PHP 2.0. Agora ao arrastar um componente em tela, o Delphi for PHP 2.0 localiza o controle que está próximo de seu alinhamento e traça uma linha para orientar quem está alinhando os controles em tela como podemos ver nas Figuras 4 e 5.


Figura 4. Alinhamento de componentes



Figura 5. Alinhamento de componentes

 Experimente colocar diversos controles em tela e arrastá-los para que se alinhem a outros componentes. Com esse recurso conseguimos montar mais rapidamente nossas páginas obtendo também maior precisão entre um controle e outro. Veja a aplicação final rodando no browser depois de feitos os alinhamentos (Figura 6).


Figura 6. Página rodando depois do alinhamento de controles

A lentidão de resposta as modificações no Object Inspector também foi revisada. Agora, modificações de propriedades fazem com que os objetos em tela sejam alterados instantaneamente, muito mais rápido do que na versão anterior. O ganho de produtividade aumentou bastante com a nova versão.

Na Figura 7 podemos ver outras modificações na IDE, como por exemplo, o filtro para componentes na paleta. Agora basta clicar no ícone funil ou clicar no título da Tool Palette e começar a digitar o nome do componente, assim como já estamos acostumados na versões mais novas do Delphi para Win32. A ferramenta nos traz somente os componentes que se iniciam com a palavra que digitamos, facilitando a procura por um controle.

Também podemos notar que existem outras paletas de componentes, como MySQL, Oracle, jQuery, PEAR e Zend. As paletas MySQL e Oracle, por exemplo, contém controles de acesso a dados nativamente, facilitando o acesso aos bancos de dados Oracle e MySQL.


Figura 7. Paletas de componentes

Editor de códigos

Com certeza a maior atenção foi dada ao editor de códigos do Delphi for PHP 2.1. São muitas as modificações. Uma delas foi o Code Folding. Esse recurso é bastante interessante e totalmente prático para quem possui códigos longos na aplicação. Com ele é possível esconder parte do código de um determinado evento ou função, facilitando a visualização do restante do código. Experimente pressionar F12 para visualizar o código da aplicação e perceba que em determinadas partes do editor existe um sinal de “+” ou “-” ao lado do procedimento. Por exemplo, veja na Listagem 1 a declaração das variáveis do formulário exibido anteriormente.

Listagem 1. Declaração de variáveis

//Class definition

class Unit1 extends Page

{

       public $Button2 = null;

       public $Button1 = null;

       public $CheckBox1 = null;

       public $RadioButton2 = null;

       public $RadioButton1 = null;

       public $Label4 = null;

       public $Label3 = null;

       public $Edit4 = null;

       public $Edit3 = null;

       public $Label2 = null;

       public $Edit2 = null;

       public $Edit1 = null;

       public $Panel1 = null;

       public $Label1 = null;

       public $Image1 = null;

}

Na Figura 8 é possível ver o mesmo código, porém ao lado existe um sinal de “-” bem próximo a palavra reservada class. Para simular o exemplo, crie uma tela semelhante a mostrada na Figura 6 e então vá até o editor de códigos. Localize o sinal e clique nele. Verá que o código é ocultado (Figura 9).


 

Figura 8. Code Folding



Figura 9. Code Folding ativado

Também é possível alterar simultaneamente diversas partes de um código ao mesmo tempo, como por exemplo modificar um nome de uma determinada variável. Vejamos como isso funciona.

Em sua aplicação arraste um botão para a tela e no evento OnClick dele digite um código semelhante ao mostrado a seguir:

       function Button1Click($sender, $params)

       {

         $teste = "Olá mundo!";

         $teste = "Hello World";

         print $teste;

       }

Note que a variável $teste se repete várias vezes no código. Caso precisássemos fazer a alteração do nome dessa variável para $ola, não precisamos digitar em vários lugares ao mesmo tempo. Basta selecionar todo o trecho de código e notar que a esquerda do editor aparece o ícone Create sync range, que é semelhante a dois lápis (Figura 11).


Figura 10. SyncEdit em ação

Basta clicar no lápis para que todo o conteúdo no interior da seleção se altere como na Figura 11. Veja que é possível clicar na primeira referência a variável $teste e começar a digitar. Todo o restante do código será simultaneamente alterado (Figura 12).



Figura 11. Marcação para uso de SyncEdit


 

Figura 12. Alteração da variável

Nota: O recurso de SyncEdit também está disponível no BDS 2006 e RAD Studio 2007.

 Aproveite e note uma outra diferença, dessa vez mais sutil. Ao lado esquerdo do editor de códigos vemos uma pequena faixa amarela na vertical que vai justamente da primeira chave da função até a linha que contém o print $ola_mundo. Isso indica que o código foi alterado nesse trecho, facilitando ainda mais a vida do desenvolvedor. Agora é possível saber exatamente quais trechos do código-fonte foram alterados desde a última gravação.

E as alterações não param por ai. Experimente apagar a letra “T” da funções print no trecho de código a seguir:

       function Button1Click($sender, $params)

       {

         $ola_mundo = "Olá mundo!";

         $ola_mundo = "Hello World";

         prin $ola_mundo;

       }

Perceba que é variável $ola_mundo encontra-se sublinhada por uma linha vermelha, como no Word quando encontra uma palavra incorreta. Esse é o recurso Error Code que indica que algo está errado nessa linha (Figura 13), nesse caso falta a letra que retiramos.

 

Figura 13. Error code em ação

Além do Error Code, ainda foram implementados os recursos de Code Insight e Code Completion já conhecidos no Delphi for Win32 e Delphi for .net. Junto com os recursos já mencionados, temos também o Help Insight que mostra uma ajuda a função que se está digitando. Vamos fazer um teste. Nessa mesma aplicação, vá ao editor de código no evento OnClick do Button1 e digite o código a seguir e pressione Ctrl + barra de espaço após o último sinal maior: 

$this->$Edit1->

Note que a tela de Help Insight aparece com explicações para cada método que é digitado. Digite por exemplo a letra “g” e perceba a mudança. A Figura 14 mostra claramente o que acontece. Veja que a direita do editor aparece o comentado Help Insight com as explicações para o método getjsOnLoad.

 

Figura 14. Help Insight funcionando

Suporte a banco de dados

É notável o suporte a outros bancos de dados na nova versão da IDE. Agora nativamente podemos nos conectar rapidamente aos bancos de dados DB2, Oracle, Informix, MSSQL, ASA, ASE e PostgreSQL como podemos ver na Figura 15 quando antes o suporte era sobre ao MySQL e Interbase.


 

Figura 15. Suporte a diversos bancos de dados

Como exemplo, faremos um pequeno formulário de cadastro para acesso ao MSSQL. Crie um banco de dados no MSSQL com o nome Loja_Virtual. Usarei o Microsoft SQL Server 2005 Express, versão gratuita do SQL Server em conjunto com o Microsoft SQL Server Management Studio Express para criar o banco e a tabela. Não entrarei em detalhes quanto ao download, instalação e criação do banco e tabelas necessárias por não fazer parte do escopo desse artigo.

Crie uma tabela chamada Clientes com a estrutura descrita na Figura 16. Em seguida, retorne ao Delphi for PHP e clique na aba Data Explorer. Localize o item MSSQL e clique com o botão direito do mouse sobre ele. Clique agora na opção Register DataBase. Preencha os dados requeridos e confirme. Em seguida expanda o item criado, localize o nome da tabela Clientes e arraste-a para a página. Verá que um DBGrid será criado em conjunto com alguns componentes de acesso a dados, assim como na Figura 17.


 

Figura 16. Estrutura da tabela


 

Figura 17. Exemplo de tela de cadastro

O componentes já estão todos completamente configurados, agora basta rodar a aplicação e testar normalmente. Veja que tudo funciona perfeitamente. Claro, funções e validações específicas terão que ser feitas, mas já dá pra ter uma idéia do poder da ferramenta. 

Conclusão

O Delphi for PHP tem se mostrado realmente uma ferramenta de bastante poder e com grandes chances de se tornar uma excelente IDE de desenvolvimento para a linguagem PHP. Nesse artigo vimos as suas principais características e atualizações da nova versão. Procure estudar mais da ferramenta e filiar-se a grupos de discussão afim de extrair o máximo dela. Boa sorte e até a próxima.