Orientação a objetos com
PHP Elionai Moura
@eli_embits
http://grupoweblovers.org
QUEM ?
• Graduando em Análise e Desenvolvimento de Sistemas
• Desenvolvedor Web desde 2007
• Idealizador do Grupo WebLovers
• Ativista do conhecimento compartilhado
http://grupoweblovers.org
O QUÊ ?
• PORQUÊ TUDO ISSO?
• DESENVOLVIMENTO VS PRODUÇÃO
• ORIENTAÇÃO A OBJETOS – OOP OU POO?
• A LINGUAGEM PHP
• HACKING SESSION!
http://grupoweblovers.org
QUEM QUER $ $ $ $ ?
• É bonito?
• É bom?
http://grupoweblovers.org
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
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
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
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
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!
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
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
AGORA É A SUA VEZ, DÚVIDAS? http://grupoweblovers.org
Top Related