✅ WEB- ja WordPress -uutiset, -teemat, -laajennukset. Täällä jaamme vinkkejä ja parhaita verkkosivustoratkaisuja.

WordPress-luokan sarjointi PHP:llä

20

Jos olet tottunut työskentelemään mallien kanssa (millä tahansa perustalla tai kehyksellä, mutta erityisesti WordPressillä), on mahdollista, että saatat joutua sarjottamaan mallin esiintymän jossain vaiheessa.

Toki luokan kirjoittaminen tietokantaan PHP:n sisäänrakennetuilla funktioilla on riittävän helppoa; On kuitenkin tärkeää lisätä hieman joustavuutta, varsinkin kun se liittyy sen saatavuuteen muilla alustoilla.

Oletetaan esimerkiksi, että rakennat WordPressiin sovellusta, jonka mallissa on jonkinlainen ainutlaatuinen tieto. Malli on sitten käytettävissä mobiilisovelluksen kautta REST API :n kautta .

Luultavasti yksi helpoimmista tavoista saada tämä aikaan on käyttää JSONia. Se on muoto, joka toimii useilla eri kielillä ja alustoilla, jonka mainitut alustat voivat helposti sarjottaa ja poistaa sarjoja ja lähettää tarvittaessa.

Ja tämä on uskomattoman helppoa toteuttaa PHP:ssä. Sinun tarvitsee vain varmistaa, että luokkasi toteuttaa JsonSerializable- liittymän.

WordPress-luokan sarjointi PHP:llä

Käyttöliittymä tekee dokumentaation mukaan seuraavaa:

JsonSerializablea toteuttavat objektit voivat mukauttaa JSON-esitystään, kun ne on koodattu json_encode(:lla).

Ainoa menetelmä, jonka luokan tarvitsee tarjota, on jsonSerialize, ja vaikka on todennäköistä, että haluat sarjoittaa objektin kaikki ominaisuudet (sekä sen tilan aina kun sitä kutsutaan), voit mukauttaa toteutusta haluamallasi tavalla.

Jos sinulla on esimerkiksi luokka ja haluat vain toteuttaa sen nimiominaisuuden, toteutat funktion seuraavasti :

<?php

class Acme implements JsonSerializable 
{
  /**
   * @var string the name of the model as represented on the front-end.
   */
  protected $name;

  // More code here.

  /**
   * @return string a JSON representation of this class
   */
  public function jsonSerialize()
  {
      return [
        'name' => $this->getName()
      ];
  }
}

Jos haluat lisätä siihen hieman monimutkaisuutta, voit tehdä tämän :

<?php

class Acme implements JsonSerializable 
{
  /**
   * @var string the name of the model as represented on the front-end.
   */
  protected $name;

  /**
   * @var array an array of features about this object.
   */
  protected $features;

  // More code here.

  /**
   * @return string a JSON representation of this class
   */
  public function jsonSerialize()
  {
      return [
        'name' => $this->getName(),
        'features' => [
          'hair' => $this->getHairColor(),
          'eyes' => $this->getEyeColor(),
         ],
      ];
  }
}

Ja jos halusit panostaa ominaisuuksien sarjoittamiseen, voit toteuttaa silmukan taulukon rakentamiseksi :

<?php

class Acme implements JsonSerializable 
{
  /**
   * @var string the name of the model as represented on the front-end.
   */
  protected $name;

  /**
   * @var array an array of features about this object.
   */
  protected $features;

  // More code here.

  /**
   * @return string a JSON representation of this class
   */
  public function jsonSerialize()
  {
      $objectArray = [];
      foreach ($this as $key => $value) {
          $objectArray[$key] = $value;
      }

      return $objectArray;
  }
}

Joka tapauksessa, kun luokan esiintymä välitetään json_encode- funktiolle, se käynnistää  objektin jsonSerialize- funktion, jotta saat objektin esityksen JSON-muodossa suunnittelemallasi tavalla.

Tämä on uskomattoman helppoa ja hyödyllistä, kun on kyse tietojen käyttämisestä useilla alustoilla (tai jopa samalla alustalla ).

Tämä verkkosivusto käyttää evästeitä parantaakseen käyttökokemustasi. Oletamme, että olet kunnossa, mutta voit halutessasi kieltäytyä. Hyväksyä Lisätietoja