web-dev-qa-db-fra.com

WordPress en backend, Laravel Front End: Comment connecter des itinéraires?

Je vais concevoir un site et je pensais utiliser Wordpress pour cela car les clients veulent pouvoir modifier le contenu et ils ne sont pas très au courant des dernières technologies. Je pensais donc qu'en tant que rédacteur en chef de Wordpress, c'était assez simple et Cela pourrait être une bonne option pour cela.

Ensuite, j’ai pensé à l’utiliser simplement comme back-end et à le mélanger à un framework tel que Laravel ou CakePHP pour effectuer le reste du travail et concevoir les vues.

Pensez-vous que ce serait une bonne approche?

Lorsque je pensais utiliser uniquement des thèmes wordpress, je me suis retrouvé dans une situation difficile lorsque j'ai commencé à penser au routage des URL, à comprendre quels fichiers modèles sont appelés pour chaque URL, à traiter les formulaires, à détecter les appareils tactiles/mobiles dans le backend.

Et d’autre part, je sais comment gérer cela dans d’autres frameworksPHP, il me semble donc plus facile de le faire là-bas.

N'importe quel avantage d'utiliser uniquement wordpress pour le site plutôt que d'utiliser un cadre externe pour cela? Existe-t-il un moyen de connecter le système de routage Laravel au système de réécriture WordPress?

2
Alvaro

Le problème à propos de WordPress, bien qu’il n’ait pas de système de routage soigné , est en principe identique. Il prend l'entrée d'URL et la fait correspondre à un ensemble de variables de requête.

Ce qui n’est pas génial, c’est qu’il utilise des expressions régulières pour ces routes pas très proches et beaucoup d’entre elles. Le nombre total de règles varie d'une centaine minimum à milliers pour un site complexe (dump $wp_rewrite->rules à voir).

Ce système est tout à fait possible à remplacer (il ne sera probablement pas particulièrement propre, à la limite d'un piratage fou du point de vue de WP).

Le principal défi est que vous deviez dépenser des efforts considérables pour parité des fonctionnalités , c’est-à-dire que votre routeur ne casse pas 90% des problèmes qui "fonctionnent" en WP.

Si vous n'êtes pas préoccupé par la parité des fonctionnalités, vous pouvez très bien en faire un petit sous-ensemble et ignorer le reste.

PS ou vous pouvez simplement créer un site WP comme il se doit. Cela fonctionne pour beaucoup de gens. :)

3
Rarst

La combinaison de wordpress avec d'autres frameworks vous permettra de vous tirer une balle dans le pied très facilement. Si tout ce que vos clients veulent, c’est un éditeur, vous pouvez simplement utiliser tinymce sans y glisser l’ensemble du wordpress, mais s’ils sont à la recherche du processus et de la flexibilité, il ne servira à rien d’essayer de faire de Wordpress quelque chose qui ne le serait pas. vous êtes plus susceptible de consacrer plus de temps que prévu au développement et même de produire quelque chose qui ne satisfera pas totalement vos clients.

3
Mark Kaplun

J'ai accompli cela avec Laravel en utilisant wp-api.org, Guzzle, la mise en cache et j'ai étendu le package de CyberDuck un peu pour répondre à mes besoins. Tous mes propres points de vue et mon propre routage.

En abordant la question de cette manière, il m'a été plus facile de penser que la zone WP admin est davantage un référentiel de contenu structuré et moins un CMS de gestion de pages. J'ai beaucoup utilisé ACF et mes propres plugins personnalisés.

Beaucoup d'autres WP plugins ne fonctionneraient pas très bien, car beaucoup produisent des sorties. Vous devez trouver un moyen d’obtenir cette sortie et de l’imprimer vous-même ou créer votre propre fonctionnalité à la place.

Je n'ai jamais fini de lancer celui-ci, car le projet nécessitait un panier d'achat de base et que WooCommerce correspondait à la facture, donc bloqué avec un thème personnalisé WP. Mais c’était une excellente expérience d’apprentissage et fonctionnait très bien, surtout une fois la mise en cache effectuée.

Mais vous aurez alors deux applications à gérer. Dans mon cas, du moins, cela n’avait vraiment de sens que de créer plusieurs sites Web ou applications alimentés par le référentiel de contenu WP.

Pensez-vous que ce serait une bonne approche?

Oui, si l'application ou le domaine le justifie. J'ai beaucoup apprécié utiliser mes propres itinéraires et vues, avec un contrôle bien plus important. Et je n'ai eu à toucher à aucun code de thème WP, ce qui est un énorme bonus.

Y a-t-il un avantage à utiliser uniquement wordpress pour le site plutôt qu’à utiliser un cadre externe?

Absolument, une application de moins à maintenir et beaucoup moins de code à écrire. Tout le routage est intégré à WP. Mais vous êtes coincé avec la façon dont WP achemine les choses, à moins que vous ne creusiez vraiment dans son moteur de réécriture et que vous le piratiez, ce qui risquerait de gâcher d'autres plugins que vous pourriez exécuter.

Existe-t-il un moyen de connecter le système de routage Laravel au système de réécriture WordPress?

Je n'ai pas beaucoup creusé le sujet, car si j'avais besoin d'une structure de réécriture/route assez similaire à celle de WP, je l'aurais simplement prise avec WP. Le principal facteur de motivation de mon projet était que la structure de routage de mon domaine ne coopérerait tout simplement pas avec celle de WP.

Il n’était vraiment pas difficile de configurer une route (c'est-à-dire post/{slug}) pour interroger WP API pour le {slug} et obtenir le contenu de la publication.

0
Steve Jamesson