Este documento resume os principais conceitos de programação orientada a objetos em PHP. Aborda tópicos como classes, atributos, métodos, objetos, herança, interfaces, classes abstratas, associação entre objetos e padrões de projeto como Singleton e Factory Method.
Módulo 9 - Introdução à Programação Orientada a Objectos Luis Ferreira
Características da Programação Orientada por Objetos (POO).
Conceito de Classe, Atributos, Métodos, e Eventos.
Conceito de Objeto.
Conceito de Encapsulamento.
Conceito de Visibilidade de Classes, Métodos e Atributos.
Diagramas de Classe.
O ambiente de trabalho do Visual C#.
Objetos básicos e outras características básicas da linguagem do Visual C# e respetivo ambiente de trabalho.
Php data structures – beyond spl (online version)Mark Baker
Presentation on the Trie datastructure, showing how it works, how it's used and what it can be used for; and an implementation of Tries in PHP... with occasional references to Rugby League
Example code to go with the slides can be found at https://github.com/MarkBaker/Tries
and
https://github.com/MarkBaker/QuadTrees
Módulo 9 - Introdução à Programação Orientada a Objectos Luis Ferreira
Características da Programação Orientada por Objetos (POO).
Conceito de Classe, Atributos, Métodos, e Eventos.
Conceito de Objeto.
Conceito de Encapsulamento.
Conceito de Visibilidade de Classes, Métodos e Atributos.
Diagramas de Classe.
O ambiente de trabalho do Visual C#.
Objetos básicos e outras características básicas da linguagem do Visual C# e respetivo ambiente de trabalho.
Php data structures – beyond spl (online version)Mark Baker
Presentation on the Trie datastructure, showing how it works, how it's used and what it can be used for; and an implementation of Tries in PHP... with occasional references to Rugby League
Example code to go with the slides can be found at https://github.com/MarkBaker/Tries
and
https://github.com/MarkBaker/QuadTrees
A nossa linguagem preferida evolui e o nosso código deve então seguir o mesmo passo. PHP 7 oferece novas funcionalidades que permitem simplificar, melhorar e aumentar o desempenho do seu código. Nessa palestra, apresentarei os conceitos SOLID e Object Calisthenics e como aplica-los e combina-los com as novas funcionalidades dessa sétima versão. Nossa atualização deve ser constante e do nosso código também.
Escrevi este mini curso de PHP que abrange desde o nível inicial básico até o intermediário/avançado. Este mini curso foi apresentado durante o evento WISM 2013, organizado pela PUC Minas Poços de Caldas, MG.
Pauta:
1. Introdução ao PHP;
2. Configuração do ambiente para desenvolvimento;
3. Variáveis em PHP;
4. Comandos Condicionais e Controle de fluxo;
5. Controle de fluxo: Switch;
6. Controle de fluxo: Laços de repetição;
7. Arrays em PHP;
8. Funções em PHP;
9. PHP e Banco de Dados MySQL;
10. PHP Orientado a Objetos;
11.Visão Geral: Frameworks PHP;
What exactly are Web APIs? Why are Web APIs so popular and widely used? This presentation explores what APIs are and how they have evolved into what we call Web APIs. To learn more, read the "What are Web APIs" article on Medium: https://hackernoon.com/what-are-web-apis-c74053fa4072
Presented at IronHack, in Barcelona, on January 2018.
How can you grow your business revenue by using APIs? In this presentation, you will understand the concept of “Integrated Product” and how it can help you reach product-market fit and generate revenue. You will also learn how to effectively measure the success of your API and its integrations with multiple third parties. By the end, you’ll be able to identify which parts of your API need improvement, which are the ones driving revenue, and the ones that should be deprecated.
Learn how to create your whole product by integrating other products' features and growing your business
Presented at Beta-i, in Lisbon, on March 2017.
Learn how to create your whole product by integrating other products' features and growing your business.
Presented at the Barcelona Product Meetup in itnig, on March 2017.
APIdays Mediterranea 2016 Presentation exploring the relationship between APIs, chat bots and how people use chat.
Hitch API Assistant has been announced with a demo near the end of the presentation. More information about it is available at http://apiassistant.com
Talk given at Typeform for the Barcelona Bug busters meetup.
How to Automate API Testing guides you through a possible API Testing workflow for API Functional Testing exploring different tools and approaches.
Nodeconf Barcelona 2015 presentation exploring several ways of building microservices in an asynchronous way. Presented the concept of a broker as an alternative to a multiple point-to-point architecture.
My presentation at APIdays Mediterranea 2014, in Barcelona.
Here's a great summary: http://saasinsights.getapp.com/war-over-online-identities-power-of-me/
Bridging the Gap Between APIs and CustomersBruno Pedro
I start with a question: "Who's using your API?" The single, most important thing you want to understand about your API is how you can generate revenue from it. It all depends on who are your customers and how they can obtain value through your API. We'll go through several examples of what can be done to deliver that value directly to your customers.
Slides from a talk I gave at IBWAS'10 in Lisbon, Portugal.
Abstract:
Is the OAuth protocol really secure? Even though the OAuth authorization protocol has been published as the RFC 5849 and is being widely adopted by large Internet companies, it's important to stress out its possible security vulnerabilities.
This talk will focus on the OWASP Top 10 Application Security Risks and how OAuth is affected by them.
While some of the security risks are mitigated by OAuth, developers need to take some action to prevent other risks from affecting their implementations.
A presentation given at Codebits 2010 about everything related to OAuth.
I didn't go into any deep technical details as I tried to cover most OAuth related topics.
1. OOP em PHP
PHP Summer School - 18 de Julho de 2007
Bruno Pedro <bpedro@computer.org>
2. PHP Summer School
Conteúdo
• Conceitos de OOP
• Design Patterns
• Frameworks
• Exercícios
• Resumo
OOP em PHP 2
3. PHP Summer School
Classe
• Descrição de um conjunto de objectos
semelhantes
• Identificador de objectos que partilham os
mesmos atributos sobre os quais podem
ser realizadas as mesmas operações
in Ramos, P., (2006).“Desenhar Bases de Dados com UML”. Edições Sílabo
OOP em PHP 3
4. PHP Summer School
Classe
• Atributos comuns a um grupo de objectos
Porta
tipo de fechadura
altura
cor
largura
estado
tipo de puxador
fonte: http://tinyurl.com/2yp9e7
OOP em PHP 4
5. PHP Summer School
Classe
• Notação UML
nome da classe
Porta
altura
largura
cor
atributos
tipo de fechadura
tipo de puxador
estado
OOP em PHP 5
6. PHP Summer School
Atributos
• Podem ser públicos, privados ou protegidos
• Podem ter valores pré-definidos
Porta
atributo público valor pré-definido
+altura = 200
+largura = 150
+cor = 'azul'
atributo privado -tipo de fechadura
+tipo de puxador
+estado
OOP em PHP 6
7. PHP Summer School
Classe em PHP
início de
script PHP
definição da classe
atributos
fim de
script PHP
OOP em PHP 7
8. PHP Summer School
Classe
• Operações realizáveis por ou sobre um
grupo de objectos
Porta
encosta
abre
fecha bate
tranca destranca
fonte: http://tinyurl.com/2lgamj
OOP em PHP 8
9. PHP Summer School
Classe
• Notação UML
nome da classe
Porta
altura
largura
cor
atributos
tipo de fechadura
tipo de puxador
estado
abre()
fecha()
operações ou métodos
tranca()
destranca()
encosta()
bate()
OOP em PHP 9
10. PHP Summer School
Métodos
• Podem ser públicos, privados ou protegidos
• Podem ter parâmetros e devolver resultados
Porta
altura
largura
cor
tipo de fechadura
tipo de puxador
estado
método público +abre()
+fecha()
+tranca()
método privado parâmetro
-destranca(chave)
+encosta()
+bate()
OOP em PHP 10
11. PHP Summer School
Classe em PHP
nome da classe
atributos
atributo privado
métodos
OOP em PHP 11
12. PHP Summer School
Classe em PHP
métodos
método privado
OOP em PHP 12
13. PHP Summer School
Objecto
• Instanciação da classe
• Define uma entidade com características e
comportamentos próprios
OOP em PHP 13
14. PHP Summer School
Objecto em PHP
definição da classe
instanciação
OOP em PHP 14
15. PHP Summer School
Constructor
• Método especial
• É executado quando o objecto é
instanciado
constructor
OOP em PHP 15
16. PHP Summer School
Constructor (cont.)
parâmetro
de entrada
lógica
gravação
do estado
instanciação
com parâmetro
OOP em PHP 16
17. PHP Summer School
Herança
• Especialização de uma classe de objectos
OOP em PHP 17
18. PHP Summer School
Herança
• Notação UML
Porta
PortaDeCarro PortaDeElevador PortaDeComboio
OOP em PHP 18
19. PHP Summer School
Herança em PHP
classe base
herança
método só disponível
na classe herdada
OOP em PHP 19
20. PHP Summer School
Interface
• Não implementa métodos
• Define métodos que serão utilizados em
implementações
• Obriga classes herdadas a seguirem a
definição
OOP em PHP 20
21. PHP Summer School
Interface em PHP
definição
de interface
implementação
OOP em PHP 21
22. PHP Summer School
Classe abstracta
• Não pode ser instanciada
• Serve para ser herdada por outras classes
• Contém código que poderá ser reutilizado
• Código poderá ser sobreposto pela classe
herdada
OOP em PHP 22
23. PHP Summer School
Classe abstracta em PHP
definição da
classe abstracta
sobreposição
de um método
OOP em PHP 23
24. PHP Summer School
Sobrecarga (Overloading)
• De atributos e métodos
• Executado sempre que um atributo ou
método não existem
• Possibilidade de execução de código
arbitrário
• Possibilidade de criar default methods
OOP em PHP 24
26. PHP Summer School
Sobrecarga de atributos
array de atributos
métodos de
sobrecarga
código de teste
OOP em PHP 26
27. PHP Summer School
Sobrecarga de métodos
mixed __call ( string $name, array $arguments )
método de
sobrecarga
código de teste
OOP em PHP 27
28. PHP Summer School
Associação
Porta Fechadura
• Associa vários objectos
• Permite referenciar objectos a partir de
outros
OOP em PHP 28
29. PHP Summer School
Associação em PHP
classe a ser
associada
associação
OOP em PHP 29
30. PHP Summer School
Iteração
• Percorre todos os atributos públicos de um
objecto
• Utiliza statements básicos de PHP
• Permite alterar o comportamento da
iteração através do Interface Iterator
OOP em PHP 30
31. PHP Summer School
Iteração em PHP
atributos
escreve nome
e valor dos
atributos públicos
OOP em PHP 31
32. PHP Summer School
Design Patterns
• Singleton
• Factory Method
OOP em PHP 32
33. PHP Summer School
Singleton
• Garante que só existe uma única instância
de uma classe
• A instanciação faz-se de um modo diferente
• O objecto instanciado tem todas as
características de um objecto normal
OOP em PHP 33
34. PHP Summer School
Singleton
atributo estático
que guardará o objecto
Porta
...
-instance = null
...
o constructor é privado
-__construct()
+getInstance() : Porta
devolve sempre a mesma
instância do objecto
OOP em PHP 34
35. PHP Summer School
Singleton
atributo estático
que guardará o objecto
o constructor é privado
devolve sempre a mesma
instância do objecto
OOP em PHP 35
36. PHP Summer School
Factory Method
• Gere a instanciação de objectos
• O programador não precisa saber qual a
classe que deve instanciar
• Produz objectos de acordo com
parâmetros de entrada
OOP em PHP 36
37. PHP Summer School
Factory Method
• Notação UML
PortaDeCasa
Porta
devolve PortaDeElevador
instância de +factory()
uma das classes
PortaDeComboio
OOP em PHP 37
38. PHP Summer School
Factory Method
verifica se a classe
existe e devolve
uma instância
OOP em PHP 38
39. PHP Summer School
Frameworks
• Conjuntos de classes
• Oferecem funcionalidades importantes
• autenticação
• acesso a bases de dados
• cache
• Implementam Design Patterns
OOP em PHP 39
41. PHP Summer School
Exercício 1
• Implementação de uma Calculadora
• operações aceitam 2 operandos: (x,y)
• últimos valores (x,y) são guardados em
memória
• últimos valores podem ser obtidos
através de método específico
OOP em PHP 41
42. PHP Summer School
UML
Calculadora
-x
últimos valores utilizados
-y
+soma(x, y)
operações
+multiplica(x, y)
+ultimosValores()
obtenção dos
últimos valores
OOP em PHP 42
44. PHP Summer School
Exercício 2
• Estender a Calculadora
• permitir N operações
• iniciar a calculadora indicando quais as
operações pretendidas
OOP em PHP 44
46. PHP Summer School
Implementação
interface
implementação de
duas operações
OOP em PHP 46
47. PHP Summer School
Implementação
associação a N
operações
instanciação das
operações
instanciação da
(...)
calculadora
OOP em PHP 47
48. PHP Summer School
Implementação
sobrecarga de métodos
invocação da operação
pretendida
OOP em PHP 48
49. PHP Summer School
Resumo
• Classe e Objecto
• Atributos e Métodos
• Herança, interface e classe abstracta
• Sobrecarga, associação e iteração
• Singleton e Factory Method
OOP em PHP 49