web-dev-qa-db-pt.com

WordPress como back-end, Laravel Front End: Como conectar rotas?

Eu vou projetar um site e pensei em usar o wordpress para ele, já que os clientes querem poder editar o conteúdo e eles não estão muito atualizados com as tecnologias mais recentes, então eu achei que o editor backend do wordpress é bem simples e Para a frente, esta poderia ser uma boa opção para isso.

Então, pensei em apenas usá-lo como backend e misturá-lo com algumas estruturas como o Laravel ou o CakePHP para fazer o resto do trabalho e projetar as visualizações.

Você acha que isso seria uma boa abordagem para isso?

Ao pensar em usar apenas temas wordpress para ele, me vi em apuros quando comecei a pensar em roteamento de URL, tendo que entender quais arquivos de modelo são chamados para cada URL, lidando com formulários, detecção de dispositivos touch/mobile no backend.

E por outro lado, eu sei como lidar com isso em outras estruturas PHP, então parece mais fácil para mim fazer isso lá.

Qualquer vantagem de usar apenas wordpress para o site, em vez de usar uma estrutura externa para ele? Existe alguma maneira de conectar o sistema de roteamento Laravel com o sistema de reescrita do WordPress?

2
Alvaro

A coisa sobre o WordPress, embora não tenha um sistema de roteamento puro , em princípio, faz a mesma operação. Leva a entrada de URL e corresponde a um conjunto de variáveis ​​de consulta.

O que não é legal nisso é que ele usa expressões regulares para essas rotas não muito boas e muito delas. O número total de regras varia de cerca de cem no mínimo para milhares para um site complexo (dump $wp_rewrite->rules para ver).

Este sistema é totalmente possível de substituir (provavelmente não será particularmente limpo, na fronteira com o hack louco da perspectiva WP).

O principal desafio é que você teria que gastar um enorme esforço para paridade de recursos , que é o seu roteador não quebrando 90% das coisas que "simplesmente funcionam" no WP.

Se você não está preocupado com a paridade de recursos, você pode muito bem fazer apenas um pequeno subconjunto deles e ignorar o resto.

PS ou você poderia apenas fazer um site WP como se estivesse pronto para ser feito. Isso funciona para muitas pessoas. :)

3
Rarst

Combinar o wordpress com outros frameworks tornará muito mais fácil você atirar no próprio pé. Se tudo o que seus clientes querem é um editor, então você pode simplesmente usar o tinymce sem arrastar todo o wordpress para ele, mas se eles estão atrás do fluxo de trabalho e da flexibilidade, será inútil tentar fazer algo do wordpress que não é. é mais provável que você gaste mais tempo do que antecipa o desenvolvimento e, até mesmo, produza algo que não satisfará totalmente seus clientes.

3
Mark Kaplun

Eu fiz isso com o Laravel usando wp-api.org, Guzzle, caching e estendi pacote do CyberDuck um pouco para atender às minhas necessidades. Todas as minhas próprias visões e meu próprio roteamento.

Ao abordar isso dessa maneira, achei mais fácil pensar na área administrativa WP como mais de um repositório de conteúdo estruturado e menos de um CMS de gerenciamento de páginas. Eu usei muito o ACF e meus plugins personalizados.

Muitos outros plugins WP não funcionam muito bem, já que muitos produzem saída. Você teria que descobrir uma maneira de obter essa saída e imprimi-lo ou criar sua própria funcionalidade.

Eu nunca acabei lançando este, pois o projeto precisava de um carrinho de compras básico e o WooCommerce se encaixava na conta, então preso com um tema personalizado WP. Mas foi uma ótima experiência de aprendizado e funcionou muito bem, especialmente quando o cache estava em execução.

Mas você terá dois aplicativos para manter. No meu caso, pelo menos, só fazia sentido se eu criasse vários sites ou aplicativos que fossem alimentados a partir do repositório de conteúdo WP.

Você acha que isso seria uma boa abordagem para isso?

Sim, se o aplicativo ou domínio exigir isso. Gostei muito de usar meu próprio roteamento e visualizações, muito mais controle. E eu não tive que tocar em nenhum código de tema WP, o que é um bônus enorme.

Qualquer vantagem de usar apenas wordpress para o site, em vez de usar uma estrutura externa para ele?

Absolutamente, um aplicativo a menos para manter e muito menos código para escrever. Todo o roteamento é incorporado ao WP. Mas você está preso com a forma como WP roteia as coisas, a menos que você realmente insira seu mecanismo de reescrita e o crie, o que poderia mexer com outros plugins que você possa estar executando.

Existe alguma maneira de conectar o sistema de roteamento Laravel com o sistema de reescrita do WordPress?

Eu não explodi muito nisso, como se eu precisasse usar uma estrutura de reescrita/rota que fosse similar o suficiente para o WP, eu teria ficado com WP em primeiro lugar. O principal motivador do meu projeto era que a estrutura de rotas do meu domínio simplesmente não cooperaria com os WP's.

Não foi realmente difícil configurar uma rota (por exemplo, post/{slug}) para consultar a API WP do {slug} e obter o conteúdo da postagem.

0
Steve Jamesson