O documento apresenta os conceitos básicos de orientação a objetos em PHP, incluindo:
1. Definição de classes com propriedades e métodos;
2. Criação de instâncias de classes e acesso aos membros;
3. Visibilidade de propriedades e métodos (público, protegido e privado).
Talk que aborda alguns pontos da programação como SOLID, STUPID, clean code, object calisthenics, composer e algumas dicas pessoais.
Feita para o flisol 2017.
- Apresentar o conceito de Injeção de Dependências
- Explorar a visão sobre os artefatos relacionados à Injeção de Dependências
- Promover a reflexão sobre as boas práticas de uso de Injeção de Dependências
Talk que aborda alguns pontos da programação como SOLID, STUPID, clean code, object calisthenics, composer e algumas dicas pessoais.
Feita para o flisol 2017.
- Apresentar o conceito de Injeção de Dependências
- Explorar a visão sobre os artefatos relacionados à Injeção de Dependências
- Promover a reflexão sobre as boas práticas de uso de Injeção de Dependências
A maioria dos aplicativos modernos entrega seu conteúdo para diferentes países, línguas e culturas, utilizando um conceito chamado de internacionalização, ou i18n. Em algumas plataformas essa tarefa é maçante ou, até mesmo impossível, porém, com a BlackBerry API o programar tem vida fácil.
Para exemplificar e consolidar os conceitos, vamos criar um projeto de exemplo, que consta de um simples cadastro de cliente com três campos. Inimaginável no mundo real, mas possível neste artigo.
Abra seu eclipse e pegue a xícara de café...
Parte inicial do aprendizado com Objective-C, a linguagem para a programação nativa de aplicativos para iOS.
Nesta primeira parte, serve mais como apresentação do TO-DO lista de algumas funcionalidades básicas.
É crucial ter noção sobre Programação Orientada à Objetos (POO).
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...PGDay Campinas
"PL/pg…ETL – Transformação de dados para DW e BI usando linguagem procedural"
- Utilização do pl/pgsql para transformação de dados.
– Motivação: quando e porque fazer ETL via linguagem procedural.
– Como fazer uma carga simples – Loop X SQL complexo.
– Como fazer uma carga com transformação.
– Como transpor linhas e colunas.
– Carregar tabelas do zero.
– Desempenho – seleção da melhor cardinalidade.
– Incrementar tabelas com dados existentes.
– Dados de outras fontes – FDW.
PALESTRANTE
Flavio Henrique Araque Gurgel é consultor e instrutor de bancos de dados da 4Linux, engenheiro eletricista pela Universidade Federal do Paraná (UFPR). Atua em projetos de dimensionamento, tuning de bases de dados e no suporte aos clientes. Atualmente, é líder da área de projetos e consultoria da empresa.
--
Palestra apresentada no PGDay Campinas 2013
A maioria dos aplicativos modernos entrega seu conteúdo para diferentes países, línguas e culturas, utilizando um conceito chamado de internacionalização, ou i18n. Em algumas plataformas essa tarefa é maçante ou, até mesmo impossível, porém, com a BlackBerry API o programar tem vida fácil.
Para exemplificar e consolidar os conceitos, vamos criar um projeto de exemplo, que consta de um simples cadastro de cliente com três campos. Inimaginável no mundo real, mas possível neste artigo.
Abra seu eclipse e pegue a xícara de café...
Parte inicial do aprendizado com Objective-C, a linguagem para a programação nativa de aplicativos para iOS.
Nesta primeira parte, serve mais como apresentação do TO-DO lista de algumas funcionalidades básicas.
É crucial ter noção sobre Programação Orientada à Objetos (POO).
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...PGDay Campinas
"PL/pg…ETL – Transformação de dados para DW e BI usando linguagem procedural"
- Utilização do pl/pgsql para transformação de dados.
– Motivação: quando e porque fazer ETL via linguagem procedural.
– Como fazer uma carga simples – Loop X SQL complexo.
– Como fazer uma carga com transformação.
– Como transpor linhas e colunas.
– Carregar tabelas do zero.
– Desempenho – seleção da melhor cardinalidade.
– Incrementar tabelas com dados existentes.
– Dados de outras fontes – FDW.
PALESTRANTE
Flavio Henrique Araque Gurgel é consultor e instrutor de bancos de dados da 4Linux, engenheiro eletricista pela Universidade Federal do Paraná (UFPR). Atua em projetos de dimensionamento, tuning de bases de dados e no suporte aos clientes. Atualmente, é líder da área de projetos e consultoria da empresa.
--
Palestra apresentada no PGDay Campinas 2013
PHP Conference Brasil 2013 - Aplicações PHP 5.4 com componentes AuraFlávio Lisboa
Nesta palestra aprenderemos a criar uma aplicação utilizando os recursos do PHP 5.4 e os componentes do projeto Aura. A demonstração será feita ao vivo com a criação de snippets de código.
Clean Code e Object Calisthenics - Aplicados no PHPRafael Neris
Palestra realizada no Meetup Total PHP sobre Clean Code e Object Calisthenics aplicados no PHP.
Nesta palestra são apresentados conceitos importantes para manter seu código limpo e aplicar técnicas de refactoring para manter seu código organizado e performatico.
Palestra apresentada no Dia D 2009 da comunidade Debian-PE.
Fizemos uma breve contextualização e discutimos algumas novidades da versão 5.3.0 como:
namespaces
late static bindings
lambda functions
closures, etc
1. Tchelinux 2010 – Porto Alegre
Introdução a orientação a objetos
com PHP
Guilherme Mar
gfmarster@gmail.com
Sobre esta apresentação:
- Nível:
Iniciante / Intermediário
- Escopo:
Iniciando com Orientação a objetos, vendo principais características
- Pré-requisitos:
Lógica, básico em PHP e vontade de aprender.
2. OO com PHP Tchelinux 2010 -Porto Alegre
class Veiculo
{
public $placa;
protected $cor;
private $ano;
public function setTudo($placa, $cor, $ano){
$this->placa = $placa;
$this->ano = $ano;
$this->cor = $cor;
}
public function setAno($ano){
$this->ano = $ano;
}
public function getAno(){
return $this->ano;
}
}
ESTRUTURA
3. OO com PHP
class Veiculo
{
/* Propriedades */
public $placa;
public $cor;
Public $ano;
/* Métodos */
public function setTudo($placa, $cor, $ano){
$this->placa = $placa;
$this->ano = $ano;
$this->cor = $cor;
}
public function setAno($ano){
$this->ano = $ano;
}
public function getAno(){
return $this->ano;
}
}
ESTRUTURA
Propriedades
São as nossas conhecidas
variáveis, que dentro de uma classe
passa a ser chamada de propriedade
Métodos
São funções, onde é colocada toda
regra de negocio da classe
Lembrando que não se coloca lógica
solta na classe, apenas dentro de
métodos (funções)
Tchelinux 2010 -Porto Alegre
4. OO com PHP
NOTA
Mas não podemos sair montando como bem se intende, por ser voltado a
grandes desenvolvimentos, com vários programadores, recomenda-se o uso de
alguns padrões:
Por convenção usa-se a primeira letra maiúscula, e em caso de haver troca de
palavra segue o padrão “camel case” ( corcova de camelo ). Ex.:
LivroVisitas TesteMemoria Carro Moto ContatoEmpresa
Nome de classe com primeira letra maiúscula
Nome de métodos com a primeira letra minuscula
Utiliza-se o padrão “camel case” ( corcova de camelo ), mas com a primeira letra
minuscula Ex.:
adcionarContato visualizarDisco adicionar
Arquivos com o mesmo nome da classe
Recomenda colocar uma classe por arquivo e este arquivo possuir o mesmo nome da
classe, respeitando inclusive letras maiúsculas e minusculas.
Tchelinux 2010 -Porto Alegre
5. OO com PHP
require_once "Veiculo.php";
$veiculo = new Veiculo();
$veiculo->setTudo('abc','red',1998);
echo $veiculo->getAno();
echo “<br>”
echo $veiculo->cor;
INSTANCIANDO UM CLASSE
Deve ser feito um include
do arquivo da classe
new responsável por criar uma instancia da classe na variável.
-> modo de acessar as propriedades ou métodos da classe.
class Veiculo
{
/* Propriedades */
public $placa;
public $cor;
Public $ano;
/* Métodos */
public function setTudo($placa, $cor, $ano){
$this->placa = $placa;
$this->ano = $ano;
$this->cor = $cor;
}
public function setAno($ano){
$this->ano = $ano;
}
public function getAno(){
return $this->ano;
}
}
Tchelinux 2010 -Porto Alegre
6. OO com PHP
class Veiculo
{
/* Propriedades */
public $placa;
public $cor;
Public $ano;
/* Métodos */
public function setTudo($placa, $cor, $ano){
$this->placa = $placa;
$this->ano = $ano;
$this->cor = $cor;
}
public function setAno($ano){
$this->ano = $ano;
}
public function getAno(){
return $this->ano;
}
}
A PALAVRA RESERVADA THIS
O this, que no caso é tratado como
uma variável ( note o $ junto dele ) é
utilizado para acessar propriedades e
métodos que são da própria classe.
Repare o método setTudo.
Tchelinux 2010 -Porto Alegre
7. OO com PHP
VISIBILIDADE
As classes possuem três tipos diferentes de visibilidade em seus métodos e propriedades:
protected
Este é o padrão, permite a propriedade ou método ser acessada por qualquer um no
desenvolvimento.
public
Restringe o acesso a classes herdadas e a própria classe.
private
Apenas a própria classe enxerga os métodos e propriedades com este tipo de visibilidade.
Tchelinux 2010 -Porto Alegre
8. OO com PHP
CONSTRUTORES E DESTRUTORES
Construtores, são métodos que são chamados automaticamente na hora que uma classe é
instanciada.
No PHP um construtor se chama utilizando o método __construct()
public function __construct()
{
/* regra de negócio */
}
Destrutores, são métodos que são chamados automaticamente na hora que uma classe é
encerrada, sendo no PHP um destrutor muito pouco utilizado.
No PHP um destrutor se chama utilizando o método __destruct()
public function __destruct()
{
/* regra de negocio */
}
Nota: Antes do PHP 5, o construtor era um método com o mesmo nome da classe, sendo
este modelo suportado até versões novas. Mas não é recomendado seu uso, apenas em caso
de servidores que não suportem PHP5.
Tchelinux 2010 -Porto Alegre
9. OO com PHP
class Veiculo
{
public $placa;
protected $cor;
private $ano;
public function __construct($placa, $cor, $ano){
$this->placa = $placa;
$this->ano = $ano;
$this->cor = $cor;
}
public function __destruct(){
echo “Classe destruida”;
}
}
CONSTRUTORES E DESTRUTORES
require_once "classes/Veiculo.php";
$carro = new Veiculo("IGV-2009", "vermelho");
Nota: Métodos __construct e __destruct devem sempre possuir a visibilidade do tipo
public, caso contrário irá ocorrer erro.
Tchelinux 2010 -Porto Alegre
10. OO com PHP
GETS AND SETS
Recomenda-se, deixar as propriedades todas elas com visibilidade private, criando assim
métodos para popular e recuperar a propriedade. Métodos esses chamados de set e get.
class Veiculo
{
private $placa;
private $cor;
Private $ano;
public function setPlaca($placa){
$this->placa = $placa;
}
public function getPlaca(){
return $this->placa;
}
public function setCor($cor){
$this->cor = $cor;
}
public function getCor(){
return $this->cor;
}
public function setAno($ano){
$this->ano = $ano;
}
public function getAno(){
return $this->ano;
}
}
require_once "Veiculo.php";
$veiculo = new Veiculo();
$veiculo->setAno(1982);
$veiculo->setCor("Preto");
$veiculo->setPlaca("TLX-2009");
echo $carro->getAno();
echo $carro->getCor();
echo $carro->getPlaca();
Tchelinux 2010 -Porto Alegre
11. OO com PHP
EXTENSÕES
Extensões de classes, são classes que herdam propriedades e métodos de uma outra já
existente.
class Veiculo
{
private $placa;
protected $cor;
Protected $ano;
public function setTudo($placa, $cor, $ano){
$this->placa = $placa;
$this->ano = $ano;
$this->cor = $cor;
}
public function setPlaca($placa){
$this->placa = $placa;
}
public function getPlaca(){
return $this->placa;
}
/* ... */
}
require_once "Veiculo.php";
class Carro extends veiculo
{
private $qtdCintos;
public function setTudo($placa, $cor,
$ano, $qtdCintos){
parent::setTudo($placa, $cor, $ano);
$this->setCintos($qtdCintos);
}
public function setCintos($qtdCintos){
$this->qtdCintos = $qtdCintos;
}
public function getCintos(){
return $this->qtdCintos;
}
}
Tchelinux 2010 -Porto Alegre
12. OO com PHP
EXTENSÕES
class Veiculo
{
private $placa;
protected $cor;
Protected $ano;
public function setTudo($placa, $cor, $ano){
$this->placa = $placa;
$this->ano = $ano;
$this->cor = $cor;
}
public function setPlaca($placa){
$this->placa = $placa;
}
public function getPlaca(){
return $this->placa;
}
/* ... */
}
require_once "Veiculo.php";
class Carro extends veiculo
{
private $qtdCintos;
public function setTudo($placa, $cor,
$ano, $qtdCintos){
parent::setTudo($placa, $cor, ano);
$this->setCintos($qtdCintos);
}
public function setCintos($qtdCintos){
$this->qtdCintos = $qtdCintos;
}
public function getCintos(){
return $this->qtdCintos;
}
}
require_once "classes/Carro.php";
$carro = new Carro();
$carro->setTudo("IGV-2009","amarelo", 2009, 5);
echo $carro->getPlaca(); // IGV-2009
echo $carro->getCor(); // amarelo
echo $carro->getAno(); // 2009
echo $carro->getCintos(); // 5
Tchelinux 2010 -Porto Alegre
13. OO com PHP
OS DOIS PONTOS DUPLOS
Você deve ter notado no decorrer deste documento, as palavras self e parent. Pois
bem, o self é utilizado para acessas constantes ( lembra do const ?? ) na própria
classe. Enquanto o parent é utilizado em classes estendidas para acessarem
constantes e métodos na classe pai que foram sobrescritos pela classe filha.
Com self e parent não se pode utilizar “->” e sim :: como visto no decorrer do
documento. O mesmo para quando se deseja acessar algum método ou constante
de uma classe sem instancia-la Se utiliza o nome da classe, seguida dos dois pontos
duplos e depois o método ou constante desejada.
Tchelinux 2010 -Porto Alegre
14. Tchelinux 2010 – Porto Alegre
Introdução a orientação a objetos
com PHP
Guilherme Mar
gfmarster@gmail.com