web-development-kb-pt.site

É possível mudar a camada de dados no WordPress?

O WordPress é, sem dúvida, muito personalizável usando plugins, mas cada possibilidade de personalização certamente tem limites definidos pela arquitetura subjacente.

Para aqueles familiarizados com a arquitetura e o código-fonte WP:

Qual seria o esforço necessário para personalizar a camada de dados usada por WP para usar outro armazenamento de dados (por exemplo, arquivos (ou outro sistema de banco de dados) em vez do MySQL?). A arquitetura do WordPress está em camadas no sentido de ter a possibilidade de alternar camadas? A camada de interface do usuário é aparentemente muito fácil de mudar (qualquer tema faz isso), mas como sobre outras camadas, ou seja, a camada de dados?

4
Marek

Wordpress é não projetado para ter uma camada de banco de dados substituível. Ciência da computação tem alguns conceitos diferentes em seu peito para lidar com diferentes bancos de dados no mesmo aplicativo em diferentes níveis de abstração, Wordpress não tende a fazer uso de qualquer um desses. Para dizê-lo em palavras mais simples: De maneira nenhuma.

Mas o wordpress oferece a possibilidade de substituir seu próprio código por outro código, por exemplo, toda a classe do banco de dados. Isso não é sempre (leia-se: normalmente) o suficiente para substituir toda a camada do banco de dados, mas ajuda a mexer. A classe WPDB substituindo HyperDB por exemplo não adiciona uma nova camada de banco de dados na íntegra, mas manipula vários servidores MySQL em vez de um, que é um exemplo bem conhecido (isso é considerado uma prática ruim para fazer com o PHP, existem maneiras melhores , mas é um bom exemplo do que pode ser feito).

Ao lado de substituir a classe do banco de dados, o Wordpress tem a habilidade de que ainda mais código pode ser substituído e você pode alterá-lo completamente, por exemplo, criando uma distribuição própria que cuida de tudo sobre a camada de banco de dados por conta própria.

Se você quiser ver um exemplo da vida real sobre como substituir toda a camada de banco de dados, para fazer o wordpress usar um tipo totalmente diferente de servidor de banco de dados (aqui: MSSQL em vez do MySQL codificado), você encontrará uma distribuição completa e um patch aqui :

WordPress no SQL Server Distro & Patch

É um software gratuito que você pode estudar como essa camada de banco de dados pode ser implementada, o site fornece mais informações sobre esse tópico também.

Dica: não lute contra o Wordpress. Stick para o MySQL e é isso. Caso contrário, procure por algo melhor projetado para atender às suas necessidades. Apenas pegue a ferramenta certa para o trabalho.

5
hakre

É possível: veja a substituição do HyperDB por wpdb. O HyperDB adiciona particionamento e replicação ao WordPress. O particionamento funciona conectando-se a vários bancos de dados e usando o nome da tabela para determinar qual banco de dados deve executar a consulta.

No final, $wpdb apenas obtém uma consulta SQL, e é livre para fazer o que quiser com os dados dentro dessa consulta. O HyperDB consulta o MySQL da mesma forma que a classe wpdb original. Estender isso para bancos de dados diferentes exigiria a modificação de qualquer consulta não compatível antes de serem executados. Se o seu repositório de dados não aceitar o SQL, você teria que traduzir a consulta recebida para qualquer outra API que estivesse usando. Tudo é possível com tempo e esforço suficientes, mas parece uma tarefa bastante infeliz para mim. ;)

2
Annika Backstrom

Acabei de encontrar esta página do Codex que resume bem, incluindo a visão geral das soluções propostas e/ou planejadas pelas pessoas que desenvolvem o WordPress. Vamos ver como sai.

0
Marek