AdSense - шапка

среда, 30 ноября 2011 г.

PHP. Разработка классов - моделей с использованием магических методов __set и __get

Сегодня я покажу небольшой пример разработки классов - моделей.

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

Разработка классов - моделей с помощью волшебных методов __set, __get, __isset, __unset часто используется во многих веб-приложениях и фреймворках, например, в известном фреймворке Yii.

Для простоты, будем использовать только первые два волшебных метода. С их помощью мы сможем написать сеттеры и геттеры для доступа к данным, а сами данные будем хранить в массиве.

суббота, 26 ноября 2011 г.

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

Несколько слов о сериализации
Простыми словами, сериализация - это процесс представления какого - либо объекта в виде строки или последовательности бит, как написано в википедии.

В примере я покажу, как проводить сериализацию объектов в JSON формат.
Сериализация очень удобна для:
  1. Обмена данными между клиентской и серверной частью приложения (js и php), поскольку JSON - есть нотация объектов в JavaScript.
  2. В сериализованном виде удобно обмениваться информация между web - приложениями. Тут использование JSON не обязательно, можно, например, использовать XML.

вторник, 22 ноября 2011 г.

PHP. Логгирование и мониторинг памяти с помощью паттерна Decorator(декторатор)

В этой статье я хочу показать, как можно логгировать обращение к методам объектов и потребление памяти с помощью паттерна Декоратор.

Подробное описание паттерна, а также классическую реализацию паттерна можно посмотреть на вики.
UML диаграмма паттерна Декоратор
А теперь я покажу пару примеров, как с помощью декораторов можно логгировать внешние вызовы методов класса, а также анализировать, как обращение к объекту влияет на расход оперативной памяти.

P.S. Предложенная реализация будет отличаться от классической, поскольку декоратор не будет наследован отдекорируемого класса. Это даёт как преимущества, так и определённые недостатки. Обсудим их после примера.

воскресенье, 20 ноября 2011 г.

PHP. Паттерн Abstract Factory(Абстрактная фабрика).

Общие сведения о паттерне Абстрактная фабрика

Итак, я начинаю цикл статей, посвященных использованию паттернов проектирования при разработке web-приложений на PHP.

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

К плюсам паттерна относят:
  1. изоляция конкретных классов
  2. упрощение замены семейств продуктов
  3. гарантированная сочетаемость продуктов
Минус только 1:
  1. сложно добавить поддержку нового вида продуктов.
UML диаграмма паттерна Абстрактная фабрика