<MyRusakov.ru />

Вёрстка сайта с нуля 2.0

Вёрстка сайта с нуля 2.0

Система "Вёрстка сайта с нуля 2.0" содержит в себе не только сами видеоуроки по адаптивной вёрстке сайтов с примерами, но и вспомогательную систему для более эффективного обучения.

Сам курс обучит Вас абсолютно с нуля HTML5 и CSS3, а также научит верстать сайты с помощью реальных примеров вёрстки. Обучение идёт от простого к сложному. В последнем разделе курса идёт обучение адаптивной вёрстке сайтов: Вы узнаете всю необходимую теорию, а также увидите пример реальной адаптивной вёрстки сайта.

Как итог, курс совмещает в себе всё, что нужно по HTML, CSS и адаптивной вёрстке сайтов, с наглядными примерами, с обучением от простого к сложному и без необходимости иметь начальных знаний, а благодаря вспомогательной системе психологически курс проходится очень легко, а на выходе Вы сможете сделать адаптивную вёрстку любого сайта любой сложности.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Сериализация объектов в PHP.

Сериализация объектов в PHP.

Привет всем! Сегодня мы поговорим про такую тему, как сериализация объектов в PHP.

Зачем это нужно?

Если вы создаете клиент-серверное приложение, где захотите обмениваться информацией со скриптом, то здесь и пригодится сериализация. Нужна она для того, чтобы преобразовать обычный php объект в строку, которую сможет понять скрипт.

Пример использования

Для того, чтобы сконвертировать объект в строку, используется функция serialize(), а для того, чтобы преобразовать его обратно - unserialize().

В качестве примера приведем класс User и создадим его объект.

<?php
  class User {
   private $name;
   private $role;

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

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

   public function changeRole($role) {
    $this->role = $role;
   }

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

   public function getRole() {
    return $this->role;
   }

   $user = new User('John', 1);
   $string = serialize($user);
   echo $string;
  }
?>

Мы получим строку, хранящую наш объект. Теперь мы можем передать ее, к примеру, скрипту.

Теперь давайте преобразуем нашу строку обратно в наш объект.

$user = unserialize($string);

Проверим, что наш объект работает

echo $user->getName(); // вернет 'John'

Если вы посмотрите на строку, которую сформировала функция serialize, то заметите, что там отсутствуют названия методов. Так что, чтобы все работало, следует подключать класс раньше, чем вызывается функция unserialize.

<?php
  spl_autoload_register(function($name) {
   require_once $name.'.php';
  });

  $user = unserialize($string);
?>

Магические методы __sleep и __wakeup

Если вы хотите, чтобы перед тем, как объект преобразуется в строку, или перед тем, как объект образуется из строки, что-то происходило, то используйте магические методы __sleep и __wakeup.

Например

<?php
  class User {
   // ...

   public function __sleep() {
    echo 'Начинаем конвертировать объект в строку<br>';
    return ['name', 'role'];
   }

   public function __wakeup() {
    echo '<br>Начинаем конвертировать строку в объект';
   }
  }
?>

Заметьте, что в методе __sleep вы обязаны вернуть массив, содержащий названия полей, которые должны быть включены в строку. Таким образом, вы можете исключить поля, которые вам не нужны в результирующей строке.

Итак, на этом все. Спасибо за внимание и удачного кодинга!

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (4):

Mikhail777 Mikhail777 01.07.2014 09:51:35

Здравствуйте. А можно, например сформировать строку. Сохранить её в переменную и вернуть её в магическом методе __toString

Ответить

php_programmer php_programmer 01.07.2014 11:27:26

Здравствуйте. Если я Вас правильно понял, то Вы хотите, чтобы при попытке вывода объекта, как строку, выводился результат вызова функции serialize()? Если так, то вот решение: http://pastebin.com/bLfM1J6p

Ответить

ScarEngineer ScarEngineer 01.07.2014 15:09:16

Спасибо за статью. А когда следующая статья про создание движка?

Ответить

php_programmer php_programmer 01.07.2014 23:22:37

завтра

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.