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.
Pasta de projetos |
O projeto PHP |
Pacotes do projeto |
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.
Referências:
http://php.net/docs.php - Documentação oficial do PHP
http://www.w3schools.com/php/default.asp
Nenhum comentário:
Postar um comentário