目录
1. 简介
- 什么是SPL
- 什么是Iterator
- SPL数据结构
- SPL迭代器
- SPL函数
- SPL文件处理
- 各种类接口
1.1 什么是SPL
SPL是解决典型(standard porblems)问题的一组接口和类的集合。
1.2 什么是Iterator
它是SPL的核心理念,直译过来就是迭代器。迭代器是常见的设计模式之一,有很多使用场景(遍历文件,数据库)。通俗的说,Iterator能够使很多不同的数据结构(文件,数据库搜索的结果集),都能有统一的操作界面(比如:遍历,foreach)。
1.3 SPL的数据结构
- SplDoublyLinkList 双向链表
- SplStack 通过双向链表提供栈的主要功能(就是栈)
- SplQueue 通过双向链表提供队列的主要功能
- SplHeap 通过双向链表提供堆的主要功能(抽象类 )
- SplMaxHeap,SplMinHeap 最大堆和最小堆(继承SplHeap)
- SplPriorityQueue 优先级队列 (底层的数据结构是堆)
- SplFixedArray 定长数组
- SplObjectStorage 对象管理器
1.4 SPL 迭代器
- AppendIterator 迭代器的迭代器
- ArrayIterator 数组迭代器
- CachingIterator (此对象支持在另一个迭代器上缓存迭代。)
- DirectoryIterator (文件和系统目录的迭代)
- EmpryIterator 空迭代器
- FilesystemIterator 文件迭代器
- FilterLteraTor (抽象类)迭代遍历的时候过滤不需要的值
- GlobIterator (遍历一个文件系统 类似于golb)
- InfiniteIterator 无限迭代器
- IteratorIterator 迭代器包装器
- LimitIterator 遍历一个iterator限定子集元素
- MultipleIterator 可以把多个迭代器组合为一个整体访问
- NoRewindIterator 忽略rewind 可以在多个部分foreach
- PraentIterator 对filterItreator扩展 允许recursive操作 只显示有子元素的元素
- RecursiveArrayIterator 功能类似arrayIterator 可以递归当前迭代器的条目
- RecursiveCachingIterator
- RecursiveCallbackFilterIterator
- RecursiveDirectoryLierator
- RecursiveIteratorIterator
- RecursiveRegexIterator 正则表达式过滤
- RecursiveTreeIterator 迭代生成ASCII树
- RegexIterator 正则迭代器
1.5 SPL函数
- class_implements --- 返回指定类实现的所有接口
- class_parents --- 返回指定类的父类
- class_uses --- 返回指定类的trait
- iterator_apply --- 为迭代器每一个元素调用一个用户自定义函数
- iterator_count --- 计算迭代器中元素个数
- iterator_to_array --- 将迭代器中的元素拷贝到数组
- spl_aotoload_call --- 尝试调用所有已经注册的__autoload()函数来装载请求类
- spl_autoload_extendsions --- 注册并返回spl_autoload 函数使用的默认文件扩展名
- spl_autoload_functions --- 返回所有已注册的__autolaod()函数
- spl_autoload_register --- 注册指定函数作为__autoload 的实现
- spl_autoload_unregister --- 注销已经注册的__autoload 函数
- spl_autoload --- __autoload() 函数的默认实现
- spl_classes --- 返回所有可用的SPL类
- spl_object_hash --- 返回指定对象的hash id
- spl_object_id --- 返回给定对象的handle
1.6 文件处理
- SplFileInfo 为单个文件的信息提供了一个高级的面向对象的接口(接口)
- SplFileObject 为文件提供了一个面向对象接口(类)
- SplTempFileObejct 继承了上面的
1.7 各种类接口
- ArrayObject 可以将对象作为数组一样工作
- SplObserver SplObjserver与SplSubject一起使用 实现观察者模式
- SplSubject
- Countable 实现接口可以被用于count()函数
- OuterIterator 实现的接口可以迭代迭代器
- RecursiveIterator 实现接口的类可以用于递归迭代迭代器
- SeekableIterator 搜索迭代器