Orientação a objetos com php

12
Orientação a objetos com PHP Elionai Moura @eli_embits http://grupoweblovers.org

Transcript of Orientação a objetos com php

Page 1: Orientação a objetos com php

Orientação a objetos com

PHP Elionai Moura

@eli_embits

http://grupoweblovers.org

Page 2: Orientação a objetos com php

QUEM ?

• Graduando em Análise e Desenvolvimento de Sistemas

• Desenvolvedor Web desde 2007

• Idealizador do Grupo WebLovers

• Ativista do conhecimento compartilhado

http://grupoweblovers.org

Page 3: Orientação a objetos com php

O QUÊ ?

• PORQUÊ TUDO ISSO?

• DESENVOLVIMENTO VS PRODUÇÃO

• ORIENTAÇÃO A OBJETOS – OOP OU POO?

• A LINGUAGEM PHP

• HACKING SESSION!

http://grupoweblovers.org

Page 4: Orientação a objetos com php

QUEM QUER $ $ $ $ ?

• É bonito?

• É bom?

http://grupoweblovers.org

Page 5: Orientação a objetos com php

Uma linguagem para a

todos dominar...

Foi criada pensando na WEB:

– Personal Hypertext Processor PHP Hypertext PreProcessor.

Facilidade para o desenvolvedor:

– Imensa biblioteca livre: PEAR!

– Manipulação de imagens, arquivos-texto, PDF, JSON, XML...

– Suporte a web semântica / URL-encode / Code-injection...

É LIVRE, GRÁTIS, CÓDIGO ABERTO E PODEROSA:

– Utilizada por Facebook, Wikipedia, WordPress... Em 1998, apenas 4 anos após criada, era usada em 10% dos sites da Internet e hoje é a 3ª linguagem mais usada no mundo conhecido!

http://grupoweblovers.org

Page 6: Orientação a objetos com php

IDE´s PARA QUE TE QUERO

• RADPHP – Antes chamado de Delphi for PHP, após aquisição pela EMBARCADERO tornou-se uma IDE menos ruim mas não me apetece!

• DREAMWEAVER – Não é ruim, mas pode deixar a pessoa burra, além de ser tão caro quanto o anterior;

• ECLIPSE – A menina dos olhos de quem é multiprogramador, auxilia com debug, versionamento, além de suportar diversas outras linguagens;

• NOTEPAD++ – O meu preferido para os fins caseiros ou pequenos projetos divertidos;

• VIM, gEdit, Emacs ou TextMate – Para os fãs de sistemas linux-like;

• Terminal script – Para quem deseja executar testes rápidos ou não dispensa o prompt cool.

http://grupoweblovers.org

Page 7: Orientação a objetos com php

E RODA ONDE ?

PARA CONHECER / DESENVOLVER:

– XAMP, WAMP, EasyPhp : Aplicativos desenvolvidos para facilitar a inicialização do conjunto clássico de desenvolvimento: Apache + MySQL + PHP;

– PHP-Tríade: Mesma idéia, péssima implementação;

– Nignx, Apache httpd, IIS, JVM e outros servidores web que também rodam outras linguagens + módulo PHP simulando o mundo “real”.

PRODUÇÃO:

– Prefira um servidor confiável, rodando Ubuntu ou CENTos, com Apache httpd ou Nginx e de preferência exclusivo para aplicação separado do banco de dados.

http://grupoweblovers.org

Page 8: Orientação a objetos com php

Frameworks vs API vs CMS

O ZEND Engine, é uma API que surgiu quando Zeev e Andi se juntaram a Rasmus para melhorar a linguagem e sua posterior evolução a partir da 3ª versão;

PEAR/PECL – Repositório muito distinto, contendo milhares de códigos (features) e bibliotecas (libraries) que facilitam a vida do programador preguiçoso;

WORDPRESS – Grande e poderoso, é um framework com cara de CMS, ou vice-versa, amplamente utilizado foi recentemente adotado pela Microsoft em substituição ao Live Spaces;

CAKEPHP – Orientado a objetos é um dos mais novos e busca uma fatia do mercado de frameworks PHP assim como o CodeIgniter

JOOMLA, DRUPAL, etc – Uma miscelânea entre CMS e frameworks, mas que quebram o galho para quem prefere deixar a mágica acontecer.

http://grupoweblovers.org

Page 9: Orientação a objetos com php

http://grupoweblovers.org

Orientação a objetos é um estilo de desenvolvimento ou PARADIGMA;

Arquitetura em camadas é um ESTILO arquitetural;

MVC é um PADRÃO arquitetural de desenvolvimento;

Existem diversas formas de fazer a mesma coisa, e como o PHP surgiu para processar requisições e devolver HTML, a programação estruturada foi a resposta mais óbvia enxergada pelo seu desenvolvedor, com os paradigmas atuais, e com o conhecimento que temos hoje, vemos que a orientação a objetos responderá de forma melhor e muito mais natural aos problemas que a linguagem se propõe, assim, buscaremos aprender não somente a linguagem mas este paradigma!

OOP ou POO ? Tanto faz!

Page 10: Orientação a objetos com php

SENDO UM OBJETO

Abstração: é a habilidade de resumir um objeto do mundo real em uma estrutura que responde as necessidades do projeto sem se preocupar com o supérfluo.

Encapsulamento: é a técnica de expor as características e as capacidades de um objeto de forma a garantir perfomance e segurança das informações.

Herança: é a propriedade de um objeto ser replicado em outro transferindo suas características sem necessariamente ser copiado.

Polimorfismo: é a capacidade que um objeto tem de transformar as características herdadas de forma a aprimorá-las às suas necessidades

http://grupoweblovers.org

Page 11: Orientação a objetos com php

A LINGUAGEM ENFIM

Funções vs Comandos: echo, include, include_once, print, print_r, var_dump etc.

Tipos de dados: string, inteiro, double, boleano, nulo, array, objeto, recurso, misto e callback.

Estruturas prontas: Session, Post, Get, PDO etc.

Partes de um objeto: __construct(), __destruct(), try{} – catch(){} – finally{}, $this, $self.

http://grupoweblovers.org

Page 12: Orientação a objetos com php

AGORA É A SUA VEZ, DÚVIDAS? http://grupoweblovers.org