PHP Conference 2008

Category : geral, PHP

O PHP Conference deste ano irá se chamar CONAPHP (Congresso Nacional de PHP) e será abrigado pelo CONISLI.

Diferente do ano passado, o evento será realizado em São Paulo (ainda bem, porque Osasco é longe demais) na faculdade FIAP que fica na Av. Lins de Vasconcelos, 1264, bairro Aclimação, nos dias 18 e 19 de outubro. Os valores vão (iam) de R$ 30,00 à R$ 100,00 se você deixar para o último dia.

Mais uma vez, como no ano passado, a programação das palestras ainda não foi divulgada (pelo menos não até a data deste post), e quem esteve esperando para ver se valia a pena ir ao evento pelo conteúdo, não poderá mais aproveitar o preço de abertura, ou seja, os organizadores apostam que todos dêem um tiro no escuro para se inscrever em um evento que não se sabe a programção… well wathever…

As palestras internacionais já estão definidas, teremos Andrei Zmievski, que falará sobre o Unicode do PHP6 (exatamente a mesma coisa que o Lucas Smith veio falar ano passado) e o meu bom amigo Cesar Rodas que irá falar sobre seu projeto  no GSoC2008 para o worpress.

Não alimento grande expectativa para esse evento… mas vamos aguardar, talvez a organização venha com alguma surpresa
 

Tags BlogBlogs: php, conaphp, php conference, conisli

Era uma vez…

Category : PHP

 

Hoje, chega ao fim a versão 4 do PHP, foram 4 longos anos desde o lançamento da versão 5 e agora encerrada oficialmente.

Para aqueles que veem isso com um certo temor, não se preocupem, o PHP5 não é um bicho de 7 cabeças e as melhorias implementadas nele não serão dificil de serem absorvidas pelos novatos… a diferença estará apenas na orientação a objetos.

 

Tags BlogBlogs: php

Webservice com WSDL no PHP

17

Category : PHP

 

Criar Webservices no PHP é uma tarefa realtivamente simples, a grande dificuldade esta em gerar WSDL´s. Isso acontece porque apesar do PHP5 trazer grandes funcionalidades nesse campo, ele não gera o WSDL. Para ajudar, criar WSDL´s é extremamente complexo, com todas as suas variações e opções.

Quando disposnibilizamos um webservice para a plataforma PHP é facil e muito rápido de ser feito, apenas algumas linhas de código para o server e para o client são suficientes para realizar a transação.

Exemplo1:

server.php:

<?php

 
      /*
       * Função utilizada para autenticar o usuário na rede.
      */
    function Auth($login, $senha){
   
      if(trim($login) == NULL){
          return 0;
      }
   
      $dbconn = pg_connect("host=10.0.0.1 port=5432 dbname=database user=master password=master");
      $query = "select count(*) from usuarios where login=’".$login."’ and pass=’".$senha."’";
   
      $result =  pg_query($dbconn, $query);
   
      return $row[0]; // retorna 1 se validar, retorna 0 se não validar
   
   
    } 
 
  $server = new SoapServer(null, array(‘uri’ => ‘http://auth.localhost.com.br/ws_auth/’)); // cria o ambiente para servir o webservice

  $server->addFunction("Auth"); // adiciona a função de autenticação ao escopo

  $server->handle();

 
?>
 

cliente.php:

<?php

    /**
     * Cria uma instancia do webservice
     */

    $client = new SoapClient(null,array(
    ‘location’ => ‘http://auth.localhost.com.br/ws_auth/server.php’,
    ‘uri’ => ‘http://auth.localhost.com.br/ws_auth/’,
    ‘trace’ => 1));

    /**
     * Para charmar a autenticação deve-se passar o login e a senha que ser quer validar como segue
     *
     * $result = $client->Auth(‘login’,'senha’);
     *
     */
   
       $result = $client->Auth(‘usuario’,'senha’);
    
      
       /**
        * resultado da autenticação
     *
     */
    print_r($result);
 
?>
 

E pronto, muito simples não? O problema é que esse tipo de webservice não é processado por outras plataformas por não gerar WSDL. Plataformas como .NET, JAVA e RUBY precisa de um WSDL para seguir o modelo do objeto que será gerado. Para resolver isso, você pode criar um WSDL seguindo as especificações do W3C (http://www.w3.org/TR/wsdl) ou usar alguma classe de terceiro.

Temos:

Eu já trabalhei com NuSOAP mas deixei de lado, pois ela possui um nome que entra em conflito com uma função nativa do PHP, e para evitar dores de cabeça na distribuição eu resolvi optar por outra classe. Eu escolhi a Webservice Helper tool, por sua facilidade de uso. Todas as classes acima são utilizadas em ambiente de produção, basta escolher a que se adeque melhor ao seu uso.

A Webservice Helper tool consegue criar WSDL com PHP de uma maneira muito fácil e direta. Basicamente se escreve uma classe, adiciona essa classe ao escopo e pronto, o WSDL está pronto para usar, não vou por um exemplo completo aqui para não ficar com o post muito longo, caso tenha alguma dúvida me mande um e-mail. A classe é bem explicada e possui um exemplo muito bom. Você pode baixa-la aqui.

 

Tags BlogBlogs: php, wsdl no php, wsdl, webservice, webservice com php