From 73235f0baa89ec790b45e35240ef2e54c12f353b Mon Sep 17 00:00:00 2001 From: Anton Vakhrushev Date: Fri, 3 May 2019 13:30:59 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=BE=20=D0=BE=D0=B3=D1=80=D0=B0=D0=BD=D0=B8=D1=87=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D1=81=D1=82=D1=80=D0=BE=D0=BA=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D1=81=D1=82=D0=B0=D1=82=D0=B5=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/_articles/.editorconfig | 2 ++ source/_articles/php-serialization.md | 20 +++++++++++--------- 2 files changed, 13 insertions(+), 9 deletions(-) create mode 100644 source/_articles/.editorconfig diff --git a/source/_articles/.editorconfig b/source/_articles/.editorconfig new file mode 100644 index 0000000..236abae --- /dev/null +++ b/source/_articles/.editorconfig @@ -0,0 +1,2 @@ +[*.md] +max_line_length = 80 diff --git a/source/_articles/php-serialization.md b/source/_articles/php-serialization.md index 8ccbf3c..60d9d2d 100644 --- a/source/_articles/php-serialization.md +++ b/source/_articles/php-serialization.md @@ -6,13 +6,14 @@ keywords: [php, serialization] # Сериализация в PHP -В PHP есть две функции для сериализации и десериализации данных: `serialize()` и `unserialize()`. -Функции встроены в язык, не требуют дополнительных модулей. +В PHP есть две функции для сериализации и десериализации данных: +`serialize()` и `unserialize()`. Функции встроены в язык, +не требуют дополнительных модулей. -В один момент кто-то решает использовать их для долговременного хранения объектов. -В базе данных, на диске, еще где-то. +В один момент кто-то решает использовать их для долговременного +хранения объектов. В базе данных, на диске, еще где-то. -``` +```php namespace Test\Serialize; class A {} @@ -24,8 +25,8 @@ serialize($a); И тут начинаются проблемы. -Дело в том, что при сериалзации объектов классов кроме самих данных объекта сохраняется еще и информация о классе. -Его имя, пространство имен. +Дело в том, что при сериалзации объектов классов кроме самих данных +объекта сохраняется еще и информация о классе. Его имя, пространство имен. Результатом сериализации в примере выше будет: @@ -33,10 +34,11 @@ serialize($a); O:16:"Test\Serialize\A":0:{}O:16:"Test\Serialize\A":0:{} ``` -Если теперь произвести рефакторинг, переместить класс, изменить пространство имен, то десериализация уже не сработает. +Если теперь произвести рефакторинг, переместить класс, +изменить пространство имен, то десериализация уже не сработает. И будет больно. Не делайте так. -Контролируйте процесс сериализации. Например используйте JSON и специальные +Контролируйте процесс сериализации. Например, используйте JSON и специальные функции для превращения объекта в массив и обратно.