Pular para o conteúdo principal

backend/base/

Na pasta base/ ficam todos os arquivos que fazem parte da base do tema, ou seja, aqueles que não fazem parte de um projeto em específico, são herdados em todos os projetos.

São a base essêncial para a construção de novos projetos, e o que faz o tema ser o tema.

Divisão das pastas

Dentro da pasta teremos várias outras pastas, que irão agrupar as classes de acordo com o tipo de funcionalidade/tema que elas aplicam. Além disso, outras estruturas como interfaces, traits e funções utilitárias (utils) terão uma pasta cada uma, com seu nome equivalente.

api/

Aqui vamos ter classes que lidam com APIs. Vai ter a classe Alp_API, que é uma classe mais genérica para lidar com APIs, e outros exemplo mais específicos, como Alp_IBGE, que vai lidar com a API do IBGE.

ecommerce/

Aqui vai englobar todas as classes que estão dentro do tema de e-commerce, como Alp_Produto, Alp_Parcelas, Alp_Filtros, etc. Tudo que seja necessário para construir um e-commerce.

Se o site não for de e-commerce, e portanto não estiver com Woocommerce instalado, esses arquivos não serão incluídos.

entities/

Vamos ter aqui algumas entidades que são implementadas por padrão na base, pois são utilizadas pela maioria dos projetos, como por exemplo Alp_Banner para banners na homepage, Alp_FAQ para sites que implementam FAQs, e Alp_Tutorial para os tutoriais que os desenvolvedores deixam para os usuários.

Caso algum destes não seja utilizado, basta suprimir a inclusão destes arquivos.

factories/

Aqui vamos ter classes que auxiliam na construções de estruturas dentro do WordPress. Temos Alp_Entity que

helpers/

Nesta pasta vamos ter classes que auxiliam outras classes que fazem parte da base. Um exemplo é a classe Alp_Metabox_AutoImage que atua no contexto da classe Alp_Metabox, fazendo com que os valores dos fields já venham com as imagens em vez de ids numéricos.

interfaces/

Aqui estarão as interfaces que são utilizadas durante o projeto. Em vez de Alp_, o prefixo delas será IAlp_ e terão geralmente o mesmo nome da classe que as implementa, como a IAlp_Produto para a classe Alp_Produto.

setup/

Nesta pasta temos as classes que fazem a configuração inicial do tema. Temos a Alp_Setup que colocam os padrões da Alpina do tema, a Alp_Scripts que carregam os scripts necessários para a base, Alp_Settings que carrega opções customizadas do banco, Alp_Settings_Pages que estabelece uma página para inserção de opções customizadas, e Alp_User que traz

traits/

Aqui vamos ter as traits da base, como a trait Alp_Renderable para as classes que renderizam alguma tela, ou Alp_Entitable para classes que utilizam entidades.

utils/

Aqui vamos ter a única pasta que não faz uso de orientação a objetos no backend. Isso ocorre pela própria lógica da pasta, que é abrigar funções utilitárias, agrupadas em alguns arquivos de acordo com diversas temáticas.

views/

Nesta pasta estão arquivos de backend que trazem lógica para alguma tela. Como exemplos podemos citar Alp_Breadcrumbs, para gerar breadcrumbs, Alp_Menus para facilitar a impressão de menus e Alp_Paginacao para criar objetos dos componentes que fazem paginação.

walkers/

Aqui estão os walkers, usados para criar as lógicas estruturas de menus dentro do WordPress. Temos o Alp_Flexi para um menu flexi, e o Alp_Linear para um menu simples, linear, de nível único.

Nome das Classes

Por convenção, os nomes das classes sao todas começadas em Alp_ e são seguidas pela sua finalidade.

Temos, por exemplo, Alp_Metabox que trabalha com os metaboxes (do plugin Metabox.io), Alp_Entity que formaliza entidades, Alp_Page que auxilia na construção de páginas, Alp_Setup com as configurações iniciais do tema, e assim vamos para dezenas de outras classes.

Exemplo da uma pasta /base

Aqui temos bem simples uma visão simplista pasta base com algumas classes presentes.

.
└── backend/base/
├── api/
├── Alp_API
├── Alp_IBGE
├── entities/
│ ├── Alp_Banner
│ └── Alp_Tutorial
└── factories/
├── Alp_Metabox
├── Alp_Page
└── Alp_Page_Template