orientação a objetos na prática em php

Post on 31-Oct-2014

6.456 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

Orientação a Objetos em PHP

@augustohp

augusto@phpsp.org.br

Thursday, January 28, 2010

AUGUSTO PASCUTTI

• 4 anos de experiência

• ZCE

• Fundador/coordenador PHPSP

• Habari, CakePHP

Thursday, January 28, 2010

OBJETIVOS

Thursday, January 28, 2010

ORIENTAR

Thursday, January 28, 2010

PHP 5

Thursday, January 28, 2010

USAR

Thursday, January 28, 2010

ORIENTANDO-SE

Thursday, January 28, 2010

PROGRAMA PROCEDURAL ?

Thursday, January 28, 2010

ESQUEÇA !

Thursday, January 28, 2010

PENSE DIFERENTE

Thursday, January 28, 2010

PENSE OO

Thursday, January 28, 2010

CLASSES

Thursday, January 28, 2010

BASE DA OO

Thursday, January 28, 2010

MOLDES

Thursday, January 28, 2010

INSTRUÇÕES

Thursday, January 28, 2010

SEM VONTADE PRÓPRIA

Thursday, January 28, 2010

CLASSES

Thursday, January 28, 2010

CLASSES

Thursday, January 28, 2010

CLASSES

Thursday, January 28, 2010

CLASSES

Thursday, January 28, 2010

CLASSES

• Uma classe por arquivo

• Padrões de nomenclatura

• Padrão_Zend_ou_Pear

• PadrãoCamelCase

• PaDrÃoMiGuXo

Thursday, January 28, 2010

OBJETOSThursday, January 28, 2010

FILHOS DAS CLASSES

Thursday, January 28, 2010

INFORMAÇÕES

Thursday, January 28, 2010

INDEPENDENTES

Thursday, January 28, 2010

EXECUTORES

Thursday, January 28, 2010

EXECUTAM

Thursday, January 28, 2010

ATRIBUTOSThursday, January 28, 2010

DECLARADOS NA CLASSEThursday, January 28, 2010

USADOS NOS OBJETOSThursday, January 28, 2010

PROPRIEDADESThursday, January 28, 2010

INFORMAÇÕESThursday, January 28, 2010

VARIÁVEISThursday, January 28, 2010

4Thursday, January 28, 2010

VARIÁVEISThursday, January 28, 2010

5Thursday, January 28, 2010

VARIÁVEISThursday, January 28, 2010

MÉTODOSThursday, January 28, 2010

DECLARADOS NA CLASSEThursday, January 28, 2010

USADOS PELOS OBJETOSThursday, January 28, 2010

FUNÇÕESThursday, January 28, 2010

FAZEM COISASThursday, January 28, 2010

DÃO E RECEBEMThursday, January 28, 2010

4Thursday, January 28, 2010

DÃO E RECEBEMThursday, January 28, 2010

5Thursday, January 28, 2010

DÃO E RECEBEMThursday, January 28, 2010

AUTOLOAD

Thursday, January 28, 2010

AUTOLOAD•Executado na instanciação

•Executado somente para classes não declaradas

•Nativo do PHP

•Duas implementações

•__autoload

•SPL

•Sem includes/requires

•Melhora consumo de memória

Thursday, January 28, 2010

AUTOLOAD

Thursday, January 28, 2010

AUTOLOAD

Thursday, January 28, 2010

MEMBROS DA CLASSEThursday, January 28, 2010

CONSTANTES

Thursday, January 28, 2010

CONSTANTES

Thursday, January 28, 2010

ESTÁTICOS

Thursday, January 28, 2010

ESTÁTICOS

Thursday, January 28, 2010

ESTÁTICOS

Thursday, January 28, 2010

MENSAGENSThursday, January 28, 2010

PODER DA OOThursday, January 28, 2010

TROCA DE INFORMAÇÕES Thursday, January 28, 2010

TROCA DE INFORMAÇÕES Thursday, January 28, 2010

HERANÇAThursday, January 28, 2010

CLASSE PAIThursday, January 28, 2010

CLASSE FILHAThursday, January 28, 2010

VISIBILIDADE

Thursday, January 28, 2010

PUBLIC

Thursday, January 28, 2010

PROTECTED

Thursday, January 28, 2010

PRIVATE

Thursday, January 28, 2010

POLIMORFISMOThursday, January 28, 2010

ERA UMA COISAThursday, January 28, 2010

AGORA É OUTRAThursday, January 28, 2010

SOBRECARGAThursday, January 28, 2010

NA VERDADE: SOBRESCRITAThursday, January 28, 2010

NA VERDADE: SOBRESCRITAThursday, January 28, 2010

FINALThursday, January 28, 2010

IMPEDE O POLIMORFISMOThursday, January 28, 2010

USADO EM CLASSES ...Thursday, January 28, 2010

E MÉTODOSThursday, January 28, 2010

E MÉTODOSThursday, January 28, 2010

ABSTRATOThursday, January 28, 2010

NÃO PODE SER INSTANCIADAThursday, January 28, 2010

USADA COMO PAIThursday, January 28, 2010

USADA COMO PAIThursday, January 28, 2010

USADA COMO PAIThursday, January 28, 2010

MÁGICAThursday, January 28, 2010

MÉTODOS MÁGICOSThursday, January 28, 2010

EXECUTADOS PELO PHPThursday, January 28, 2010

14 EXISTENTES NO PHP 5.3Thursday, January 28, 2010

SEMPRE COMEÇAM COM “_ _”Thursday, January 28, 2010

CONSTRUINDO

Thursday, January 28, 2010

__CONSTRUCT

•Executado na instanciação do objeto

•Não pode retornar nada

•Pode sofrer sobrecarga

•Pode receber argumentos

Thursday, January 28, 2010

__CONSTRUCT

Thursday, January 28, 2010

DESTRUINDOThursday, January 28, 2010

__DESTRUCT

•Executado quando objeto sai da memória

•Final do script

•unset() do objeto

•Pode ser útil em

•Banco de dados

•Logs

•etc ...

Thursday, January 28, 2010

__DESTRUCTThursday, January 28, 2010

MOSTRANDO

Thursday, January 28, 2010

__TOSTRING

•Chamado quando objeto é usado como String

•O método DEVE retornar uma String

•Útil para objetos que devem retornar algo visual

•Paginador, Botão

•Até a versão 5.2 funcionava só com `print` e `echo`

•> 5.2 funciona em qualquer contexto de string

•TypeCast

•sprintf()

Thursday, January 28, 2010

__TOSTRING

Thursday, January 28, 2010

OUTROS MÉTODOS MÁGICOS

•__call

•__get

•__set

•__get

•__isset

•__clone

•http://php.net/manual/en/language.oop5.magic.php

Thursday, January 28, 2010

INTERFACES

Thursday, January 28, 2010

“CLASSES” GENÉRICAS

Thursday, January 28, 2010

DEFINEM COMPORTAMENTOS

Thursday, January 28, 2010

TIPOS DE DADOS

Thursday, January 28, 2010

TIPOS DE DADOS

Thursday, January 28, 2010

TIPOS DE DADOS

•Mais genéricos que Classes Abstratas

•Uma classe pode implementar várias Interfaces

Thursday, January 28, 2010

EXCEPTIONS

Thursday, January 28, 2010

TRABALHANDOThursday, January 28, 2010

OBJETOS E REFERÊNCIASThursday, January 28, 2010

OBJETOS E REFERÊNCIASThursday, January 28, 2010

OBJETOS E REFERÊNCIASThursday, January 28, 2010

OBJETOS E REFERÊNCIASThursday, January 28, 2010

TYPE HINTThursday, January 28, 2010

TYPE HINT

•Forçam um tipo a um argumento

•Só podem ser usados como tipo:

•Array

•Classes

Thursday, January 28, 2010

TYPE HINTThursday, January 28, 2010

TYPE HINTThursday, January 28, 2010

INSTANCE OFThursday, January 28, 2010

INSTANCE OF

•Checa se um objeto é uma determinada instância

•Retorna boolean

•Um objeto pode ser checado contra

•Classe

•Classe Abstrata

•Interface

Thursday, January 28, 2010

INSTANCE OFThursday, January 28, 2010

BANCO DE DADOSThursday, January 28, 2010

ABSTRAIAThursday, January 28, 2010

ABSTRAIA

•Melhora segurança

•Centraliza execuções

•Melhor manutenção

•Evita dor de cabeças

Thursday, January 28, 2010

NÃO REINVENTE A RODAThursday, January 28, 2010

USE A PDOThursday, January 28, 2010

USE A PDO

•O que ela é:

•Abstração de Acesso para banco de dados

•Nativo do PHP 5.1

•Aprenda uma sintaxe de conexão

•Muito/Extremamente TESTADA pra caramba

•Mais leve do que qualquer outra

Thursday, January 28, 2010

USE A PDO

•O que ela NÃO é:

•Não abstrai suas queries

•Não evita instalação de drivers dos bancos

•Não vai resolver seus problemas

•Nem de segurança

•Nem de performance

Thursday, January 28, 2010

USANDO A PDOThursday, January 28, 2010

USANDO A PDOThursday, January 28, 2010

PDO STATEMENTS

•Agilizam a execução de queries repetidas

•Implementam um pouco de segurança

•Simplificam o uso de queries repetidas

•Simplificam Fetch de resultados

Thursday, January 28, 2010

PDO STATEMENTSThursday, January 28, 2010

PARÂMETROSThursday, January 28, 2010

RETORNO ID INSERIDOThursday, January 28, 2010

DESIGN PATTERNSThursday, January 28, 2010

DESIGN PATTERNS

•Solução comum para problemas comuns

•Independem de linguagem

•Vocuabulário comum

•Primeiros DP: Gang of Four

Thursday, January 28, 2010

DESIGN PATTERNS

•Singleton

•Factory

•Strategy

•Data Access Object

•Value Objects

•MVC

Thursday, January 28, 2010

FRAMEWORKSThursday, January 28, 2010

PERGUNTAS ?

Augusto Pascuttiaugusto@phpsp.org.br

@augustohp

http://www.slideshare.net/augustopascutti

Thursday, January 28, 2010

top related