✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Pobieranie właściwości przestrzeni nazw w PHP

29

Gdy napiszesz wystarczającą ilość kodu, który komunikuje się z interfejsami API innych firm, najprawdopodobniej komunikujesz się za pomocą interfejsu API opartego na XML.

I powiedz, co chcesz: niektórym się to podoba, innym nie. Ale one istnieją i dlatego w pewnym momencie będą niezbędną częścią twojego rozwoju.

Jeśli interfejs API jest dobrze zaprojektowany, prawdopodobnie użyje przestrzeni nazw dla różnych typów żądań i odpowiedzi. A kiedy piszesz klienta dla wspomnianego API, prawdopodobnie będziesz musiał pobrać właściwości przestrzeni nazw.

Łatwo to zrobić, ale nie jest to od razu oczywiste. W tym poście przedstawię przykład, jak to zrobić.

W tym przykładzie załóżmy, że wykonuję wywołanie interfejsu API opartego na języku XML. W tym celu korzystam z biblioteki Array-To-XML firmy Spatie (co jest niezwykle wygodne).

Pobieranie właściwości przestrzeni nazw w PHP

Aby skonfigurować żądanie, tworzę je za pomocą tablicy w następujący sposób:

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

Następnie użyję klienta API (który został streszczony, aby ten post był jak najbardziej zwięzły), aby wykonać żądanie z API. Stamtąd możemy pobrać zawartość odpowiedzi i wykonać każdą niezbędną pracę (w tym przypadku będzie to iteracja przez właściwości odpowiedzi).

I tutaj w grę wchodzi pobieranie właściwości przestrzeni nazw. Zakładając, że potrzebujemy uzyskać dostęp do pojedynczej właściwości lub właściwości właściwości, oto jak to zrobić, gdy jest to przestrzeń nazw:

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

Krótko mówiąc, nawiasy klamrowe służą jako „ zmienne zmienne " i dają nam dostęp do dynamicznej natury obiektu.

Pobieranie właściwości przestrzeni nazw w PHP

Z instrukcji:

Czasami wygodnie jest mieć możliwość posiadania zmiennych nazw zmiennych. To znaczy nazwa zmiennej, która może być ustawiana i używana dynamicznie.

A ponieważ pomocne jest ich dynamiczne ustawianie, naturalnie pomocne jest ich dynamiczne pobieranie.

Więc następnym razem, gdy będziesz pracować z API opartym na XML (lub być może dowolnym API), zwróć uwagę, że możesz pobrać właściwości obiektu z przestrzenią nazw za pomocą zmiennych zmiennych.

To ma sens, prawda?

Źródło nagrywania: tommcfarlin.com

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów