OOP?

Als je een API wilt maken, zal je misschien wel een grote website hebben. Ik raad je aan om grote websites volledig OOP te maken, maar hou ga je dan een API maken? Er zijn een paar mogelijkheden:

JsonSerializable
Deze interface is beschikbaar sinds PHP 5.4. Als je deze implement, wordt die automatisch aangesproken als je json_encode aanroept. Een voorbeeld zegt meer dan 1000 woorden:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
class User implements JsonSerializable {
    private $name;
    private $age;

    public function __construct($name, $age) {
        $this->name = $name;
        $this->age  = $age;
    }


    public function getName() {
        return $this->name;
    }


    public function setName($name) {
        $this->name = $name;
    
        return $this;
    }


    public function getAge() {
        return $this->age;
    }


    public function setAge($age) {
        $this->age = $age;
    
        return $this;
    }


    public function jsonSerialize() {
        return array(
            'name' => $this->name,
            'age'  => $this->age
        );
    }

}


header('Content-Type: application/json');
$user = new User('Koen', 15);
echo json_encode($user);
?>


Geen PHP 5.4?
Als je geen PHP 5.4 hebt, kan je JsonSerializable helaas niet gebruiken. Er zijn andere vergelijkbare oplossingen die wel beschikbaar zijn, zoals het Symfony Serializer component. De Symfony Serializer is maar een klein component. Heb je meer nodig? Gebruik dan de JMSSerializer.

« Lees de omschrijving en reacties

Inhoudsopgave

  1. JSON syntax
  2. Toepassingen van JSON
  3. JSON parsen
  4. Wat is het weer?
  5. JSON genereren
  6. OOP?
  7. En verder?

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.