<MyRusakov.ru />

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Видеокурс "Фреймворк Yii 2.0 с нуля. Пример создания сайта" обучит Вас созданию профессиональных сайтов с использованием фреймворка Yii. В курсе есть 2 раздела: теоретический и практический. В теоретическом разделе будут разобраны возможности фреймворка Yii с примерами их использования, а в практической части будет создан сайт Blog.MyRusakov.ru с помощью полученных знаний из теоретического раздела.

Так же почти ко всем урокам идут упражнения для закрепления материала из урока на практике.

После прохождения курса Вы без труда сможете создавать любые сайты с использованием фреймворка Yii, причём делать это будете быстро и качественно.

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

Подписавшись по 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

завтра

Ответить

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