✅ Notizie, temi, plugin WEB e WordPress. Qui condividiamo suggerimenti e le migliori soluzioni per siti web.

Recupero delle proprietà con spazio dei nomi in PHP

22

Quando scrivi abbastanza codice per comunicare con API di terze parti, molto probabilmente ti ritroverai a comunicare con un’API basata su XML.

E di’ quello che vuoi al riguardo: ad alcuni piace, ad altri no. Ma esistono e ad un certo punto saranno quindi una parte necessaria del tuo sviluppo.

Se l’API è ben progettata, probabilmente utilizzerà spazi dei nomi per diversi tipi di richieste e risposte. E quando scrivi il client per detta API, probabilmente dovrai recuperare le proprietà con spazio dei nomi.

È facile farlo, ma non è immediatamente ovvio. Quindi, in questo post, esporrò un esempio di come fare proprio questo.

Per questo esempio, si supponga di effettuare una chiamata a un’API basata su XML. Per farlo, sto usando la libreria Array-To-XML di Spatie (che è estremamente conveniente).

Recupero delle proprietà con spazio dei nomi in PHP

Per impostare la richiesta, la creo usando un array come questo:

<?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);

Quindi userò il client API (che è stato astratto per mantenere questo post il più conciso possibile) per effettuare la richiesta dall’API. Da lì, possiamo prendere il contenuto della risposta e fare tutto il lavoro necessario (in questo caso itererà attraverso le proprietà della risposta).

Ed è qui che entra in gioco il recupero delle proprietà degli spazi dei nomi. Supponendo che dobbiamo accedere a una singola proprietà, o a una proprietà di una proprietà, ecco come farlo ogni volta che è in uno spazio dei nomi:

<?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...
}

In breve, le parentesi servono come " variabili " e ci danno accesso alla natura dinamica di un oggetto.

Recupero delle proprietà con spazio dei nomi in PHP

Dal manuale:

A volte è conveniente poter avere nomi di variabili variabili. Cioè, un nome di variabile che può essere impostato e utilizzato dinamicamente.

E poiché è utile impostarli in modo dinamico, è naturalmente utile recuperarli in modo dinamico.

Quindi, la prossima volta che lavorerai con un’API basata su XML (o forse con qualsiasi API), nota che puoi impostare il recupero delle proprietà dello spazio dei nomi dell’oggetto tramite variabili variabili.

Ha senso, vero?

Fonte di registrazione: 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