sexta-feira, 13 de março de 2015

Um primeiro contato: PHP

Bem vindo ao Preciso Estudar Sempre. O tema dessa semana será algo nunca visto aqui antes. Hoje falaremos de uma linguagem de programação a qual, não é Java. Hoje, falaremos de PHP mas, porque PHP ? Porque essa mudança agora ? Bem, vamos às respostas !

Pergunta: porque PHP ?
Resposta: Escolhi PHP porque é uma linguagem que é muito usada, rápida, fácil e poderosa. Já faz tempo que eu quero aprender e falar sobre PHP.

Pergunta: Porque essa mudança agora ?
Resposta: Resolvi realizar essa mudança para que todos nós possamos aprender coisas novas visando, adicionar ao nosso canivete novos conhecimentos.

Para quem não está se aguentando, clique aqui e baixe o projeto.

Não fique achando que você terminará de ler esse post e será considerado um expert PHP. O que iremos abordar aqui é um exemplo simples. O começo da estrada do aprendizado.

O PHP é uma linguagem de programação que não é compilada, é interpretado. Você escreve seu código e põe ele no servidor de aplicações e pronto ! Está funcionando !

Com isso, nosso processo de desenvolvimento será mais rápido que o Java. O servidor de aplicações é o responsável por analisar o que escrevemos e interpretar os comandos utilizados. O PHP em sua versão 5 oferece suporte a orientação à objetos. Porém, ela não foi feita para ser OO. Existe uma grande diferença entre você ter uma linguagem que nasceu OO e uma linguagem que oferece suporte à OO.

OBS.: Para falar de OO, usaremos o Java como exemplo.

Enquanto no Java, você é obrigado a criar no mínimo uma classe com um método para começar a trabalhar, no PHP você não precisa disso. Basta somente, criar um arquivo com extensão .php, abrir um editor de texto qualquer e começar a programar ali. Obviamente que existem vantagens e desvantagens. O Java é fortemente OO e compilado, ele te oferece uma organização e uma estrutura bem definida mas, o desenvolvimento no PHP é muito mais rápido mas, você abre mais brechas à uma programação mal feita.

Desapegue da idéia da linguagem perfeita. Isso não existe. Em TI não existem balas de prata.

Para começarmos a desenvolver em PHP, precisaremos das ferramentas abaixo:

  • Um editor de texto (Sublime Text).
  • Um programa que tenha servidor de aplicações, banco de dados e administração de dados (WAMP ou EasyPHP). Eu uso o EasyPHP.
  • Um navegador.
IMPORTANTE: Se você já tiver o MySQL instalado na sua máquina, você vai precisar terminar o processo dele para que o WAMP ou o Easy possa levantar seu próprio processo do MySQL. Se você não fizer isso o WAMP ou Easy não vai conseguir realizar o start.

Vamos por mãos à obra.

Crie uma pasta na pasta de projetos da ferramenta (WAMP ou Easy) e escolha um nome para o seu projeto. Caso seja o WAMP é a pasta www, caso seja o Easy é a pasta projects.

Pasta de projetos
O projeto PHP
Dentro da pasta do projeto crie três pastas: controller, view e model.

Pacotes do projeto
Dentro da pasta controller, crie o arquivo Controller.php, dentro da pasta view, crie a página pagina.html e dentro da pasta model crie o arquivo Cliente.php.

pagina.html
 <!DOCTYPE html>  
 <html> 
 <head> 
      <title>Preciso Estudar Sempre</title> 
 </head> 
 <body> 
      <form method="POST" action="../controller/Controller.php">           
           <div>               
                <label for="nome">Nome</label> 
                <input type="text" name="nome" /> 
           </div> 
           <div>               
                <label for="email">Email</label> 
                <input type="text" name="email" /> 
           </div> 
           <div>               
                <label for="dtNascimento">Data de nascimento</label> 
                <input type="text" name="dtNascimento" /> 
           </div> 
           <div>               
                <label for="rg">RG</label> 
                <input type="text" name="rg" /> 
           </div> 
           <div>               
                <label for="cpf">CPF</label> 
                <input type="text" name="cpf" /> 
           </div> 
           <input type="submit" value="Confirmar" /> 
      </form> 
 </body> 
 </html> 

Cliente.php
 <?php   

 /** 
 *  
 */ 
 class Cliente { 
      private $id; 
      private $nome; 
      private $email; 
      private $dtNascimento; 
      private $RG; 
      private $CPF; 

      function __construct() { } 

      public function getId(){ 
           return $this->id; 
      } 

      public function setId($id){ 
           $this->id=$id; 
      } 

      public function getNome(){ 
           return $this->nome; 
      } 

      public function setNome($nome){ 
           $this->nome=$nome; 
      } 

      public function getEmail(){ 
           return $this->nome; 
      } 

      public function setEmail($email){ 
           $this->email=$email; 
      } 

      public function getDtNascimento(){ 
           return $this->dtNascimento; 
      } 

      public function setDtNascimento($dtNascimento){ 
           $this->dtNascimento=$dtNascimento; 
      } 

      public function getRG(){ 
           return $this->RG; 
      } 

      public function setRG($RG){ 
           $this->RG=$RG; 
      } 

      public function getCPF(){ 
           return $this->CPF; 
      } 

      public function setCPF($CPF){ 
           $this->CPF=$CPF; 
      } 
 } 
  ?> 

Controller.php
 <?php   

 /** 
 *  
 */ 
 require_once("../model/Cliente.php"); 

 class Controller { 

      function __construct() { } 

      public function exibirDados(){ 
           $cliente = $this->construirCliente($_REQUEST); 
           echo "<h1>Dados do cliente</h1> <br/>"; 
           echo "Id: " . $cliente->getId() . "<br/>"; 
           echo "Nome: " . $cliente->getNome() . "<br/>"; 
           echo "Email: " . $cliente->getEmail() . "<br/>"; 
           echo "Data de nascimento: " . $cliente->getDtNascimento() . "<br/>"; 
           echo "RG: " . $cliente->getRG() . "<br/>"; 
           echo "CPF: " . $cliente->getCPF() . "<br/>"; 
      } 

      public function construirCliente($request){ 
           $cliente = new Cliente();           
           $cliente->setId(1); 
           $cliente->setNome($request['nome']); 
           $cliente->setEmail($request['email']); 
           $cliente->setDtNascimento($request['dtNascimento']); 
           $cliente->setRG($request['rg']); 
           $cliente->setCPF($request['cpf']); 
           return $cliente; 
      } 
 } 
 $controller = new Controller(); 
 $controller->exibirDados(); 
  ?> 

Vamos às explicações !!

Você já deve estar irritado com o $ em todo o canto no código. Isso acontece porque em PHP as referências à variáveis são feitas com o cifrão, ou seja, toda variável ou atributo deve usar o cifrão. Outra coisa que você deve ter reparado foi a seta usada. A seta (->) é usada para acesso de métodos e atributos, é igual ao ponto (.) do Java.

Em Java: meuObjeto.foo();

Em PHP: $meuObjeto->foo();

IMPORTANTE: PHP não é case sensitive, ou seja, acessar o método getNome ou getnome resulta na mesma coisa.

O construtor da classe é representado function __construct() { } e ele se comporta como um construtor qualquer. Porém, PHP não suporta sobrecarga logo, você não conseguirá criar vários construtores e métodos com o mesmo nome.

Outro ponto peculiar é no uso do comando echo. Este comando serve para imprimir informações. O ponto serve para realizar a concatenação dos dados assim como, o + é usado no System.out.println do Java.

Para acessar elementos da própria classe, ou seja, atributos e métodos, deve-se usar o $this->meuMetodo ou $this->meuAtributo. Isto acontece porque o PHP não consegue associar automaticamente que, chamadas à metodos ou atributos que não são precedidos de um objeto são da própria classe ou de uma superclasse.

Como é possível concluir, é necessário muito pouco para criar um projeto php e muito pouco para realizar seu deploy. Espero que este post tenha sido um ótimo guia introdutório para o desenvolvedor que nunca teve contato com a linguagem.

Sugestões ?! Críticas ?! Elogios ?! 

Deixe aí nos comentários ou na nossa página do facebook.


Referências:
http://php.net/docs.php - Documentação oficial do PHP
http://www.w3schools.com/php/default.asp

Nenhum comentário: