SPL — это набор стандартных библиотек PHP (Standard PHP Library) появившихся начиная с 5-ой версии PHP.
Если рассматривать SPL с позиции разработчика, то легко выделить шесть основных классов и интерфейсов, функционал которых расширяется в большом множестве классов-потомков.
Класс ArrayAccess
ArrayAccess — это интерфейс который позволяет создать классы которые будут вести себя как массивы. В других языках эта возможность наиболее часто предоставляется с помощью интерфейсов-счетчиков (indexer).
Класс Exception;
Exception — это родительский класс SPL для большого количества классов-потомков (LogicExeption, DomainEception, RangeException и т.д.), которые «выбрасываются» при наступлении той или иной исключительной ситуации.
Класс Iterator
Iterator — это интерфейс SPL который предназначен для реализации объектов с циклической структурой. Реализация данного интерфейса в разрабатываемых классах позволяет стандартным функциям PHP (например foreach) работать с пользовательскими объектами.
Класс IteratorAgregate
IteratorAgregate — это интерфейс SPL который содержит только один метод — «getIterator». Этот интерфейс позволяет не реализовывать в классе интерфейс «Itertator», а использовать вместо этого внешний итератор.
Класс Serializable
Serializable — это интерфейс который позволяет сериализовать любой объект с помощью функций Serialize и Unserrialize
Класс Traversable
Traversable — это служебный класс SPL который используется в интерфейсах Iterator и IteratorAgregate. Реализовать данный интерфейс в PHP-программе нельзя т.к. он реализован на урове C-кода интерпретатора PHP.
Кроме этого есть несколько других возможностей таких как шаблон проектирования «observer», вспомогательные функции для идентификации объекта и для работы с итераторами. Так же есть функционал позволяющий автоматизировать процесс загрузки классов и интерфейсов.
1. ALEN - 06 Марта, 2011 - 20:32:28 - перейти к сообщению