Livro
PHP Programando com Orientação a Objetos
PHP: Programando com Orientação a Objetos
(Inclui Design Patterns)
ISBN: 978-85-7522-137-2 (1ed)
ISBN: 978-85-7522-200-3 (2ed)
Páginas: 574
Autor: Pablo Dall'Oglio
Ano: 2007 (1ed) 2009 (2ed)
O PHP é uma das linguagens mais utilizadas no mundo. Sua popularidade se deve à facilidade em criar aplicações dinâmicas com suporte à maioria dos bancos de dados existentes e ao conjunto de funções que, por meio de uma estrutura flexível de programação, permitem desde a criação de simples portais até complexas aplicações de negócio.
O uso da orientação a objetos juntamente com o emprego de boas práticas de programação nos possibilita manter um ritmo sustentável no desenvolvimento de aplicações. O foco deste livro é demonstrar como se dá a construção de uma aplicação totalmente orientada a objetos. Para isso, implementaremos alguns padrões de projeto (design patterns) e algumas técnicas de mapeamento objeto-relacional, além de criarmos vários componentes para que você possa criar complexas aplicações de negócio com PHP.
Outros livros do mesmo autor:
![]()
![]()
![]()
Principais tópicos abordados no livro:
- Introdução ao PHP, arrays, strings e arquivos;
- Orientação a objetos, conceitos e implementações;
- XML, Web Services, tratamento de exceções;
- Técnicas de mapeamento objeto-relacional;
- Criação de classes para apresentação de HTML;
- Criação de classes para formulários e listagens;
- Criação de classes para manipulação de SQL;
- Criação de uma aplicação orientada a objetos;
Clique aqui para ver o Sumário
Clique aqui para ver uma amostra
Onde Comprar:
- O livro pode ser adquirido diretamente pela editora Novatec:
Clique aqui para entrar no site da Editora Novatec
- O livro pode ser adquirido pelo Submarino:
Clique aqui para entrar no site do Submarino (Ver as opiniões da primeira edição)
- O livro pode ser adquirido pela Cultura:
Clique aqui para entrar no site da Cultura (Ver as opiniões da primeira edição)
- O livro pode ser adquirido pela livraria TempoReal:
Clique aqui para entrar no site da Livraria Tempo Real
- O livro pode ser adquirido pelo LinuxMall:
Clique aqui para entrar no site do LinuxMall (Ver as opiniões da primeira edição)
- O livro pode ser adquirido pela Saraiva:
Clique aqui para entrar no site da Saraiva
Crie sistemas de maneira ágil com o livro:
Adianti Framework para PHP
Ver detalhes...
- Instalação e configuração;
- Modelos e persistência;
- Componentes de apresentação;
- Organização e controle;
- Desenvolvimento ágil com Studio Pro.
Tenha mais produtividade com:
Adianti Studio Pro: IDE para Adianti Framework
Mais informações...
- Desenhador de formulários;
- Geração automática de modelos;
- Geração automática de formulários;
- Geração automática de listagens;
- Criação do banco a partir da UML;
Mais detalhes:
O livro aborda desde os conceitos básicos de orientação a objetos como herança, encapsulamento, abstração, polimorfismo, associação, agregação, composição, interfaces, tratamento de exceções, manipulação de XML e Web Services, sempre através de exemplos 100% funcionais e comentados.
O livro explica a utilização da biblioteca PDO para acesso a dados e aborda com profundidade técnicas de mapeamento objeto-relacional, explicando com detalhes a teoria e dando exemplos práticos que explicam cada uma das abordagens, que possibilitarão você a escolher a melhor forma de mapear os objetos para bases de dados relacionais.
O livro explica passo-a-passo como criar uma aplicação de negócio 100% orientada a objetos em PHP, desde a camada de persistência dos dados até a construção de formulários e listagens, sendo que estas tarefas serão totalmente automatizadas, como nos exemplos a seguir:
Criação de um formulário:
http://www.adianti.com.br/resources/book/form.php
Criação de uma listagem:
http://www.adianti.com.br/resources/book/list.php
Persistência de objetos:
http://www.adianti.com.br/resources/book/model.php
O último capítulo apresenta o desenvolvimento de aplicação de controle de estoque, com cadastro de clientes, mercadorias, fornecedores, processo de venda e relatório de vendas, todo desenvolvido com as classes criadas ao longo do livro.
O livro cobre um total de 28 design patterns, alguns clássicos (gamma) e outros voltados ao desenvolvimento de aplicações de negócio (fowler), sendo todos abordados com profundidade e ilustrados com códigos práticos e voltados ao desenvolvimento de aplicações de negócio em php:
1) Factory Method
2) Singleton
3) Value Object
4) Registry
5) Strategy
6) Domain Model
7) Table Module
8) Table Data Gateway
9) Data Transfer Object
10) Row Data Gateway
11) Active Record
12) Data Mapper
13) Identity Field
14) Foreign Key Mapping
15) Association Table Mapping
16) Single Table Inheritance
17) Concrete Table Inheritance
18) Class Table Inheritance
19) Composite
20) Query Object
21) Layer Supertype
22) Repository
23) Model View Controller
24) Page Controller
25) Front Controller
26) Template View
28) Remote Facade
29) Lazy Initialization
Resenha do Livro (Por Herbert Araujo - ProPHP)
PHP Programando com Orientação a Objetos"Em dezembro de 2006 particiei da primeira PHP Conference Brasil e lá pude conhecer de perto a comunidade PHP no Brasil e tomar ciência do crescente interesse em assuntos como a orientação a objetos e design patterns. Tudo que aconteceu colaborou, de certa forma, para que eu decidisse escrever este livro, que é minha parcela de contribuição para quem está começando agora"
Em um breve relato de sua carreira profissional que entre outras coisas cita o PHP Conference Brasil, evento realizado pelo ProPHP e Tempo Real Eventos em dezembro de 2006, Pablo Dall Oglio inicia "PHP Programando com Orientação a Objetos", livro com 7 capítulos (570 páginas) que aborda desde a sintaxe básica do PHP até técnicas avançadas de programação como os principais design patterns utilizados atualmente.
Depois de uma introdução à linguagem no primeiro capítulo, o segundo inicia um estudo detalhado da orientação a objetos, e trata, além dos conceitos básicos, tópicos menos triviais como polimorfismo, abstração, encapsulamento, interfaces, exceções etc.
Ainda nesse capítulo dedicado à orientação a objetos, é possível estudar através de vários exemplos, sobre manipulação de XML utilizando a extensão do PHP5 simpleXML.
O terceiro capítulo trata acesso à banco de dados e é nele que se inicia a construção dos componentes que serão utilizados no projeto final (capítulo 7). É também nesse capítulo que se inicia a abordagem dos principais design patterns atuais. Aqui pode ser visto a construção de classes que implementam Query Object (construção de instruções SQL, fazendo uso do PHP Data Objects, PDO), Composite Pattern (relacionamento de objetos) e Strategy (encapsulamento de processos).
Continuando com acesso à dados, o capítulo quatro estende o assunto, falando de mapeamento objeto-relacional e explica minuciosamente como persistir e manipular objetos em banco de dados relacional através de vários patterns como por exemplo Active Record e Data Mapper. Por fim o capítulo encerra-se tratando de manipulações de coleções de objetos em banco da dados.
A criação de componentes continua nos capítulos cinco e seis, onde novas classes, agora voltadas para a interface e entrada de dados do usuário, são criadas. Enquanto o primeiro desenvolve técnicas para manipulação de HTML, folhas de estilos CSS, imagens e tabelas, o segundo trata, através dos formulários, das mais diversas formas de interação do usuário com à aplicação. É importante ressaltar que todos os elementos das páginas Web são tratados aqui como objetos e atributos tornando o processo de manipulação totalmente orientado a objetos.
O capítulo seis ainda aborda listagens de dados, estáticas e dinâmicas, que podem ou não receber ações do usuário como por exemplo um comando de edição, deleção ou ordenação.
O capítulo sete agrupa todos os componentes criados nos capítulos anteriores com o intuito de criar uma aplicação completa que permite controlar o cadastro de clientes e produtos, registrar vendas e emitir relatórios.
Alguns dos mais belos conceitos e padrões do paradigma orientado à objetos também são apresentados no final do livro; o modelo MVC, amplamente difundido nos mais modernos Frameworks; Singleton Pattern, forma elegante de disponibilizar dados únicos em todos os escopos da aplicação; Registry Pattern, utilizado para manter dados da seção de um determinado usuário; Front Controler, que permite centralizar requisições; e Template View, que tem como objetivo tratar templates HTML.
Por fim a obra é finalizada falando sobre Web Services juntamente com o Pattern Remote Facade e ainda um exemplo de interface que utiliza PHP-GTK.
Apesar da enxurrada de informações que podem ser adquiridas quando se fala sobre orientação a objetos e tecnologias relacionadas, o livro "PHP Programando com Orientação a Objetos", consegue retratar o assunto de forma clara e concisa permitindo o entendimento por parte de programadores iniciantes e o aprimoramento dos já iniciados. Sem dúvida que o livro passa a ser um ótimo investimento para o programador PHP.
Herbert Araujo
Gestor ProPHP
Depoimentos
"Apesar de minha grande dificuldade em entender a programação orientada a objetos aos meus 58 anos de idade, após ler seu livro pela terceira vez, estou percebendo o quão importante está sendo este aprendizado. Vejo que minha grande dificuldade no aprendizado foi não ter dado atenção devida ao comando __get (crucial no entendimento dos exempos apresentados no livro).
Após criar alguns módulos do meu modesto projeto, rodei o sistema para testa-lo, esperei encontrar "aqueles tradicionais erros", nada, o programa funcionou redondinho sem aqueles desgastes tradicionais de "CONSULTA/ALTERAÇÃO/EXCLUSÃO/ETC". (Foi quando senti a necessidade de interromper minhas atividades e escrever-lhe estas linhas)
Estou me sentindo proprietario de uma verdadeira linguagem de programação, pois sinto que posso adaptar as classes sugeridas em seu livro, e já fiz até algumas alterações.
Poderia lhe contar a minha história de vida, para que você pudesse sentir a grande oportunidade de reconstrução profissional que você colocou em minhas mãos, pois não sou (digo) vou ousar dizer "não era" tão safo assim em programação. Portanto reiterando o que já lhe disse no passado, receba meu profundo agradecimento pela oportunidade de capacitação que me ofereceu através do seu livro.
Felicidade para você e todos os seus familiares, parceiros e amigos."Joaquim Afonso da Silveira
"Comentário: Já passei por COBOL (10 anos), FoxPro e Visual FoxPro (outros 10 anos), ORACLE (Forms e Report) e outros "dialetos" (C, Turbo Pascal, Assembler, VB e etc.) mais, e comecei a minha jornada pelo PHP no início de 2005 e não parei mais.
O problema é que trabalhei sozinho durante os últimos 7 anos, na área de desenvolvimento de sistemas de uma grande empresa, e o que pude aprender a mais do PHP foi dando trombadas aqui e ali, e o meu estilo macarrônico de desenvolvimento, nascido nos áureos tempos do COBOL, permaneceram...
No início deste ano eu encontrei o seu livro PHP - Programando com Orientação a Objetos, e devo confessar que, depois de muitos anos, esse é o primeiro livro técnico que eu leio de cabo a rabo, e isso em menos de uma semana. É óbvio que ainda estou boiando em muitas técnicas que você apresenta, pois a OOP, para mim, ainda é uma grande novidade, em termos de uso (e teoria). Só para você se situar, a minha formação é em Arquitetura, ou seja, o que aprendi até hoje, foi muito mais como auto-didata do que de qualquer outra maneira.
Bom, estou escrevendo para você por dois motivos, e o primeiro deles é para te dar os parabéns pelo belíssimo trabalho que fez nesse livro. Já nem me lembro mais quando foi a última vez que li um livro técnico que apresentasse tamanha clareza e lógica no seu desenvolvimento... Normalmente eu compro livros para me servirem de referência técnica, onde vou pinçar esse ou aquele item específico, totalmente diferente desse caso."Maxmilian Conti
"Comentário: excelente obra didática sobre essa linguagem, mostrando a competência, clareza e capacidade do autor nacional. Não é a obra completa sobre PHP porque é um assunto muito amplo, mas com certeza é um dos melhores livros dos que possuo.Recomendo"
Jesse James Matos Soares
de Teresina-PI
"Estou enviando esse email por comprei o seu livro e fiquei surpreso com o conteúdo. Muito bem explicado, os exemplos são simples e claro. Com certeza é o livro que todo programador de php deve ter. Eu tenho uma lan house, então passo o dia inteiro na internet. Algumas vezes faço freelas fazendo sites ou mesmo programando alguma coisa. É meio complicado ser auto-didata. Eu estava meio desanimado para programar. Arrisquei comprar seu livro e o ânimo voltou, por isso estou enviando esse email para deixar meu sincero parabéns pelo seu trablho. Um grande abraço do leitor do seu livro"
Samuel Gomes da Rocha
"Muito bom!!! A didática do livro é excelente. Exemplos bem comentados, principalmente no esclarecimento sobre design patterns. Recomendo a quem pretende se profissionalizar em PHP."
Cácio José da Costa Silva
de Brasília-DF
"A mais ou menos uns 3 meses resolvi entrar de cabeça na programação. Sou Designer Gráfico e Web Design formado, mas sentia que estava faltando algo. Tive a oportunidade, por um grande amigo, de entrar em uma empresa onde estou atualmente apanhando do php, pois o framework (desenvolvido por ele) é totalmente OO... Depois de um suadouro danado encontrei um artigo seu no apostilando.com falando sobre php oo, li achei exelente e procurei mais coisas escritas por você, eis que encontrei no submarino.com.br seu livro "PHP Programando com Orientação a Objetos". Vi a editora, entrei no site da novatec e baixei o primeiro capitulo do seu livro... e não é que comecei a entender coisas que eu não entendia!!! Imediatamente comprei seu livro e chegou a minha casa ontem a noite. Hoje eu estava lendo ele e a cada página entendendo mais e mais, o que tive muita dificuldade no inicio com outros livros que encontrei no mercado. Resumo, procurei seu e-mail no livro pois eu tinha que dar os parabéns pelo exelente trabalho! Graças ao seu livro eu estou me aprofundando mais no php oo. Eu ainda não finalizei a leitura, mas assim que terminar tenho certeza que terei uma exelente base no php. Ja vi também que você possui outros livros, e que irei comprar assim que terminar este!! É isso Pablo, eu acho que você merece esse reconhecimento e por isso resolvi entrar em contato!! Continue escrevendo, você tem o dom! Grande abraço, "
Fernando Valente
"Comprei hoje o livro PHP - Programando com Orientação a Objetos e gostaria apenas de comentar que pelo pouco que já vi, achei o livro interessante e bem escrito - uma raridade quando o assunto é tecnologia de informação. Infelizmente, os livros de profissionais brasileiros são geralmente sofríveis no aspecto comunicação. Não raro, são compilações de apostilas, sem nenhuma preocupação com o leitor. Achei o seu o contrário disso: bem explicado, claro, objetivo e também bem-humorado."
Marcos Buarque
de Rio de Janeiro
"Não tenho medo de afirmar que este livro é uma das maiores conquistas da literatura php-poo que temos em português. Ainda não li tudo, mas até o capítulo que fui obtive inúmeras revelações interessantes. Eu particularmente não entendia direito essa coisa de classes e objetos, apenas usava-as. Quando comecei a ler o livro, percebi que ainda estou muito longe de um bom programador, e isso me deixou feliz. Sério, me deixou feliz porque percebi que posso chegar lá. Tenho vários livros sobre o tema e o seu se tornou preferencial logo de cara. Parabéns pelo livro. Provavelmente comprarei outros que tenha escrito. Meu principal objetivo é aplicar esse conhecimento no departamento de recursos humanos aonde trabalho, desenvolvendo sistemas que serão usados por todos os outros setores vinculados, de maneira simples e intuitiva. O seu livro vai me ajudar nesse projeto."
Leonardo Cruz Costa
de Quissamã-RJ
"Era o que eu esperava. Trata muito sobre POO e de uma maneira fácil de se entender."
Augusto Bennemann
de Encantado-RS
"Este livro é COMPLETO. Ele ensina você desde os principios básicos! E com linguagem simples! Recomendo!!!"
Jean Carlos
de Florianópolis-SC
"Livro super didático, com conceitos e praticas totalmente voltados ao O.O. Acreditem, foi mais fácil assimilar os paradigmas com PHP do que quando tentei com Java. Possue exemplos comparativos entre a programação tradicional e a O.O. Livro indicado e aprovado."
Rodrigo Heringer
de Queimados
"Excelente livro, linguagem clara e objetiva, muitos exemplos, aborda com muita clareza os principais padrões de projeto. Muito bom o livro, eu comprei e indico."
Robson
de Canoas-RS
"Este Livro possui uma abordagem prática e funcional. Eu recomendo..."
Hilton Gonçalves
de São José dos Campos-SP
"Muito bom o livro, já comecei a ler e é bastante didático além de ter excelentes exemplos. Um excelente livro para se aprender PHP com O.O."
Eros Stein
de Vitória-ES
"Bom pessoal, com certeza o livro deve ser otimo por ser do Pablo, porem acho que poderiam comentar mais sobre o sumario do mesmo, para que pudessemos saber quais sao todos os assuntos aberdado no livro, :-)"
Wanderson Scopel
de Vitória-ES
Revisões
2a edição (Junho de 2009)
2a edição - 1a reimressão (Março de 2010)
- Todos os exemplos foram gerados e testados para não gerarem nem menos um E_NOTICE e também para funcionar com o short_open_tags desligado;
- Foram removidas referências à palavra-chave "var", sendo substituídas por "public", nos exemplos introdutórios;
- Foram tratados ajustes com quebras de linhas na web;
- foram adicionadas mais observações ao longo do livro para sinalizar onde se encontram os arquivos de referência como arquivos de criação do banco de dados;
- Um "Catchable fatal error" ocasionado por uma mudança na API do php5.1 para o php5.2 foi resolvido;
- Foram feitas pequenas melhorias na classe TForm, principalmente no método getData() e no método show(), que permitirá realizar upload de arquivos sem problemas agora;
- Foi corrigido um bug no exemplo form4.php, que o impedia de funcionar no Internet Explorer;
- A principal mudança se dá em função da classe TRecord. A partir de agora, os objetos ActiveRecord poderão definir qualquer nome de tabela na qual eles serão persistidos no banco de dados e não utilizarão mais o nome de tabela baseado no nome da classe como era na primeira edição;
- Para finalizar, agora a segunda edição é em capa-dura, muito mais resistente, e com maior durabilidade mesmo consultando-o diversas vezes.
2a edição - 2a reimressão (Dezembro de 2010)
- Foram feitos ajustes nas declarações de visibilidade dos atributos da classe TSqlInstruction, TSqlInsert e TSqlUpdate;
- Foram realizadas melhorias gerais quanto ao versionamento dos arquivos utilizados (Pessoa.class.php, Pessoa2.class.php);
- Foram acrescentadas novas observações para o leitor situar-se melhor quanto ao versionamento das classes desenvolvidas;
- Foram feitas correções na documentação da função in_array();
- Foram feitas melhorias na nomenclatura dos arquivos do capítulo 2, quanto à evolução da escrita dos exemplos (objeto1.php, objeto2.php, ...)
- Foi feita uma correção quanto à porta default de conexão do Mysql (3306, e não 3307);
- Foi feito um ajuste nas classes que utilizam a função date() para ajuster o timezone. Ex: TLoggerXML, TLoggerHTML e TLoggerTXT;
- Foram feitos ajustes em todas classes que utilizavam métodos mágicos __set(), __get() para acertar a visibilidade (public);
2a edição - 3a reimressão (Outubro de 2011)
- Foram feitas melhorias nas imagens da documentação dos comandos IF, WHILE e SWITCH;
- Foram feitas melhorias na imagem 2.10 (cesta de compras);
- Foram acrescentadas observações para desenvolvedores que utilizam os exemplos do livro com Mysql relativas ao controle de transações;
- Foram feitas correções na documentação da função opendir();
- Foram feitas correções nos diagramas das classes TElement, TStyle, TImage e TTable quanto à visibilidade dos atributos e métodos;
- Foram feitas correções em passagens de texto que se referiam às estruturas de TTable como agregação, quando na verdade são uma composição;
- Foi feita uma correção no texto em relação à precedências "Obs.: Or e and têm precedência menor que && ou ||.";
- Todos exemplos do livro foram ajustados para rodar com o "Strict Standards" ligado. Exemplo: Chamadas de métodos estáticos que não estavam com a visibilidade "static";
- Ajustes no texto "O que é o PHP";
- Atualizada a seção "Extensões de arquivos";
- Ajustes na declaração de sintaxe do foreach;
- Acrescentada uma observação na seção de variáveis globais, explicando por que seu uso não é recomendado;
- Corrigida a sintaxe na documentação da função file();
- Melhorias na documentação da função array_reverse();
- Melhorias na documentação da função array_slice();
- Melhorias na documentação da função asort();
- Melhorias na documentação da função strotupper();
- Criada uma observação no exemplo de associação;
- Foi melhorado significativamente o versionamento de arquivos, principalmente no capítulo 2;
- Foi disponibilizado nos exemplos, uma versão do capítulo 7 com sqlite.






