Programação Orientada a Objetos (POO) com PHP - Parte 1
jrmessias
638 views
23 slides
Oct 08, 2016
Slide 1 of 23
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
About This Presentation
Material do curso de Desenvolvedor para Internet no SENAC de São Miguel do Oeste-SC
Size: 153.4 KB
Language: pt
Added: Oct 08, 2016
Slides: 23 pages
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
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;
}
}
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