"vendor", j'adore ?

Bonjour,

À quoi servent exactement les librairies du nouveau dossier "vendor" qui double le poids d'un PluXml de base ?

Ça reste léger mais ça fait quelques dizaines de fichiers supplémentaires à transférer (235 au total). :)

Réponses

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Bonjour,

    Le dossier vendor est créé par le logiciel composer qui est un gestionnaire de dépendances de librairies PHP.

    Il est acccompagné d'un fichier composer.json qui énumère les librairies nécessaires à PluXml et d'un petit script autoload.php.

    Il permet de gérer de façon sûre les dépendances de PHPMailer qui permet d'utiliser un serveur SMTP différent de l'hébergeur du site pour l'envoi des E-mails. En fait c'est surtout cette librairie qui donne de l'embonpoint à PluXml.

    Plus d'explication ici :

    PHPMailer n'est pas nécessaire pour l'envoi de mails simples au format texte ou html si on passe par le serveur SMTP de son hébergeur.

  • La fonction mail() ne suffit-elle pas ?

    Je trouve dommage d'inclure tout ça uniquement pour cette fonctionnalité...

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Bonjour,

    Utiliser composer est plutôt une bonne chose et permet de gérer de manière plus souple les dépendances entre les différents composants de PluXml en place dans le dossier core/lib. De plus cela ne pèse pas très lourd :

    4,0K   autoload.php

    68K   composer (dossier)

    Je laisse de côté les fichiers composer.* situés à la racine du site qui ne servent qu'au développement de PluXml.

    Par contre ce qui pose problème est l'introduction de la librairie PHPMailer dans la dernière version publiée. Elle pèse très lourd :

    jpierre@smartteck:/home/www/test/PluXml-5.8/vendor$ du -sh *

    4,0K   autoload.php

    68K   composer

    816K   guzzlehttp

    308K   league

    56K   paragonie

    520K   phpmailer

    92K   psr

    28K   ralouphie

    Et je ne pense que cela soit la solution plus pertinente pour envoyer les mails et qu'elle est assez compliquée.

    En fait, le problème est assez ancien. Il provenait de l'obligation de renseigner le paramètre $from dans la fonction PlxUtils::sendMail().

    Aujourd'hui on peut laisser ce paramètre à vide (false ou "") pour passer par le serveur SMTP de l'hébergeur du site qui se chargera de renseigner à sa guise les entêtes manquants avant d'envoyer le mail.

    Je conseille donc de cocher sendmail pour l'envoi des mails dans "configuration avancée".

    Tu peux le vérifier sur la page informations en cliquant sur le bouton "Envoyer un e-mail de test".

  • HarukaHaruka PluXml Project Manager

    Bonjour,

    La fonction mail() utilisé par PlxUtils::sendMail(), permet d'envoyer des e-mails uniquement si votre hébergeur propose nativement un service d'envoi de mail, ce qui n'est pas le cas partout.

    La nouvelle fonction PlxUtils::sendMailPhpMailer() utilisant la librairie PhpMailer, permet d'utiliser :

    • soit la fonction native de php mail()
    • soit un serveur SMTP distant (OVH, Gandi, ...)
    • soit un service OAUTH (seul Gmail est géré pour le moment)

    De plus, le fichier autoload.php ajouté par Composer, sera utilisé dans la prochaine version pour charger les différentes class de PluXml en fonction de l'usage, au lieu de charger systématiquement toutes les class du dossier lib comme aujourd'hui.

    Certes le zip de PluXml est passé de 694k à 1,1mo, mais ça reste beaucoup plus léger que les autres CMS libres qui sont généralement entre 10 et 20mo.

Connectez-vous ou Inscrivez-vous pour répondre.