Orientação a Objetos na prática em php
-
Upload
campus-party-brasil -
Category
Technology
-
view
6.456 -
download
1
description
Transcript of Orientação a Objetos na prática em php
Orientação a Objetos em PHP
@augustohp
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 [email protected]
@augustohp
http://www.slideshare.net/augustopascutti
Thursday, January 28, 2010