Несколько слов о сериализации
Простыми словами, сериализация - это процесс представления какого - либо объекта в виде строки или последовательности бит, как написано в википедии.
В примере я покажу, как проводить сериализацию объектов в JSON формат.
Сериализация очень удобна для:
Простыми словами, сериализация - это процесс представления какого - либо объекта в виде строки или последовательности бит, как написано в википедии.
В примере я покажу, как проводить сериализацию объектов в JSON формат.
Сериализация очень удобна для:
- Обмена данными между клиентской и серверной частью приложения (js и php), поскольку JSON - есть нотация объектов в JavaScript.
- В сериализованном виде удобно обмениваться информация между web - приложениями. Тут использование JSON не обязательно, можно, например, использовать XML.
Пример сериализации
Для сериализации объектов мы будем использовать интерфейс Serializable.
Пример сериализуемого класса "Пользователь":
class User implements Serializable
{
/**
* Имя
*/
private $name = "";
/**
* Возраст
*/
private $age = 0;
public function __construct($name = "", $age = 0)
{
$this->name = $name;
$this->age = $age;
}
public function getName()
{
return $this->name;
}
public function getAge()
{
return $this->age;
}
/**
* Сериализует объект в строку.
*
* @return string
*/
public function serialize ()
{
$objectData = array(
"name" => $this->name,
"age" => $this->age,
);
return json_encode($objectData);
}
/**
* Производит десериализацию - по полученной строке формирует объект.
*
* @param serialized
*/
public function unserialize ($serialized)
{
$objectData = json_decode($serialized, true);
$this->name = $objectData['name'];
$this->age = $objectData['age'];
}
}
Теперь небольшой пример использования сериализации:
Итак, использование сериализации может в значительной степени облегчить вашу жизнь как при программировании взаимодействия между клиентом и сервером, там и при организации взаимодействия между несколькими web-приложениями, при том, что сериализация крайне проста в реализации и очень удобная для понимания.
$user = new User("My User Name", 20);
$serialized = $user->serialize();
var_dump($serialized);
На выходе получим строку в JSON формате:
{"name":"My User Name","age":20}
Имея строковое представления объекта, можно провести десериализацию:$newUser = new User(); $newUser->unserialize($serialized); var_dump($newUser);У нас получился следующий объект:
object(User)#2 (2) {
["name":"User":private]=>
string(12) "My User Name"
["age":"User":private]=>
int(20)
}
Как видите, поля объекта идентичны полям сериализованного объекта.Итак, использование сериализации может в значительной степени облегчить вашу жизнь как при программировании взаимодействия между клиентом и сервером, там и при организации взаимодействия между несколькими web-приложениями, при том, что сериализация крайне проста в реализации и очень удобная для понимания.
Комментариев нет:
Отправить комментарий