SlideShare uma empresa Scribd logo
1 de 22
Baixar para ler offline
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:xamppphp)
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 método/atributo do objeto (instância) atual
Assinatura: é composta pela quantidade de 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, Protected e Private.
public: visibilidade total, pode ser redeclarada (padrão);
protected: acesso na própria classe e lhas.
private: acesso somente dentro da mesma classe, não pode ser
redeclarada;
Abstract: em classes é um template de classes, molde.
<?php
abstract class Conta
{
public function __construct(){
echo "Nova Conta criada";
}
}
Classes abstratas não podem ser instanciadas.
Abstract: em método não possuem corpo.
<?php
class Conta
{
abstract public function getSaldo();
}
<?php
class ContaCorrente extends Conta
{
public function getSaldo(){
return $this->saldo;
}
}
Obriga as demais classes a implementar este método
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!
Marp (https://yhatt.github.io/marp/)

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Estrutura de dados em Java - Pilhas
Estrutura de dados em Java - PilhasEstrutura de dados em Java - Pilhas
Estrutura de dados em Java - Pilhas
 
Curso MySQL #07 - Manipulando Registros DELETE UPDATE
Curso MySQL #07 - Manipulando Registros DELETE UPDATECurso MySQL #07 - Manipulando Registros DELETE UPDATE
Curso MySQL #07 - Manipulando Registros DELETE UPDATE
 
Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)
 
Python e django na prática
Python e django na práticaPython e django na prática
Python e django na prática
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a Objetos
 
POO - 14 - Vetores
POO - 14 - VetoresPOO - 14 - Vetores
POO - 14 - Vetores
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dados
 
Estrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e FunçõesEstrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e Funções
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScript
 
Curso MySQL #05 - Inserindo Dados INSERT INTO
Curso MySQL #05 - Inserindo Dados INSERT INTOCurso MySQL #05 - Inserindo Dados INSERT INTO
Curso MySQL #05 - Inserindo Dados INSERT INTO
 
MySQL #06 - Modificando Estrutura ALTER TABLE
MySQL #06 - Modificando Estrutura ALTER TABLEMySQL #06 - Modificando Estrutura ALTER TABLE
MySQL #06 - Modificando Estrutura ALTER TABLE
 
Exception handling in java
Exception handling in javaException handling in java
Exception handling in java
 
Aprendendo a Usar o Netbeans
Aprendendo a Usar o NetbeansAprendendo a Usar o Netbeans
Aprendendo a Usar o Netbeans
 
C Basics
C BasicsC Basics
C Basics
 
Encapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosEncapsulamento em Orientação a Objetos
Encapsulamento em Orientação a Objetos
 
Java inheritance
Java inheritanceJava inheritance
Java inheritance
 
Programando com Python
Programando com PythonProgramando com Python
Programando com Python
 
Exception handling in python
Exception handling in pythonException handling in python
Exception handling in python
 
POO - 16 - Polimorfismo
POO - 16 - PolimorfismoPOO - 16 - Polimorfismo
POO - 16 - Polimorfismo
 
Cracking OCA and OCP Java 8 Exams
Cracking OCA and OCP Java 8 ExamsCracking OCA and OCP Java 8 Exams
Cracking OCA and OCP Java 8 Exams
 

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

Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01
joaocarlobarros
 
As novidades do PHP5 (2005)
As novidades do PHP5 (2005)As novidades do PHP5 (2005)
As novidades do PHP5 (2005)
Pablo Dall'Oglio
 

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

Fundamentos da Programação PHP OO - Aula 3
Fundamentos da Programação PHP OO - Aula 3Fundamentos da Programação PHP OO - Aula 3
Fundamentos da Programação PHP OO - Aula 3
 
Aprofunde se no php 5.3
Aprofunde se no php 5.3Aprofunde se no php 5.3
Aprofunde se no php 5.3
 
5 Maneiras de melhorar seu código PHP
5 Maneiras de melhorar seu código PHP5 Maneiras de melhorar seu código PHP
5 Maneiras de melhorar seu código PHP
 
Dev Ext PHP
Dev Ext PHPDev Ext PHP
Dev Ext PHP
 
Qualidade no desenvolvimento de software com PHPUnit
Qualidade no desenvolvimento de software com PHPUnitQualidade no desenvolvimento de software com PHPUnit
Qualidade no desenvolvimento de software com PHPUnit
 
Desenvolvimento Web com PHP - Aula 3
Desenvolvimento Web com PHP - Aula 3Desenvolvimento Web com PHP - Aula 3
Desenvolvimento Web com PHP - Aula 3
 
Aula 5 PHP - Criação de sites II
Aula 5 PHP - Criação de sites IIAula 5 PHP - Criação de sites II
Aula 5 PHP - Criação de sites II
 
Zend Framework - PHPSP - 2009
Zend Framework - PHPSP - 2009Zend Framework - PHPSP - 2009
Zend Framework - PHPSP - 2009
 
Doctrine for dummies
Doctrine for dummiesDoctrine for dummies
Doctrine for dummies
 
PHP-CLI in 7 steps - 7Masters PHP
PHP-CLI in 7 steps - 7Masters PHPPHP-CLI in 7 steps - 7Masters PHP
PHP-CLI in 7 steps - 7Masters PHP
 
Linguagem PHP
Linguagem PHPLinguagem PHP
Linguagem PHP
 
Introdução ao Zend Framework 2
Introdução ao Zend Framework 2Introdução ao Zend Framework 2
Introdução ao Zend Framework 2
 
Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01
 
Desenvolvendo Extensões PECL
Desenvolvendo Extensões PECLDesenvolvendo Extensões PECL
Desenvolvendo Extensões PECL
 
Funcao PHP
Funcao PHPFuncao PHP
Funcao PHP
 
Aula5
Aula5Aula5
Aula5
 
Como criar um plugin para WordPress
Como criar um plugin para WordPressComo criar um plugin para WordPress
Como criar um plugin para WordPress
 
Modern PHP
Modern PHPModern PHP
Modern PHP
 
Php FrameWARks - sem CakePHP
Php FrameWARks - sem CakePHPPhp FrameWARks - sem CakePHP
Php FrameWARks - sem CakePHP
 
As novidades do PHP5 (2005)
As novidades do PHP5 (2005)As novidades do PHP5 (2005)
As novidades do PHP5 (2005)
 

Mais de Israel Messias

Mais de Israel Messias (20)

CMS
CMSCMS
CMS
 
Programação Multiplataforma em Ambiente Web
Programação Multiplataforma em Ambiente WebProgramação Multiplataforma em Ambiente Web
Programação Multiplataforma em Ambiente Web
 
Programação Orientada a Objetos (POO) com PHP - Parte 2
Programação Orientada a Objetos (POO) com PHP - Parte 2Programação Orientada a Objetos (POO) com PHP - Parte 2
Programação Orientada a Objetos (POO) com PHP - Parte 2
 
Websockets
WebsocketsWebsockets
Websockets
 
Arquitetura Cliente-Servidor - Modelos
Arquitetura Cliente-Servidor - ModelosArquitetura Cliente-Servidor - Modelos
Arquitetura Cliente-Servidor - Modelos
 
Arquitetura Cliente-Servidor
Arquitetura Cliente-ServidorArquitetura Cliente-Servidor
Arquitetura Cliente-Servidor
 
Arquitetura Cliente-Servidor - Banco de dados
Arquitetura Cliente-Servidor - Banco de dadosArquitetura Cliente-Servidor - Banco de dados
Arquitetura Cliente-Servidor - Banco de dados
 
Ferramentas para Animações de Sites - Canvas
Ferramentas para Animações de Sites - CanvasFerramentas para Animações de Sites - Canvas
Ferramentas para Animações de Sites - Canvas
 
Ferramentas para Animações de Sites - Áudio
Ferramentas para Animações de Sites - ÁudioFerramentas para Animações de Sites - Áudio
Ferramentas para Animações de Sites - Áudio
 
CSS - Cascading Style Sheets - Medidas
CSS - Cascading Style Sheets - MedidasCSS - Cascading Style Sheets - Medidas
CSS - Cascading Style Sheets - Medidas
 
CSS - Cascading Style Sheets - Revisão
CSS - Cascading Style Sheets - RevisãoCSS - Cascading Style Sheets - Revisão
CSS - Cascading Style Sheets - Revisão
 
CSS - Cascading Style Sheets - 2
CSS - Cascading Style Sheets - 2CSS - Cascading Style Sheets - 2
CSS - Cascading Style Sheets - 2
 
CSS - Cascading Style Sheets - 1
CSS - Cascading Style Sheets - 1CSS - Cascading Style Sheets - 1
CSS - Cascading Style Sheets - 1
 
HTML - HyperText Markup Language - Review
HTML - HyperText Markup Language - ReviewHTML - HyperText Markup Language - Review
HTML - HyperText Markup Language - Review
 
HTML - HyperText Markup Language - FTP
HTML - HyperText Markup Language - FTPHTML - HyperText Markup Language - FTP
HTML - HyperText Markup Language - FTP
 
HTML - HyperText Markup Language - Organização de arquivos
HTML - HyperText Markup Language - Organização de arquivosHTML - HyperText Markup Language - Organização de arquivos
HTML - HyperText Markup Language - Organização de arquivos
 
HTML - HyperText Markup Language - Formulário
HTML - HyperText Markup Language - FormulárioHTML - HyperText Markup Language - Formulário
HTML - HyperText Markup Language - Formulário
 
HTML - HyperText Markup Language - 4 - Review
HTML - HyperText Markup Language - 4 - Review HTML - HyperText Markup Language - 4 - Review
HTML - HyperText Markup Language - 4 - Review
 
HTML - HyperText Markup Language - HTML5
HTML - HyperText Markup Language - HTML5HTML - HyperText Markup Language - HTML5
HTML - HyperText Markup Language - HTML5
 
HTML - HyperText Markup Language - 3
HTML - HyperText Markup Language - 3HTML - HyperText Markup Language - 3
HTML - HyperText Markup Language - 3
 

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

  • 1. Programação Orientada a Objetos (POO) com PHP (Parte 1)
  • 2. Padronização de código PHP Do Jeito Certo PHP Standard Recommendation. PSR-1: Basic Coding Standard PSR-2: Coding Style Guide
  • 3. Instalando php na linha de comando Adicionar o PHP na linha de Comando (PATH) Localizar o arquivo php.exe, copie o caminho; (ex.: C:xamppphp) 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
  • 4. Executando o servidor embutido do php Digite o seguinte comando no terminal: php -S localhost:8080 *Disponível na versão +5.4.0
  • 6. 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;
  • 7. 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.
  • 8. 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; } }
  • 9. $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();
  • 11. 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;
  • 12. 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";
  • 13. 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 método/atributo do objeto (instância) atual
  • 14. Assinatura: é composta pela quantidade de parâmetros. <?php class Conta { ... public function setNome($nome = "Ciclano"){ $this->nome = $nome; return $this; } } ... $contaFulano->setNome("Alfredo"); $contaFulano->setNome();
  • 15. Herança: uma classe pode estender outra classe, aproveitando seus métodos e atributos possíveis. <?php class Conta { ... } <?php class ContaCorrente extends Conta { ... }
  • 16. 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"; } }
  • 17. 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"; } }
  • 18. Modi cadores de acesso: Public, Protected e Private. public: visibilidade total, pode ser redeclarada (padrão); protected: acesso na própria classe e lhas. private: acesso somente dentro da mesma classe, não pode ser redeclarada;
  • 19. Abstract: em classes é um template de classes, molde. <?php abstract class Conta { public function __construct(){ echo "Nova Conta criada"; } } Classes abstratas não podem ser instanciadas.
  • 20. Abstract: em método não possuem corpo. <?php class Conta { abstract public function getSaldo(); } <?php class ContaCorrente extends Conta { public function getSaldo(){ return $this->saldo; } } Obriga as demais classes a implementar este método
  • 21. 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
  • 22. That's all folks! Marp (https://yhatt.github.io/marp/)