Gestion des dépendances et WordPress: une suggestion
Ça a bien marché pour eux parce que Pimple est un petit paquet de deux fichiers. Mais ce n’est pas extensible. Pour quelque chose de grand comme le SDK AWS, il est trop fatiguant de le faire manuellement et vous devez le faire à plusieurs reprises chaque fois que vous mettez à jour le paquet. C’est pourquoi les gens se tournent généralement vers composer parce qu’il simplifie la gestion et l’intégration des bibliothèques tierces dans les bibliothèques de code. Malheureusement, les compositeurs sont souvent considérés comme responsables des mêmes problèmes.
Ce n’est pas un problème de compositeur! La communauté WordPress a déjà eu du mal à essayer de rejoindre composer (contrairement au reste du monde PHP) sans avoir à utiliser le mauvais pinceau pour le tamponner! Le problème existe déjà, et sans le compositeur, vous ne l’auriez pas remarqué si clairement. Packaging any Third – Party library with the Common plugin, whether or not using composer, can cause problems with WordPress. Alain Schlesser – le statut du poste est détendu. Peter suhm écrit que c’est à cause de ce problème qu’il a été possible de combiner composer avec wordpress, mais heureusement, Coen Jacobs est intervenu dans la défense de composer et a souligné ses erreurs. Cela a donné lieu à de nouvelles discussions entre Peter et Cohen, ce qui a contribué à promouvoir les solutions potentielles de Cohen, en utilisant ironiquement le compositeur. Utilisez le plug – in composer Merge créé pour Wikimedia pour fusionner plusieurs compositeurs. Json fonctionne.
C’est logique, car composer est en fait un package PHP et un gestionnaire de dépendances, mais il a besoin d’être légèrement ajusté pour fonctionner sur l’ensemble du site WordPress, qui peut avoir plusieurs plug – ins en utilisant son propre fichier composer. Json gère leur dépendance. Ce n’est qu’un test conceptuel pour Cohen, mais j’aime la direction ici et je reviendrai plus tard avec le compositeur pour résoudre ce problème. L’approche idéale Ryan mccu
Et a écrit un excellent article sur la façon de résoudre les dépendances des plug – ins dans WordPress, qui ne se concentre pas sur les implémentations techniques, mais sur ce dont l’utilisateur final a besoin pour l’expérience. En résumé, la solution doit:
Saisir les conflits de dépendances potentiels avant l’installation du plug – in l’installation devrait Installer automatiquement les mises à jour du plug – in dépendances devrait comprendre les dépendances et arrêter les mises à jour, avertir WordPress si les mises à jour peuvent causer des conflits est un projet centré sur l’utilisateur Pas pour les développeurs. « la prise de décisions plutôt que les options » est un slogan qui a guidé bon nombre des fonctions du projet au cours des dernières années, et la mise à jour automatique des antécédents est un aspect important. La gestion des dépendances doit être traitée de la même manière et les utilisateurs n’ont pas besoin de penser trop et de travailler pour eux – mêmes.
Ces solutions sont très demandées, couvrent un large éventail de domaines et font face à un certain nombre de défis majeurs. Fondamentalement, Ryan a évalué où la solution devrait être: au cœur de WordPress: l’objectif ultime ici est l’intégration de base. Si la solution n’entre pas dans le noyau, le projet échoue parce qu’il n’est pas omniprésent. Si cela se produit, jetez ce dont vous avez besoin et réessayez, mais pour de nombreux utilisateurs, cela doit être une solution viable. Je ne suis pas le plus grand développeur de WordPress. Je peux utiliser composer, mais je ne suis pas un expert. Je ne suis certainement pas un type interne de PHP, et je veux juste résoudre ce problème pendant le processus d’écriture, mais… Je pense que ce problème peut être résolu, voici mes conseils avancés sur les solutions et les plug – ins de fonctionnalité de base.
Comme je l’ai déjà dit, je pense que la solution de Cohen est basée sur
En ce qui concerne ce compositeur, une partie de celui – ci a été directement inspirée par son projet, mais je pense que nous devons aller plus loin. Tout plug – in ou sujet qui utilise le Code d’un tiers doit définir ses dépendances en utilisant le fichier Writer. Json, Ne distribuez pas de catalogues de fournisseurs. 2. Composer dans Core WordPress doit être groupé avec composer sans installation manuelle par l’utilisateur final. C’est comme toutes les autres bibliothèques dont WordPress a besoin, comme les requêtes ou les diagrammes à secteurs simples.
Nous avons donc besoin d’un grand nombre de personnalisations du comportement principal du compositeur pour l’intégrer à WordPress. En particulier, cela sera intégré au processus d’installation du plug – in \/ thème pour lire le fichier composer. Le plug – in json, connectez – le à tous les autres plug – ins et installez les dépendances. Il devrait détecter les conflits et répondre aux utilisateurs (par l’intermédiaire de l’interface utilisateur ou de l’interface en ligne de commande de l’administrateur) pour les informer des problèmes. Il devrait également gérer les plug – ins au fur et à mesure qu’ils sont mis à jour.
Depuis 2013, Drupal a le même gestionnaire de compositeurs: le gestionnaire de compositeurs permet à chaque module contribuant d’accompagner son propre fichier de compositeurs. Json, liste les exigences spécifiques du module. Il combinera ensuite les exigences de tous les modules trouvés dans le fichier composer. Intégration json. Cela permettra de partager un fournisseur \/ répertoire entre tous les modules, empêchant ainsi la duplication du Code et l’inadéquation des versions. La dernière partie de ma proposition est un peu bleue, mais certains travaux récents de Cohen m’ont donné de l’espoir. L’idéal pour WordPress et les utilisateurs est de ne pas avoir à gérer les conflits du tout. Chaque plug – in devrait être capable d’exécuter ses dépendances en toute sécurité sans être menacé d’interférer avec d’autres plug – ins. Charger plus
Même s’il est occupé! Si vous avez des suggestions ou des commentaires sur la proposition, ou si vous êtes intéressé à nous aider, veuillez nous en informer dans vos commentaires.