Programação Orientada a Objetos (POO) com PHP - Parte 1

jrmessias 638 views 23 slides Oct 08, 2016
Slide 1
Slide 1 of 23
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23

About This Presentation

Material do curso de Desenvolvedor para Internet no SENAC de São Miguel do Oeste-SC


Slide Content

Programação Orientada a Objetos
(POO) com PHP
(Parte 1)

Padronização de código
PHP Do Jeito Certo
PHP Standard Recommendation.
PSR-1: Basic Coding Standard
PSR-2: Coding Style Guide

Instalando php na linha de comando
Adicionar o PHP na linha de Comando (PATH)
Localizar o arquivo php.exe, copie o caminho; (ex.: C:\xampp\php)
Botão Iniciar > Sistema / Tecla Windows + Pause/Break;
No lado esquerdo escolha De?nições avançadas do sistema;
Escolher Variáveis de ambiente;
Em Variáveis de uso para [Usuario] localize PATH, dois
cliques/editar, adicione o caminho copiado;
Abra o terminal
Veri?que se o php está disponível para comando: php -v

Executando o servidor embutido do php
Digite o seguinte comando no terminal:
php -S localhost:8080
*Disponível na versão +5.4.0

Paradigmas de programação
Funcionais
Orientação a Objetos

Funcional
Baseado em funções
<?php
$a = "teste";
$arrIdades = array(6,34,18,17,25,36,89,11,46);

$filtro = function($idade){
return $idade >= 18;
};

$saida = array_filter($arrIdades, $filtro);

print_r($saida);

echo $a;

Orientação a objetos
Implementa um conjunto de classes que de?nem os objetos
presentes no sistema de software. (Wikipédia)
A grande vantagem é o reaproveitamento de código no sistema e
outros.

Classe
É o molde de algo concreto. Representa um conjunto de objetos com
características a?ns
<?php
class Pessoa{
var $dataNascimento;
var $nome;
public function imprimeDados(){
echo "Data de Nascimento: ". $this->dataNascimento;
echo "Nome: ". $this->nome;
}
public function showNome($nome){
return $this->nome;
}
}

$pessoa1 = new Pessoa();
$pessoa1->dataNascimento = "26/04/1985";
$pessoa1->nome = "Junior Messias";

$pessoa2 = new Produto();
$pessoa2->dataNascimento = "29/09/1989";
$pessoa2->nome = "Fabiana Toniolli Messias";

$pessoa1->imprimeDados();
$pessoa2->imprimeDados();

Arquivo para teste
<?php

require_once("Classe.php");

Padrão para Orientação a Objetos
Um arquivo para uma classe;
Sempre singular.
Objeto: instância de uma classe.
<?php

class Conta
{

}
$contaFulano = new Conta;
$contaCiclano = new Conta;

Atributo: são características de um objeto (variáveis).
<?php

class Conta
{
public $banco;
public $agencia;
public $codigo;
}
$contaFulano->banco = "Banco do Brasil";
$contaFulano->agencia = "599-1";
$contaFulano->codigo = "14114-4";

Método: de?nem as habilidades/ações dos objetos (funções).
<?php

class Conta
{
...
public function getCodigo(){
return $this->codigo;
}
}
...
$contaFulano->getCodigo();
$this-> refere-se ao objeto (método/atributo)

Assinatura: é composta pelo nome, quantidade dos parâmetros.
<?php

class Conta
{
...
public function setNome($nome = "Ciclano"){
$this->nome = $nome;
return $this;
}
}
...
$contaFulano->setNome("Alfredo");
$contaFulano->setNome();

Herança: uma classe pode estender outra classe, aproveitando seus
métodos e atributos possíveis.
<?php

class Conta
{
...
}
<?php

class ContaCorrente extends Conta
{
...
}

Construtor: são executados quando um objeto é criado.
<?php

class Conta
{
public function __construct(){
echo "Nova Conta criada";
}
}
<?php

class ContaCorrente extends Conta
{
public function __construct(){
echo "Nova Conta Corrente criada";
}
}

Calling parent: chamar métodos ou atributos da classe pai.
<?php

class Conta
{
public function __construct(){
echo "Nova Conta criada";
}
}
<?php

class ContaCorrente extends Conta
{
public function __construct(){
parent::__construct();
echo "Nova Conta Corrente criada";
}
}

Modi?cadores de acesso: Public, Private e Protected.
public: visibilidade total, pode ser redeclarada (padrão);
private: acesso somente dentro da mesma classe, não pode ser
redeclarada;
protected: acesso na própria classe e ?lhas.

Abstract: em classes é um template de classes, molde. Não pode ser
instanciada.
<?php

abstract class Conta
{
public function __construct(){
echo "Nova Conta criada";
}
}

Abstract: em método obriga as demais classes a implementar este
método.
<?php

class Conta
{
...
abstract public function getSaldo();
}
<?php

class ContaCorrente extends Conta
{
...
public function getSaldo(){
return $this->saldo;
}
}

Interface: é um contrato entre a classe e o mundo externo.
<?php

interface ContaInterface
{
abstract public function getSaldo();
}
<?php

class Conta implements ContaInterface
{
abstract public function getSaldo();
}
Sempre programe pra interface

That's all folks!