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 :

Sortir des variables d'une classe PHP


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Points : 183
    Points
    183
    Par défaut Sortir des variables d'une classe PHP
    Bonsoir a tous,

    J'ai un souci tout bête mais la fatigue se cumulant, je ne vois pas la réponse.

    J'ai une classe php dans le cadre du développement d'une API que j'essaie d'écrire par assimilation d'autres API:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    class Tools{
     
        private $tokenBaseUrl = "https://wwwwwwww";
        private $apiBaseUrl = "https://wwwwwwww";
        private $username = 'tototototototo';
        private $password = 'titititititit';
    etc...
     
        public function getAccessToken(){
     
            $url = $this->tokenBaseUrl.'/xxxxxx';
     
            $post_fields = array(
                'grant_type' => 'client_credentials',
                'redirect_uri' => 'xxxxx',
                'scope' => 'xxxxxx'
            );
     
            $curl = curl_init($url);
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($curl, CURLOPT_POST, true);
            curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post_fields));
            curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
            curl_setopt($curl, CURLOPT_USERPWD, "$this->username:$this->password");
     
            $response = curl_exec($curl);
            $err = curl_error($curl);
     
            curl_close($curl);
     
            if ($err) {
                return "cURL Error #:" . $err;
            } else {
                $response = json_decode($response, true);
                return $response['access_token'];
            }
        }
     
        /*
         * Executer une requete POST
         */
        public function executePost($token, $url, $data){
            $url = $this->apiBaseUrl.$url;
     
            $http_header = array(
                'Content-Type: application/json',
                'Authorization: Bearer '.$token
            );
     
            $curl = curl_init($url);
            curl_setopt($curl, CURLOPT_HTTPHEADER, $http_header);
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data, true));
            curl_setopt($curl, CURLOPT_POST, true);
     
            $response = curl_exec($curl);
            $err = curl_error($curl);
     
            curl_close($curl);
     
            if ($err) {
                return "cURL Error #:" . $err;
            } else {
                return json_decode($response, true);
            }
     
        }
     
        /*
         * Executer une requete GET
         */
        public function executeGet($token, $url){
            $url = $this->apiBaseUrl.$url;
     
            $http_header = array(
                'Content-Type: application/json',
                'Authorization: Bearer '.$token
            );
     
            $curl = curl_init($url);
            curl_setopt($curl, CURLOPT_HTTPHEADER, $http_header);
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
     
            $response = curl_exec($curl);
            $err = curl_error($curl);
     
            curl_close($curl);
     
            if ($err) {
                return "cURL Error #:" . $err;
            } else {
                return json_decode($response, true);
            }
        }
     
    }
    Le problème est que je ne veux pas mettre en dur les infos de $username et $password dans cette classe, mais plutôt que ces deux variables soient récupérées de session ($var_username et $var_password)

    et avoir dans la class tools :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
       private $username = $var_username;
        private $password = $var_password;
    Sauf que cela ne fonctionne pas, évidemment :-D

    Merci pour toute votre aide

    Bonne soirée

  2. #2
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 861
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 861
    Points : 6 565
    Points
    6 565
    Par défaut
    Tout d'abord, trouve un autre nom pour ta classe (le principe étant d'avoir un nom qui décrive précisément la nature des objets qu'elle doit générer, sinon autant se passer de POO).
    Ensuite tu dois plutôt entrer des valeurs dans ton instance de classe (plutôt que de les sortir comme le laisse entendre le titre de ta question), donc tu n'as qu'à les mettre en paramètre du constructeur de la classe pour pouvoir les renseigner avec des variables de session.
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Points : 183
    Points
    183
    Par défaut
    Bonjour et merci pour cette premiere reponse :

    Donc il faudrait que je fasse ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
     
     
    // $MB_xxxxx sont des variables que je recupere dans un fichier config en require
     
    class Tools{
     
        private $tokenBaseUrl = "https://wwwwwwww";
        private $apiBaseUrl = "https://wwwwwwww";
        private $username;
        private $password;
     
        public function __construct($MB_username,$MB_password)
        {
            $this->__set('username', $MB_username);
    	$this->__set('password', $MB_password);
        }
     
        public function __set($property, $value)
        {
            $this->$property = $value;
        }
     
     
        public function getAccessToken(){
     
            $url = $this->tokenBaseUrl.'/xxxxxx';
     
            $post_fields = array(
                'grant_type' => 'client_credentials',
                'redirect_uri' => 'xxxxx',
                'scope' => 'xxxxxx'
            );
     
            $curl = curl_init($url);
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($curl, CURLOPT_POST, true);
            curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post_fields));
            curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
            curl_setopt($curl, CURLOPT_USERPWD, "$this->username:$this->password");
     
            $response = curl_exec($curl);
            $err = curl_error($curl);
     
            curl_close($curl);
     
            if ($err) {
                return "cURL Error #:" . $err;
            } else {
                $response = json_decode($response, true);
                return $response['access_token'];
            }
        }
     
        /*
         * Executer une requete POST
         */
        public function executePost($token, $url, $data){
            $url = $this->apiBaseUrl.$url;
     
            $http_header = array(
                'Content-Type: application/json',
                'Authorization: Bearer '.$token
            );
     
            $curl = curl_init($url);
            curl_setopt($curl, CURLOPT_HTTPHEADER, $http_header);
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data, true));
            curl_setopt($curl, CURLOPT_POST, true);
     
            $response = curl_exec($curl);
            $err = curl_error($curl);
     
            curl_close($curl);
     
            if ($err) {
                return "cURL Error #:" . $err;
            } else {
                return json_decode($response, true);
            }
     
        }
     
        /*
         * Executer une requete GET
         */
        public function executeGet($token, $url){
            $url = $this->apiBaseUrl.$url;
     
            $http_header = array(
                'Content-Type: application/json',
                'Authorization: Bearer '.$token
            );
     
            $curl = curl_init($url);
            curl_setopt($curl, CURLOPT_HTTPHEADER, $http_header);
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
     
            $response = curl_exec($curl);
            $err = curl_error($curl);
     
            curl_close($curl);
     
            if ($err) {
                return "cURL Error #:" . $err;
            } else {
                return json_decode($response, true);
            }
        }
     
    }
    Merci encore pour votre aide.

    Olivier

  4. #4
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    salut,

    par contre tu peux alléger ton code :
    - la fonction magique __set() n'est pas du tout utile, tu peux la supprimer et remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $this->__set('username', $MB_username);
    $this->__set('password', $MB_password);
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $this->username = $MB_username;
    $this->password = $MB_password;

Discussions similaires

  1. Réponses: 4
    Dernier message: 06/09/2008, 11h53
  2. Réponses: 5
    Dernier message: 19/05/2008, 18h40
  3. Réponses: 2
    Dernier message: 11/03/2008, 16h02
  4. Réponses: 3
    Dernier message: 25/02/2008, 09h14
  5. passage des variables d'une classe à une autre
    Par zibou7 dans le forum Langage
    Réponses: 4
    Dernier message: 19/02/2007, 16h46

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