This RFC discusses the transition to real namespaces for internal classes in e.g. ext/spl.
Currently internal classes are inconsistently named. Just take a look at SPL:
Some of the classes in ext/spl are prefixed with “Spl”, some are not. To avoid naming collisions and as a structural element, namespaces were introduced in PHP 5.3. This gives us a chance to move all the Spl-classes in appropriate namespaces. Take a look at the following transitions:
Current name | New name |
---|---|
ArrayObject | Spl::Array::Object |
SplFastArray | Spl::Array::Fast |
Current name | New name |
---|---|
AppendIterator | Spl::Iterator::Append |
ArrayIterator | Spl::Iterator::Array |
CachingIterator | Spl::Iterator::Caching |
DirectoryIterator | Spl::Iterator::Directory |
EmptyIterator | Spl::Iterator::Empty |
FilesystemIterator | Spl::Iterator::Filesystem |
FilterIterator | Spl::Iterator::Filter |
GlobIterator | Spl::Iterator::Glob |
InfiniteIterator | Spl::Iterator::Infinite |
IteratorIterator | Spl::Iterator::Iterator |
LimitIterator | Spl::Iterator::Limit |
RegexIterator | Spl::Iterator::Regex |
SeekableIterator | Spl::Iterator::Seekable |
SimpleXMLIterator | Spl::Iterator::SimpleXML |
ParentIterator | Spl::iterator::Parent |
NoRewindIterator | Spl::Iterator::NoRewind |
OuterIterator | Spl::Iterator::Outer |
RecursiveArrayIterator | Spl::Iterator::Recursive::Array |
RecursiveCachingIterator | Spl::iterator::Recursive::Caching |
RecursiveDirectoryIterator | Spl::Iterator::Recursive::Directory |
RecursiveFilterIterator | Spl::Iterator::Recursive::Filter |
RecursiveIterator | Spl::Iterator::Recursive::Recursive |
RecursiveIteratorIterator | Spl::Iterator::Recursive::Iterator |
RecursiveRegexIterator | Spl::Iterator::Recursive::Regex |
Current name | New name |
---|---|
SplDoublyLinkedList | Spl::List::DoublyLinked |
SplQueue | Spl::List::Queue |
SplStack | Spl::List::Stack |
SplHeap | Spl::List::Heap |
SplMinHeap | Spl::List::MinHeap |
SplMaxHeap | Spl::List::MaxHeap |
SplPriorityQueue | Spl::List::PriorityQueue |
SplObjectStorage | Spl::List::ObjectStorage |
Current name | New name |
---|---|
BadFunctionCallException | Spl::Exception::BadFunctionCall |
BadMethodCallException | Spl::Exception::BadMethodCall |
DomainException | Spl::Exception::Domain |
InvalidArgumentException | Spl::Exception::InvalidArgument |
LengthException | Spl::Exception::Length |
RangeException | Spl::Exception::Range |
RuntimeException | Spl::Exception::Runtime |
LogicException | Spl::Exception::Logic |
OutOfBoundsException | Spl::Exception::OutOfBounds |
OutOfRangeException | Spl::Exception::OutOfRange |
OverflowException | Spl::Exception::Overflow |
UnderflowException | Spl::Exception::UnderflowException |
UnexpectedValueException | Spl::Exception::UnexpectedValue |
Current name | New name |
---|---|
SplFileInfo | Spl::File::Info |
SplFileObject | Spl::File::Object |
SplTempFileObject | Spl::File::TempFile |
Current name | New name |
---|---|
SplObserver | Spl::Observer::Observer |
SplSubject | Spl::Observer::Subject |
Current name | New name |
---|---|
Countable | Spl::Countable |