PHP5
e a orientação a objetos
Classes e Objetos
PHP4
classes simples
class Var {
var $a;
var $b;
var $c;
function Var($a,$b,$c) {
///atrubuiçoes
}
}
$var = new Var('teste',
'pronto',
'frango');
PHP5
classes mais completas,
uso de padrões
class Var {
private $a;
private $b;
private $c;
public function
__construct($a,$b,$c) {
///atrubuiçoes
}
//getters
//setters
}
$var = new Var('teste',
'pronto',
'frango');
Construtores e Destrutores
class Var {
private $a;
private $b;
private $c;
public function __construct($a,$b,$c) {
///atrubuiçoes
}
public function __destruct() {
unset($this);
}
}
exemplo
Visibilidade
Propriedades e Métodos
public
protected
private
exemplo
Abstração
Classes e Métodos
Não podem ser instanciadas
exemplo
Interfaces
Não podem ser instanciadas
Metodos herdados devem ser implementados
interface
implements
exemplo
Iteração com Objetos
foreach
Mostra as propriedades publicas
$classe = new NovaClasse();
foreach($classe as $chave => $valor) {
print "$chave => $valor\n";
}
Iteração com Objetos
Interface Iterator
Qualquer objeto define sua própria maneira de iterar
Todos os métodos devem ser implementados
exemplo
Iteração com Objetos
Interface IteratorAggregate
Qualquer objeto define sua própria maneira de iterar
Nem todos os métodos devem ser implementados
Devemos ter uma classe Iterator para retornar
Podemos criar collections
exemplo
Exceções
Objeto Exception
Throw e try/catch
Controle de fluxo por exceções
exemplo
Indução de tipo
Maior controle sobre os dados
Mais confiabilidade
Somente para arrays e objetos
class MyClass {
public $var = 'Frango com Bacon';
}
function MyFunction (MyClass $foo) {
echo $foo->var;
}
$myclass = new MyClass;
MyFunction($myclass);
Padrões de Projeto ( design patterns )
Reutilização de códigos
Melhores práticas de programação
Solução para problemas do dia a dia
Padrões de Projeto ( design patterns )
Factory
Criação de objetos em tempo de execução
Fazer verificações antes de criar um objeto
exemplo
Padrões de Projeto ( design patterns )
Singleton
Única instância de uma determinada classe
exemplo
Padrões de Projeto ( design patterns )
Outros Padrões
Abstract Factory
Composite
Facade
...
Final =D
PHP
( www.php.net )
Design Patterns
( http://www.industriallogic.com/papers/learning.html )
pQui Linux
( http://pqui.codigolivre.org.br/ )
Pedro Ivo Branquinho Gimenes
[email protected]
Download

PHP5 e a orientação a objetos