Curso de PHP Orientado a Objetos – Parte 1

Slide1Primeiro artigo do curso de PHP Orientado a Objetos. Nesta aula seremos apresentados aos conceitos iniciais da Programação Orientada a Objetos.

Motivado pela falta de material de qualidade, resolvi iniciar hoje uma série de artigos sobre PHP Orientado a Objetos. 

Pré-Requisitos:
  • PHP Intermediário
  • Básico de MySql
  • Básico em UML
Ao final deste artigo, você será capaz de:
  • Diferenciar POO da programação procedural
  • Entender os benefícios da POO
  • Definir Classe e Objetos
  • Criar uma classe básica

A velha programação estruturada:

Quando se trata de programação estruturada, estamos lidando com um conceito que dominou o contexto da engenharia de software durante várias décadas. 
Na programação estruturada, o blocos de código (chamaremos de procedimentos e funções) se comunicam basicamente por meio de três mecanismos básicos: Sequência, Decisão e Iteração.

Sequência: Representa os passos para executar um programa: Leia um valor, repita esse valor 10 vezes, escreva na tela: “Concluído”.

Decisão: Permite o uso de expressões lógicas: SE o valor for igual a x ENTÃO execute a função Y.

Iteração: Permite a execução repetitiva de um determinado bloco de comandos.

Benefícios da programação orientada a objetos:

Reutilização de código: Com certeza uma das maiores vantagens da POO. Uma vez que você escreveu um determinado código, nunca mais será reescrito, no máximo modificado através de algumas técnicas que veremos no decorrer do curso. Característica também denominada DRY (Don’t Repeat Yourself). 

Eficiência: A POO é associada a melhor eficiência devido suas características inerentes.

Refactoring: Facilidade na hora de  modificar a estrutura interna de um código, sem alterar o resultado final.

Manutenibilidade: Facilidade na manutenção do sistema, mesmo quando escrito por terceiros.

Pablo Dall’Oglio define o paradigma da Orientação a Objetos em seu livro, PHP Programando com Orientação a Objetos como:

“A orientação a objetos é um paradigma que representa toda uma filosofia para construção de sistemas. Em vez de construir um sistema formado por um conjunto de procedimentos e variáveis nem sempre agrupadas de acordo com o contexto, como se fazia em linguagens estruturadas (Cobol, Clipper, Pascal), na orientação a objetos utilizamos uma ótica um pouco mais próxima do mundo real. Lidamos com objetos, estruturas que já conhecemos do nosso dia-a-dia e sobre as quais possuímos maior compreensão.”

Orientação a Objetos – Estudo das Classes e Objetos


O conceito de classe nada mais é do que uma estrutura que define um tipos de dados, podendo conter variáveis (chamaremos de atributos) e também funções (chamaremos de métodos). Classes manipulam definições e objetos manipulam valores.


Como exemplo, vamos criar uma classe denominada carro. Automaticamente somos levados a pensar em algumas características inerentes aos carros que conhecemos, chamaremos de propriedades:


Propriedades do carro: Ano, modelo, cor, fabricante e etc..


Agora vamos pensar no que o carro faz, chamaremos de métodos:


Métodos: Locomover, frear, buzinar e etc..


Seguindo esta linha de pensamento, vamos criar a classe que define o carro, com suas devidas propriedades e métodos, e em seguida comentaremos.

Para testar, crie um novo arquivo php, salve como Carro.class.php. Não esqueça das tags de abertura e fechamento do php ().


Este é o escopo básico de uma classe. Na linha 1 temos o que define uma classe (palavra reservada Class), seguida do nome da classe, neste caso Carro.
Observação: Por convenção, o nome das classes devem iniciar com letra maiúscula.


Nas linhas de 3 a 6, temos os atributos da classe, precedidos pela palavra reservada public, usado para indicar que aquele atributo é publico (veremos isso nas próximas aulas).


Um objeto contém exatamente a mesma estrutura e as propriedades de uma classe, no entanto sua estrutura é dinâmica, seus atributos podem mudar de valor durante a execução do programa e podemos declarar diversos objetos oriundos de uma mesma classe.

Exemplo de Objetos

O que fizemos foi criar o objeto carro,  e em seguida preenchemos seus atributos.
É importante analizar e entender a metodologia utilizada, fique atento aos comentários.


Continuaremos na próxima aula.


39 Responses to Curso de PHP Orientado a Objetos – Parte 1

  1. leo alves disse:

    Realmente é uma ótima iniciativa esta sequência de matérias sobre POO. Assim que surgir uma oportunidade, gostaria de ver aqui no site, alguma coisa sobre Frameworks. É um assunto que acredito, interessaria muito públicos mais experientes.

    O post ficou execelente! Bom trabalho.

  2. webdascoisas disse:

    Amigo, parabéns pelo iniciativa, muito didático e profissional.

    Forte abraço.

    William Castro
    webdascosias.com
    @WilliamPub

  3. Anonymous disse:

    Maravilha. Para eu que sou viciado em procedures e functions desde 1971, e tinha muita resistência à OOP, este curso é simples, completo e fácil, bem melhor do que já estudei de Java. Como Desenvolvedor PHP desde 2003, eu recomendo. Você está de parabéns Leandro.

  4. Luciano disse:

    Ótimo curso, ótima explicação. Sempre travava quando começava aprender classe e tudo mais e esse curso foi uma luz. Parabéns dude, foi de enorme ajuda. Curso tá ótimo!

  5. Anderson Soares disse:

    Leandro, o material está muito bom, muito detalhado, bem explicado e exemplificado. Está de parabéns, estou acompanhando!

  6. Gabriel disse:

    muito bom esse curso, você está de parabéns. A única coisa que falta é você ensinar a orientação a objetos junto com banco de dados, conexão, consultas, etc. Se tivesse isso seria PERFEITO. de qualquer forma, seus cursos são ótimos, mais uma vez, parabéns. Abraços.

  7. davi (ex-aluno) disse:

    Valeu leandro essa sua inciativa mostra que você realmente é um cara diferenciado na sociedade,afinal conhecimento é para ser repartido,

  8. Michael Colla disse:

    Parabéns pela objetividade e didática do artigo, realmente muito bom, acompanhando os próximos!

  9. Maurício Jr. disse:

    Ótimas postagens! Objetivo e muito claro. Parabéns e obrigado por compartilhar o seu conhecimento com a gente.

  10. Ronaldo disse:

    Não faltou as aspas “” na linha 8 … $carro->ano = 2012; ??

  11. Thiago dia disse:

    Muito bom cara , parabéns pela iniciativa !

  12. JoaoRenato disse:

    Parabéns pela iniciativa…muito bacana mesmo!

  13. diego disse:

    Muito boa a primeira aula, partindo para 2º aula.
    Vlww

  14. Parabéns pelo conteúdo cara.

  15. Marcelo Augusto disse:

    Muito bom o curso, muito bem explicado, parabens cara e obrigado por compartilhar conhecimento, agradecido.

  16. Rafael disse:

    Excelente!

    Deveriam fazer uma apostila com todo o conteúdo + códigos de exemplo, etc., e disponibilizar pra download.

    Ou, melhor ainda, além disso fazer tutoriais em vídeo.

    Seria ótimo! ;-)

  17. uhelliton disse:

    Obrigado Leando pela ótima iniciativa…Hoje comercei meus estudos OO

  18. Muito bom o site e o material. Parabéns

  19. Adriano disse:

    Ótimo conteúdo, muito bem escrito. Verei os próximos.

  20. Oclácio disse:

    Cara POO no PHP, não entrava na minha cabeça de geito nenhum, não sabia o que fazer… e graças a este conteúdo consegui desenrolar-me…

    excelente conteúdo… parabens

  21. Diego disse:

    Gostei do seu artigo. Muito simples, funcional e bem explicado. Gostei da linguagem empregada. Talvez “suscinto” seja como definiria seu artigo em uma palavra.

  22. Whelynton disse:

    Muito bom! Valeu pelo material!

  23. Williams disse:

    Ótimo material,, é de conteúdo assim que se faz uma net interessante!! Obrigado!

  24. Karlos disse:

    Ótimo Iniciativa, Post …. tinha algumas dúvidas que não fixaram na minha aprendizagem…estava com uma abobrinha quanto a POO em um dos meus projetos …e achei a resposta em um dos POSTS deste Curso…minerando na rede…..

    Partindo do Principio … vou dar continuidade no Curso..

    Mais uma vez .. vlw pela iniciativa …
    Att, Karlos

  25. Raniel disse:

    Parabéns pelo artigo, muito bom e profissional.

  26. Frank Tavares disse:

    Nossa muito obrigado! Parabéns pela iniciativa, ótimo conteúdo!

  27. André Vieira disse:

    Primeiro aula, nota 10.
    Iniciativa, nota 10.
    Parabéns, continue assim. Publicando matérias de altíssima qualidade.

    []s.

    André Vieira.

  28. Primeiramente, parabéns pela iniciativa! =)
    Mas que convenção é essa na qual o nome das classes devem iniciar com letra maiúscula?
    Abs

  29. Carlos disse:

    Está de parabéns, ótimo material, tenho certeza que aprenderei muito.

  30. Júlio disse:

    Parabéns pelo material e por se dispor a compartilhar seus conhecimentos.

    Começando os estudos….

  31. Leandro disse:

    Gostei muito da primeira parte… Vai me ajudar muito.

    Vlw’s e continue…

  32. Cleberson Madureira Carvalho disse:

    Excelente iniciativa!

    Prepare-nos uma apostila com o material, seria ótimo tb.

  33. Marcelo disse:

    Obrigado pelo conhecimento dividido!

  34. Paulo Sérgio Duff disse:

    Até que enfim um exemplo decente de aula de OO.
    Parabéns ao autor!

  35. Jacson Leite disse:

    Procurando aprender PHP OOP, hoje. Cheguei a este site. Gostei de sua explicação de uma forma que podemos entender com facilidade. Vou continuar meus estudos por aqui.

    Abraço.

  36. Douglas disse:

    Parabéns pela iniciativa louvável de transmitir conhecimento e pela qualidade do material. Saindo agora do paradigma da programação estruturada e essa série de artigos abriu a minha mente para a programação orientada a objetos. Melhor conteúdo no que se refere a PHP Orientado a objetos que encontrei na internet. Novamente, meus parabéns e muito obrigado!

  37. Pedro Nunes disse:

    Boas,

    Penso que é informacao mt util no inicio básico mas o programacao mais correctar seria criar variáveis private e criar funções do setNome(nome), setMorada(morada) e os respectivos inspectores getNome(), getMorada(). Pelo menos em java tomamos estes procedimentos para não haver criação de váriaveis com o mesmo nome.

    Obrigado pelo post …penso que aprendi bastante na syntax de PHP no ambito POO.

Deixe uma resposta para Thiago dia Cancelar resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *