WordPress e programação orientada a objetos – uma visão geral

Publicados: 2021-04-20

Se você é um desenvolvedor WordPress, é provável que escreva seu código de forma processual. Você define algumas etapas ordenadas simples e as segue para obter a saída desejada e resolver um problema. Um exemplo simples é um loop do WordPress como o mostrado abaixo:

 <?php if ( have_posts() ) { while ( have_posts() ) { the_post(); // // Post Content here // } // end while } // end if ?>

Em um loop, você primeiro verifica se tem postagens que correspondem à consulta em execução e, em caso afirmativo, começa a percorrer as postagens com o loop while. O mesmo vale para cada função personalizada que você inserir no arquivo functions.php .

Neste artigo, vamos sair da programação procedural e examinar um estilo de programação chamado Programação Orientada a Objetos (OOP). Examinaremos como isso é diferente do que você usou até agora como estilo de programação e veremos algumas de suas vantagens. Mas o mais importante, explicaremos como os conceitos orientados a objetos funcionam em um ambiente WordPress e a relação entre eles.

O que gostaríamos de estabelecer antes de nos aprofundarmos nisso é que é importante que você aprenda sobre o papel da programação orientada a objetos e quando ela é adequada para ser usada. Aprender a construir um plugin ou tema orientado a objetos pode ser adequado para o seu projeto, mas é importante que você entenda quando esse for o caso. Esperamos que este artigo ajude você a entender quando e por que um determinado projeto pode ser adequado para ser escrito em código orientado a objetos.

O problema

O próprio WordPress já o levou a pensar processualmente. E, embora o WordPress use objetos PHP o tempo todo, isso não significa que o próprio WordPress seja Orientado a Objetos. Esta é uma interpretação errônea comum do que é OOP e a razão pela qual muitas pessoas acreditam que o WordPress é Orientado a Objetos, embora não seja.

É importante esclarecer que não estamos dizendo que você deve abster-se de usar programação procedural, mas é verdade que existem limitações nesse estilo de codificação. Por exemplo, ao personalizar um tema ou plug-in, é provável que você obtenha a saída HTML desejada escrevendo o código de maneira processual. Mas e quanto à escalabilidade e manutenção futura?

Ao construir um plugin personalizado, é muito importante que você faça um balanço e avalie o quão escalável ele será. Por exemplo, você provavelmente desejará aumentar seu plug-in adicionando mais recursos à medida que o plug-in amadurece. É neste ponto que você começará a ter dificuldades em organizar seu código ao codificar proceduralmente.

Mas mesmo que você não esteja codificando plugins, com a programação procedural você sempre corre o risco de chegar a um ponto em que não tem mais certeza de como tudo se encaixa. Como resultado, cada pequena mudança que você faz pode ter consequências não intencionais.

A programação orientada a objetos é usada para resolver problemas mais complicados. Ele pode compartilhar o mesmo objetivo com a programação procedural, mas em muitos casos oferece uma maneira superior de trabalhar. Permite criar soluções arrojadas para um problema que sejam reutilizáveis, organizadas e seguras.

Como a programação orientada a objetos resolve problemas

A programação orientada a objetos tem dois conceitos importantes: Classes e Objetos .

As classes são essencialmente um modelo usado para criar objetos. Cada objeto tem seus próprios métodos e conjunto de propriedades e o valor dessas propriedades pode variar.

Portanto, antes de avançar, é vital ter certeza de que entendemos o que é um objeto. Vamos dividir uma frase simples como exemplo:

'Eu como maçãs verdes'.

Maçã é o Objeto, verde é a cor do Objeto (uma propriedade do Objeto) e o verbo 'comer' é o método (função).

Uma classe define as propriedades e o comportamento de todos os objetos que a utilizam. A solução de problemas com OOP é alcançada combinando esses 'tijolos' de programação da maneira correta.

Antes de mergulhar, um primeiro passo importante é dedicar algum tempo para projetar sua solução proposta. Em essência, o que você precisa fazer é:

  1. Defina o problema e o que o plugin deve fazer para resolvê-lo
  2. Descrever as classes e seus relacionamentos, bem como a interação entre os objetos
  3. Transforme tudo em código
  4. Revise e teste o projeto

Enquanto você está nesta etapa, tenha em mente que você terá sorte se acertar na primeira tentativa! Você precisará recomeçar até obter o conceito certo que resolverá o problema. Considere isso como parte de um processo criativo que oferecerá um conjunto de ferramentas que você poderá usar posteriormente em equipe sem conflitos.

Em um próximo artigo relacionado à POO, demonstraremos um exemplo simples que dará vida a toda a teoria acima.

Os recursos da programação orientada a objetos

Antes de entrarmos nos recursos da programação orientada a objetos, vamos ver se podemos esclarecer melhor como ela funciona com uma metáfora simples.

Digamos que temos uma caldeira que usamos para ferver água. Quando usamos a máquina, fazemos de uma determinada maneira, a única maneira que o fabricante nos permite. Não podemos substituir a forma como a caldeira funciona quando pressionamos o botão 'On' e, para ser honesto, nem queremos ou precisamos. Isso nos dá duas vantagens muito importantes.

Em primeiro lugar, a funcionalidade limitada (ou seja, para ferver um pouco de água) significa que o sistema é mais robusto e mais seguro. O conjunto limitado de recursos e o fornecimento de apenas um botão 'On/Off' significam que, como usuário, não podemos chegar perto do mecanismo da caldeira. Por padrão, isso significa que há menos erros e o sistema é mais robusto como um todo. A simplicidade da operação também o torna muito mais amigável com praticamente qualquer pessoa capaz de usá-lo.

Hospede seu site com a Pressidium

GARANTIA DE DEVOLUÇÃO DO DINHEIRO DE 60 DIAS

VEJA NOSSOS PLANOS

Tendo isso em mente, vamos ver como isso se relaciona com a programação orientada a objetos. Em teoria, OOP tem três características valiosas: Encapsulamento, Herança e Polimorfismo .

O que o Encapsulation faz é agrupar os dados e o comportamento dentro de uma única entidade. Dentro da Classe, você pode definir como ela será usada (boiler button) e controlar a visibilidade usando a rotulagem Public, Protected ou Private nas Classes. Isso é o que também o torna um sistema muito seguro, pois permite controlar quem tem acesso. Isso também significa que é mais fácil de manter e também de usar.

Herança é ajudar você a reutilizar código entre suas classes. Um exemplo é quando uma classe estende outra classe. Você pode ter usado isso ao estender a classe Walker para alterar a saída HTML de dados semelhantes a uma árvore, como um menu ou estrutura de comentários. Compreender o relacionamento entre suas classes permitirá que você crie um código orientado a objetos reutilizável.

Finalmente, o polimorfismo é o que faz com que todos esses relacionamentos funcionem juntos, o que define o que suas classes têm em comum, como reutilizar esses elementos comuns e se eles estão relacionados a qualquer outra coisa.

Conclusão

Sem alguns exemplos concretos, é provável que todos os itens acima ainda sejam um pouco confusos. No entanto, não é menos importante explicar a teoria por trás da programação orientada a objetos e, em artigos futuros, avançaremos com alguns exemplos úteis para que você possa ver como usar esse método de programação empolgante no mundo real.

Nosso objetivo é que, ao concluir a leitura de nossa série de artigos sobre POO, você tenha confiança para usar esse método de programação em uma ampla variedade de situações. Enquanto isso, você pode continuar lendo sobre POO na Wikipedia.

Clique aqui para ler a Parte 2 em nossa Série de Programação Orientada a Objetos