Actualités WEB et WordPress, thèmes, plugins. Ici, nous partageons des conseils et les meilleures solutions de sites Web.

Récupération des propriétés d’espace de noms en PHP

25

Lorsque vous écrivez suffisamment de code qui communique avec des API tierces, vous allez très probablement vous retrouver à communiquer avec une API basée sur XML.

Et dites ce que vous voulez: certains aiment, d’autres pas. Mais ils existent, et ils vont donc être une partie nécessaire de votre développement à un moment donné.

Si l’API est bien conçue, elle utilisera probablement des espaces de noms pour différents types de demandes et de réponses. Et lorsque vous écrivez le client pour ladite API, vous devrez probablement récupérer les propriétés d’espace de noms.

C’est facile à faire, mais ce n’est pas immédiatement évident. Donc, dans cet article, je vais vous montrer un exemple de la façon de procéder.

Pour cet exemple, supposons que j’appelle une API basée sur XML. Pour ce faire, j’utilise la bibliothèque Array-To-XML de Spatie (ce qui est extrêmement pratique).

Récupération des propriétés d'espace de noms en PHP

Pour configurer la requête, je la crée à l’aide d’un tableau comme celui-ci :

<?php

// Setup the XML to connect to the API endpoint.
$namespaceExampleGetIDs = [
    'Version' => $this->version,
    'ApiKey' => $this->getPrivateKey(),
    'acmePasscode' => $this->getPasscode(),
    'Call' => [
        '_attributes' => ['Method' => 'Namesepace.Example.GetIDs'],
        'Date' => $this->getTimestamp(),
    ],
];
$xml = ArrayToXml::convert($namespaceExampleGetIDs, 'Acme', false);

Ensuite, j’utiliserai le client API (qui a été résumé pour que ce message soit aussi succinct que possible) pour effectuer la demande à partir de l’API. À partir de là, nous pouvons prendre le contenu de la réponse et faire tout le travail nécessaire (dans ce cas, il s’agira d’itérer à travers les propriétés de la réponse).

Et c’est là que la récupération des propriétés des espaces de noms entre en jeu. En supposant que nous ayons besoin d’accéder à une seule propriété, ou à une propriété d’une propriété, voici comment le faire chaque fois qu’il y a un espace de noms :

<?php

// Now make a request to the server.
$response = $this->makePostRequest($xml);
$xmlResponse = new SimpleXMLElement($response->getBody()->getContents());

// Iterate through all of the event IDs to get the information about them.
$events = [];
foreach ($xmlResponse->{'Namesepace.Example.GetIDs'}->EventID as $eventId) {
    // Work with the $eventId however necessary...
}

En bref, les accolades servent de « variables variables » et nous donnent accès à la nature dynamique d’un objet.

Récupération des propriétés d'espace de noms en PHP

Du manuel :

Parfois, il est pratique de pouvoir avoir des noms de variables variables. C’est-à-dire un nom de variable qui peut être défini et utilisé dynamiquement.

Et parce qu’il est utile de les définir dynamiquement, il est naturellement utile de les récupérer dynamiquement.

Ainsi, la prochaine fois que vous travaillerez avec une API basée sur XML (ou peut-être n’importe quelle API), notez que vous pouvez définir la récupération des propriétés d’espace de noms de l’objet via des variables variables.

C’est logique, non ?

Source d’enregistrement: tommcfarlin.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More