IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Utilisation de "use"


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2016
    Messages : 4
    Par défaut Utilisation de "use"
    Bonjour à tous,

    Je me casse la tête sur quelques chose qui va sans doute paraitre bête pour ceux qui savent :-)

    Je développe un script qui doit utiliser PHPMailer pour envoyer des mails et l'API de OVH pour envoyer des SMS.

    Voici le code pour inclure les classes (ce n'est peut etre pas le bon mot) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    require '../PHPMailer-6.9.3/src/Exception.php';
    require '../PHPMailer-6.9.3/src/PHPMailer.php';
    require '../PHPMailer-6.9.3/src/SMTP.php';
    require 'vendorSMS/autoload.php';
     
    use PHPMailer\PHPMailer\PHPMailer;
    use PHPMailer\PHPMailer\Exception;
    use PHPMailer\PHPMailer\SMTP;
    use Ovh\Api;
    Je n'arrive à faire fonctionner les deux en même temps.
    Si je met les PHPMailer en premier, c'est l'API de OVH qui ne fonctionne pas. Si je met l'API de OVH en premier, c'est PHPMailer qui ne fonctionnent plus.

    Avez-vous une astuce ? y a t'il quelque chose à faire avec les use pour que tout fonctionne ?
    Je suis complètement perdu avec ça je vous avoue...

    Merci d'avance pour votre aide précieuse :-)

  2. #2
    Membre émérite
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2021
    Messages
    435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2021
    Messages : 435
    Par défaut
    Bonjour,

    D'où vient le fichier vendorSMS/autoload.php ?

    Le mieux serait d'utiliser composer pour installer PHPMailer et l'API d'OVH dans ton projet.

    Si tu ne veux pas ou ne peux pas utiliser composer, télécharge et dézippe les sources de l'API sur github puis ajoute un require et un use pour chaque classe que tu veux utiliser (comme tu as fait pour PHPMailer) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    require '../php-ovh-3.5.0/src/Api.php';
    require '../php-ovh-3.5.0/src/OAuth2.php';
     
    use Ovh\Api;
    use Ovh\OAuth2;

  3. #3
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2016
    Messages : 4
    Par défaut
    Bonjour Pytet,

    Merci pour ta réponse.
    J'ai essayé comme tu as dit mais j'arrive à un moment sur un message d'erreur :

    Interface 'GuzzleHttp\ClientInterface' not found

    J'ai essayé un require avec le fichier ClientInterface.php que j'ai trouvé dans le dossier Guzzle mais le message d'erreur est toujours là et je n'arrive pas à le résoudre

  4. #4
    Membre émérite
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2021
    Messages
    435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2021
    Messages : 435
    Par défaut
    Contrairement à PHPMailer, l'API OVH utilise des dépendances (dont Guzzle) qui peuvent elles aussi avoir d'autres dépendances qui vont être compliquées à gérer sans composer.

    - Installe Composer sur ton poste via le site officiel (tu peux simplement utiliser Composer-Setup.exe sur Windows) https://getcomposer.org/download/
    - Crée un nouveau dossier qui contiendra ton projet, pour l'exemple je le nomme mon-projet
    - Ouvre un terminal (invité de commande) et utilise la commande cd pour te rendre à la racine de ton projet. Pour exemple : cd C:\Users\Pytet\Documents\mon-projet
    - Exécutes les deux commandes suivantes à la racine de ton projet pour installer PHPMailer et l'API OVH :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    composer require ovh/ovh
    composer require PHPMailer/PHPMailer
    Tu peux maintenant utiliser les classes dans ton projet an ajoutant simplement un require vers le fichier vendor/autoload.php.
    Pour exemple, dans un fichier mon-projet/index.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    require 'vendor/autoload.php';
     
    use Ovh\Api;
    use GuzzleHttp\Client;
     
    $client = new Client();

  5. #5
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2016
    Messages : 4
    Par défaut
    Wow merci beaucoup ça fonctionne parfaitement !!!!!

    je comprend désormais mieux le principe et l'utilisation de Composer, autoload et tout ça.

    IMEEEEEEEENSE MERCI

  6. #6
    Membre chevronné
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2022
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2022
    Messages : 332
    Par défaut
    Oublie pas de cliquer sur

  7. #7
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2016
    Messages : 4
    Par défaut
    En effet j’ai oublié,
    Je le fais de suite merci du rappel

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [procedure stockée] utilisation de use
    Par zekiller3 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 06/05/2007, 18h01
  2. Utilisation de Use Case
    Par Promeneur dans le forum Cas d'utilisation
    Réponses: 2
    Dernier message: 21/11/2006, 16h42
  3. [Optimisation] index non utilisé et using temporary
    Par jp_rennes dans le forum Requêtes
    Réponses: 6
    Dernier message: 23/10/2006, 10h05
  4. De la pertinence de l'utilisation de "using"
    Par Christophe Charron dans le forum Outils
    Réponses: 5
    Dernier message: 30/08/2006, 15h58
  5. Utilisation de use strict et use warnings
    Par jmricatt dans le forum Langage
    Réponses: 1
    Dernier message: 16/06/2006, 13h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo