Compare commits

...

2 Commits

Author SHA1 Message Date
Sebastian Meyer b7b65c2496 Add new datastructure StrictArray 2024-03-27 12:19:43 +01:00
Sebastian Meyer f3c152cf09 Add PHPStan doc tag for dependency 2024-03-27 12:18:27 +01:00
19 changed files with 2787 additions and 145 deletions

View File

@ -37,6 +37,7 @@ v2.0.0
**New Features:**
* Added new datastructure :php:class:`OCC\Basics\DataStructures\StrictCollection`
* Added new datastructure :php:class:`OCC\Basics\DataStructures\StrictArray`
* Added new error handler :php:class:`OCC\Basics\ErrorHandlers\TriggerExceptionError`
* Added new trait :php:trait:`OCC\Basics\Traits\OverloadingGetter`
* Added new trait :php:trait:`OCC\Basics\Traits\OverloadingSetter`

View File

@ -6,7 +6,9 @@ Typed Datastructures
.. sidebar:: Table of Contents
.. contents::
All datastructures in this package have in common that you can control the types of items they can hold.
The datastructures in this package are derived from their respective `Standard PHP Library (SPL) counterparts
<https://www.php.net/spl.datastructures>`_ which they extend by the option to control the data types of items those
datastructures can hold.
To restrict allowed data types for items, provide the constructor with an array of atomic types or fully qualified
class names you want to allow as item types. Available atomic types are `array`, `bool`, `callable`, `countable`,
@ -16,6 +18,10 @@ class names you want to allow as item types. Available atomic types are `array`,
Trying to add an item with a data type not on the list of allowed types to a strict datastructure will result in an
:php:class:`OCC\Basics\DataStructures\Exceptions\InvalidDataTypeException`.
All strict datastructures inherit the implementation of the `\ArrayAccess <https://www.php.net/arrayaccess>`_,
`\Countable <https://www.php.net/countable>`_ and `\Serializable <https://www.php.net/serializable>`_ interfaces. All
but `StrictCollection` also implement the `\Traversable <https://www.php.net/traversable>`_ interface.
Examples:
.. code-block:: php
@ -29,17 +35,27 @@ StrictCollection
================
.. sidebar:: API Documentation
:php:class:`OCC\Basics\DataStructures\StrictCollection`
* :php:class:`OCC\Basics\DataStructures\StrictCollection`
*A type-sensitive, unsorted collection of items.*
Holds items as key/value pairs where keys identify the items and have to be valid array keys while values can be of any
controlled type.
controlled type. The collection can be accessed like an array, but not traversed because it has no particular order.
A `StrictCollection` can be accessed like an array, but not traversed because it has no particular order. Technically
speaking, `StrictCollection` implements `\ArrayAccess <https://www.php.net/arrayaccess>`_, `\Countable
<https://www.php.net/countable>`_ and `\Serializable <https://www.php.net/serializable>`_, but no `\Traversable
<https://www.php.net/traversable>`_ interface.
.. note::
Internally it holds the items in the `$_data` array, the same as most :php:namespace:`OCC\Basics\Interfaces` and
:php:namespace:`OCC\Basics\Traits` of this package.
StrictArray
================
.. sidebar:: API Documentation
* :php:class:`OCC\Basics\DataStructures\StrictArray`
*A type-sensitive, traversable array of items.*
Holds items as key/value pairs where keys identify the items and have to be valid array keys while values can be of any
controlled type. The array can be accessed and traversed just like any other array.
.. note::
Internally it holds the items in the `$_data` array, the same as most :php:namespace:`OCC\Basics\Interfaces` and
@ -49,31 +65,39 @@ StrictList
==========
.. sidebar:: API Documentation
:php:class:`OCC\Basics\DataStructures\StrictList`
* :php:class:`OCC\Basics\DataStructures\StrictList`
*A type-sensitive, taversable list of items.*
Extends `\SplDoublyLinkedList <https://www.php.net/spldoublylinkedlist>`_ with an option to restrict the allowed data
types for list items.
types for list items. The list can be accessed and traversed like an array, but has only consecutive numerical keys.
StrictQueue
===========
.. sidebar:: API Documentation
:php:class:`OCC\Basics\DataStructures\StrictQueue`
* :php:class:`OCC\Basics\DataStructures\StrictQueue`
*A type-sensitive, taversable queue (FIFO) of items.*
Extends `\SplDoublyLinkedList <https://www.php.net/spldoublylinkedlist>`_ with an option to restrict the allowed data
types for list items.
Extends `\SplQueue <https://www.php.net/splqueue>`_ with an option to restrict the allowed data types for queue items.
The queue can be accessed and traversed like an array, but has only consecutive numerical keys. Traversal follows the
first-in, first-out (FIFO) principle meaning that items are returned in the same order they were added to the queue.
It is recommended to use the `StrictQueue::enqueue()` and `StrictQueue::dequeue()` alias methods when working with a
queue, because those will ensure proper FIFO behavior and remove items while traversing.
StrictStack
===========
.. sidebar:: API Documentation
:php:class:`OCC\Basics\DataStructures\StrictStack`
* :php:class:`OCC\Basics\DataStructures\StrictStack`
*A type-sensitive, taversable stack (LIFO) of items.*
Extends `\SplDoublyLinkedList <https://www.php.net/spldoublylinkedlist>`_ with an option to restrict the allowed data
types for list items.
Extends `\SplStack <https://www.php.net/splstack>`_ with an option to restrict the allowed data types for stack items.
The stack can be accessed and traversed like an array, but has only consecutive numerical keys. Traversal follows the
last-in, first-out (LIFO) principle meaning that items are returned in the reversed order they were added to the stack.
It is recommended to use the `StrictStack::stack()` and `StrictStack::unstack()` alias methods when working with a
stack, because those will ensure proper LIFO behavior and remove items while traversing.

File diff suppressed because it is too large Load Diff

View File

@ -393,9 +393,9 @@ constructor with an array of atomic types or fully qualified class names.</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">366</span>
<span class="phpdocumentor-element-found-in__line">368</span>
<a href="classes/OCC-Basics-DataStructures-StrictList.html#source-view.366" class="phpdocumentor-element-found-in__source" data-line="366" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictList.html#source-view.368" class="phpdocumentor-element-found-in__source" data-line="368" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Create a type-sensitive, traversable list of items.</p>
@ -472,9 +472,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">69</span>
<span class="phpdocumentor-element-found-in__line">71</span>
<a href="classes/OCC-Basics-DataStructures-StrictList.html#source-view.69" class="phpdocumentor-element-found-in__source" data-line="69" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictList.html#source-view.71" class="phpdocumentor-element-found-in__source" data-line="71" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Add/insert a new item at the specified offset.</p>
@ -555,9 +555,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">85</span>
<span class="phpdocumentor-element-found-in__line">87</span>
<a href="classes/OCC-Basics-DataStructures-StrictList.html#source-view.85" class="phpdocumentor-element-found-in__source" data-line="85" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictList.html#source-view.87" class="phpdocumentor-element-found-in__source" data-line="87" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Append items at the end of the list.</p>
@ -619,9 +619,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">111</span>
<span class="phpdocumentor-element-found-in__line">113</span>
<a href="classes/OCC-Basics-DataStructures-StrictList.html#source-view.111" class="phpdocumentor-element-found-in__source" data-line="111" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictList.html#source-view.113" class="phpdocumentor-element-found-in__source" data-line="113" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Clear the list of any items.</p>
@ -654,9 +654,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">130</span>
<span class="phpdocumentor-element-found-in__line">132</span>
<a href="classes/OCC-Basics-DataStructures-StrictList.html#source-view.130" class="phpdocumentor-element-found-in__source" data-line="130" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictList.html#source-view.132" class="phpdocumentor-element-found-in__source" data-line="132" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Get the item at the specified index.</p>
@ -726,9 +726,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">142</span>
<span class="phpdocumentor-element-found-in__line">144</span>
<a href="classes/OCC-Basics-DataStructures-StrictList.html#source-view.142" class="phpdocumentor-element-found-in__source" data-line="142" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictList.html#source-view.144" class="phpdocumentor-element-found-in__source" data-line="144" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Check if this can be considered a list.</p>
@ -769,9 +769,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">160</span>
<span class="phpdocumentor-element-found-in__line">162</span>
<a href="classes/OCC-Basics-DataStructures-StrictList.html#source-view.160" class="phpdocumentor-element-found-in__source" data-line="160" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictList.html#source-view.162" class="phpdocumentor-element-found-in__source" data-line="162" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Set the item at the specified offset.</p>
@ -852,9 +852,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">185</span>
<span class="phpdocumentor-element-found-in__line">187</span>
<a href="classes/OCC-Basics-DataStructures-StrictList.html#source-view.185" class="phpdocumentor-element-found-in__source" data-line="185" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictList.html#source-view.187" class="phpdocumentor-element-found-in__source" data-line="187" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Prepend items at the start of the list.</p>
@ -916,9 +916,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">215</span>
<span class="phpdocumentor-element-found-in__line">217</span>
<a href="classes/OCC-Basics-DataStructures-StrictList.html#source-view.215" class="phpdocumentor-element-found-in__source" data-line="215" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictList.html#source-view.217" class="phpdocumentor-element-found-in__source" data-line="217" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Push an item at the end of the list.</p>
@ -980,9 +980,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">239</span>
<span class="phpdocumentor-element-found-in__line">241</span>
<a href="classes/OCC-Basics-DataStructures-StrictList.html#source-view.239" class="phpdocumentor-element-found-in__source" data-line="239" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictList.html#source-view.241" class="phpdocumentor-element-found-in__source" data-line="241" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Remove an item from the list.</p>
@ -1044,9 +1044,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">268</span>
<span class="phpdocumentor-element-found-in__line">270</span>
<a href="classes/OCC-Basics-DataStructures-StrictList.html#source-view.268" class="phpdocumentor-element-found-in__source" data-line="268" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictList.html#source-view.270" class="phpdocumentor-element-found-in__source" data-line="270" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Set an item at the specified index.</p>
@ -1117,9 +1117,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">280</span>
<span class="phpdocumentor-element-found-in__line">282</span>
<a href="classes/OCC-Basics-DataStructures-StrictList.html#source-view.280" class="phpdocumentor-element-found-in__source" data-line="280" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictList.html#source-view.282" class="phpdocumentor-element-found-in__source" data-line="282" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Return array representation of list.</p>
@ -1160,9 +1160,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">292</span>
<span class="phpdocumentor-element-found-in__line">294</span>
<a href="classes/OCC-Basics-DataStructures-StrictList.html#source-view.292" class="phpdocumentor-element-found-in__source" data-line="292" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictList.html#source-view.294" class="phpdocumentor-element-found-in__source" data-line="294" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Turn list into a type-sensitive collection.</p>
@ -1203,9 +1203,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">328</span>
<span class="phpdocumentor-element-found-in__line">330</span>
<a href="classes/OCC-Basics-DataStructures-StrictList.html#source-view.328" class="phpdocumentor-element-found-in__source" data-line="328" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictList.html#source-view.330" class="phpdocumentor-element-found-in__source" data-line="330" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Prepend the list with an item.</p>

View File

@ -400,9 +400,9 @@ array of atomic types or fully qualified class names.</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">366</span>
<span class="phpdocumentor-element-found-in__line">368</span>
<a href="classes/OCC-Basics-DataStructures-StrictQueue.html#source-view.366" class="phpdocumentor-element-found-in__source" data-line="366" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictQueue.html#source-view.368" class="phpdocumentor-element-found-in__source" data-line="368" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Create a type-sensitive, traversable list of items.</p>
@ -479,9 +479,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">69</span>
<span class="phpdocumentor-element-found-in__line">71</span>
<a href="classes/OCC-Basics-DataStructures-StrictQueue.html#source-view.69" class="phpdocumentor-element-found-in__source" data-line="69" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictQueue.html#source-view.71" class="phpdocumentor-element-found-in__source" data-line="71" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Add/insert a new item at the specified offset.</p>
@ -562,9 +562,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">85</span>
<span class="phpdocumentor-element-found-in__line">87</span>
<a href="classes/OCC-Basics-DataStructures-StrictQueue.html#source-view.85" class="phpdocumentor-element-found-in__source" data-line="85" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictQueue.html#source-view.87" class="phpdocumentor-element-found-in__source" data-line="87" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Append items at the end of the list.</p>
@ -626,9 +626,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">111</span>
<span class="phpdocumentor-element-found-in__line">113</span>
<a href="classes/OCC-Basics-DataStructures-StrictQueue.html#source-view.111" class="phpdocumentor-element-found-in__source" data-line="111" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictQueue.html#source-view.113" class="phpdocumentor-element-found-in__source" data-line="113" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Clear the list of any items.</p>
@ -725,9 +725,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">130</span>
<span class="phpdocumentor-element-found-in__line">132</span>
<a href="classes/OCC-Basics-DataStructures-StrictQueue.html#source-view.130" class="phpdocumentor-element-found-in__source" data-line="130" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictQueue.html#source-view.132" class="phpdocumentor-element-found-in__source" data-line="132" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Get the item at the specified index.</p>
@ -797,9 +797,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">142</span>
<span class="phpdocumentor-element-found-in__line">144</span>
<a href="classes/OCC-Basics-DataStructures-StrictQueue.html#source-view.142" class="phpdocumentor-element-found-in__source" data-line="142" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictQueue.html#source-view.144" class="phpdocumentor-element-found-in__source" data-line="144" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Check if this can be considered a list.</p>
@ -840,9 +840,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">160</span>
<span class="phpdocumentor-element-found-in__line">162</span>
<a href="classes/OCC-Basics-DataStructures-StrictQueue.html#source-view.160" class="phpdocumentor-element-found-in__source" data-line="160" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictQueue.html#source-view.162" class="phpdocumentor-element-found-in__source" data-line="162" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Set the item at the specified offset.</p>
@ -923,9 +923,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">185</span>
<span class="phpdocumentor-element-found-in__line">187</span>
<a href="classes/OCC-Basics-DataStructures-StrictQueue.html#source-view.185" class="phpdocumentor-element-found-in__source" data-line="185" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictQueue.html#source-view.187" class="phpdocumentor-element-found-in__source" data-line="187" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Prepend items at the start of the list.</p>
@ -987,9 +987,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">215</span>
<span class="phpdocumentor-element-found-in__line">217</span>
<a href="classes/OCC-Basics-DataStructures-StrictQueue.html#source-view.215" class="phpdocumentor-element-found-in__source" data-line="215" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictQueue.html#source-view.217" class="phpdocumentor-element-found-in__source" data-line="217" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Push an item at the end of the list.</p>
@ -1051,9 +1051,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">239</span>
<span class="phpdocumentor-element-found-in__line">241</span>
<a href="classes/OCC-Basics-DataStructures-StrictQueue.html#source-view.239" class="phpdocumentor-element-found-in__source" data-line="239" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictQueue.html#source-view.241" class="phpdocumentor-element-found-in__source" data-line="241" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Remove an item from the list.</p>
@ -1115,9 +1115,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">268</span>
<span class="phpdocumentor-element-found-in__line">270</span>
<a href="classes/OCC-Basics-DataStructures-StrictQueue.html#source-view.268" class="phpdocumentor-element-found-in__source" data-line="268" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictQueue.html#source-view.270" class="phpdocumentor-element-found-in__source" data-line="270" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Set an item at the specified index.</p>
@ -1188,9 +1188,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">280</span>
<span class="phpdocumentor-element-found-in__line">282</span>
<a href="classes/OCC-Basics-DataStructures-StrictQueue.html#source-view.280" class="phpdocumentor-element-found-in__source" data-line="280" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictQueue.html#source-view.282" class="phpdocumentor-element-found-in__source" data-line="282" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Return array representation of list.</p>
@ -1231,9 +1231,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">292</span>
<span class="phpdocumentor-element-found-in__line">294</span>
<a href="classes/OCC-Basics-DataStructures-StrictQueue.html#source-view.292" class="phpdocumentor-element-found-in__source" data-line="292" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictQueue.html#source-view.294" class="phpdocumentor-element-found-in__source" data-line="294" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Turn list into a type-sensitive collection.</p>
@ -1274,9 +1274,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">328</span>
<span class="phpdocumentor-element-found-in__line">330</span>
<a href="classes/OCC-Basics-DataStructures-StrictQueue.html#source-view.328" class="phpdocumentor-element-found-in__source" data-line="328" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictQueue.html#source-view.330" class="phpdocumentor-element-found-in__source" data-line="330" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Prepend the list with an item.</p>

View File

@ -407,9 +407,9 @@ array of atomic types or fully qualified class names.</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">366</span>
<span class="phpdocumentor-element-found-in__line">368</span>
<a href="classes/OCC-Basics-DataStructures-StrictStack.html#source-view.366" class="phpdocumentor-element-found-in__source" data-line="366" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictStack.html#source-view.368" class="phpdocumentor-element-found-in__source" data-line="368" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Create a type-sensitive, traversable list of items.</p>
@ -486,9 +486,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">69</span>
<span class="phpdocumentor-element-found-in__line">71</span>
<a href="classes/OCC-Basics-DataStructures-StrictStack.html#source-view.69" class="phpdocumentor-element-found-in__source" data-line="69" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictStack.html#source-view.71" class="phpdocumentor-element-found-in__source" data-line="71" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Add/insert a new item at the specified offset.</p>
@ -569,9 +569,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">85</span>
<span class="phpdocumentor-element-found-in__line">87</span>
<a href="classes/OCC-Basics-DataStructures-StrictStack.html#source-view.85" class="phpdocumentor-element-found-in__source" data-line="85" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictStack.html#source-view.87" class="phpdocumentor-element-found-in__source" data-line="87" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Append items at the end of the list.</p>
@ -633,9 +633,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">111</span>
<span class="phpdocumentor-element-found-in__line">113</span>
<a href="classes/OCC-Basics-DataStructures-StrictStack.html#source-view.111" class="phpdocumentor-element-found-in__source" data-line="111" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictStack.html#source-view.113" class="phpdocumentor-element-found-in__source" data-line="113" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Clear the list of any items.</p>
@ -668,9 +668,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">130</span>
<span class="phpdocumentor-element-found-in__line">132</span>
<a href="classes/OCC-Basics-DataStructures-StrictStack.html#source-view.130" class="phpdocumentor-element-found-in__source" data-line="130" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictStack.html#source-view.132" class="phpdocumentor-element-found-in__source" data-line="132" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Get the item at the specified index.</p>
@ -740,9 +740,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">142</span>
<span class="phpdocumentor-element-found-in__line">144</span>
<a href="classes/OCC-Basics-DataStructures-StrictStack.html#source-view.142" class="phpdocumentor-element-found-in__source" data-line="142" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictStack.html#source-view.144" class="phpdocumentor-element-found-in__source" data-line="144" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Check if this can be considered a list.</p>
@ -783,9 +783,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">160</span>
<span class="phpdocumentor-element-found-in__line">162</span>
<a href="classes/OCC-Basics-DataStructures-StrictStack.html#source-view.160" class="phpdocumentor-element-found-in__source" data-line="160" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictStack.html#source-view.162" class="phpdocumentor-element-found-in__source" data-line="162" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Set the item at the specified offset.</p>
@ -866,9 +866,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">185</span>
<span class="phpdocumentor-element-found-in__line">187</span>
<a href="classes/OCC-Basics-DataStructures-StrictStack.html#source-view.185" class="phpdocumentor-element-found-in__source" data-line="185" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictStack.html#source-view.187" class="phpdocumentor-element-found-in__source" data-line="187" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Prepend items at the start of the list.</p>
@ -930,9 +930,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">215</span>
<span class="phpdocumentor-element-found-in__line">217</span>
<a href="classes/OCC-Basics-DataStructures-StrictStack.html#source-view.215" class="phpdocumentor-element-found-in__source" data-line="215" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictStack.html#source-view.217" class="phpdocumentor-element-found-in__source" data-line="217" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Push an item at the end of the list.</p>
@ -994,9 +994,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">239</span>
<span class="phpdocumentor-element-found-in__line">241</span>
<a href="classes/OCC-Basics-DataStructures-StrictStack.html#source-view.239" class="phpdocumentor-element-found-in__source" data-line="239" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictStack.html#source-view.241" class="phpdocumentor-element-found-in__source" data-line="241" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Remove an item from the list.</p>
@ -1058,9 +1058,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">268</span>
<span class="phpdocumentor-element-found-in__line">270</span>
<a href="classes/OCC-Basics-DataStructures-StrictStack.html#source-view.268" class="phpdocumentor-element-found-in__source" data-line="268" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictStack.html#source-view.270" class="phpdocumentor-element-found-in__source" data-line="270" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Set an item at the specified index.</p>
@ -1195,9 +1195,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">280</span>
<span class="phpdocumentor-element-found-in__line">282</span>
<a href="classes/OCC-Basics-DataStructures-StrictStack.html#source-view.280" class="phpdocumentor-element-found-in__source" data-line="280" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictStack.html#source-view.282" class="phpdocumentor-element-found-in__source" data-line="282" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Return array representation of list.</p>
@ -1238,9 +1238,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">292</span>
<span class="phpdocumentor-element-found-in__line">294</span>
<a href="classes/OCC-Basics-DataStructures-StrictStack.html#source-view.292" class="phpdocumentor-element-found-in__source" data-line="292" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictStack.html#source-view.294" class="phpdocumentor-element-found-in__source" data-line="294" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Turn list into a type-sensitive collection.</p>
@ -1281,9 +1281,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">328</span>
<span class="phpdocumentor-element-found-in__line">330</span>
<a href="classes/OCC-Basics-DataStructures-StrictStack.html#source-view.328" class="phpdocumentor-element-found-in__source" data-line="328" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-StrictStack.html#source-view.330" class="phpdocumentor-element-found-in__source" data-line="330" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Prepend the list with an item.</p>

View File

@ -183,9 +183,9 @@
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">50</span>
<span class="phpdocumentor-element-found-in__line">52</span>
<a href="classes/OCC-Basics-DataStructures-Traits-StrictSplDatastructureTrait.html#source-view.50" class="phpdocumentor-element-found-in__source" data-line="50" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-Traits-StrictSplDatastructureTrait.html#source-view.52" class="phpdocumentor-element-found-in__source" data-line="52" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">The common interface of all type-sensitive, SPL-based datastructures.</p>
@ -219,6 +219,15 @@ by type-checking to only allow specified data types on the list.</p>
<section class="phpdocumentor-description"><p>AllowedType of mixed</p>
</section>
</dd>
<dt class="phpdocumentor-tag-list__entry">
<span class="phpdocumentor-tag__name">phpstan-require-extends</span>
</dt>
<dd class="phpdocumentor-tag-list__definition">
<section class="phpdocumentor-description"><p>SplDoublyLinkedList</p>
</section>
</dd>
</dl>
@ -372,9 +381,9 @@ by type-checking to only allow specified data types on the list.</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">366</span>
<span class="phpdocumentor-element-found-in__line">368</span>
<a href="classes/OCC-Basics-DataStructures-Traits-StrictSplDatastructureTrait.html#source-view.366" class="phpdocumentor-element-found-in__source" data-line="366" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-Traits-StrictSplDatastructureTrait.html#source-view.368" class="phpdocumentor-element-found-in__source" data-line="368" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Create a type-sensitive, traversable list of items.</p>
@ -451,9 +460,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">69</span>
<span class="phpdocumentor-element-found-in__line">71</span>
<a href="classes/OCC-Basics-DataStructures-Traits-StrictSplDatastructureTrait.html#source-view.69" class="phpdocumentor-element-found-in__source" data-line="69" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-Traits-StrictSplDatastructureTrait.html#source-view.71" class="phpdocumentor-element-found-in__source" data-line="71" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Add/insert a new item at the specified offset.</p>
@ -534,9 +543,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">85</span>
<span class="phpdocumentor-element-found-in__line">87</span>
<a href="classes/OCC-Basics-DataStructures-Traits-StrictSplDatastructureTrait.html#source-view.85" class="phpdocumentor-element-found-in__source" data-line="85" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-Traits-StrictSplDatastructureTrait.html#source-view.87" class="phpdocumentor-element-found-in__source" data-line="87" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Append items at the end of the list.</p>
@ -598,9 +607,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">111</span>
<span class="phpdocumentor-element-found-in__line">113</span>
<a href="classes/OCC-Basics-DataStructures-Traits-StrictSplDatastructureTrait.html#source-view.111" class="phpdocumentor-element-found-in__source" data-line="111" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-Traits-StrictSplDatastructureTrait.html#source-view.113" class="phpdocumentor-element-found-in__source" data-line="113" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Clear the list of any items.</p>
@ -633,9 +642,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">130</span>
<span class="phpdocumentor-element-found-in__line">132</span>
<a href="classes/OCC-Basics-DataStructures-Traits-StrictSplDatastructureTrait.html#source-view.130" class="phpdocumentor-element-found-in__source" data-line="130" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-Traits-StrictSplDatastructureTrait.html#source-view.132" class="phpdocumentor-element-found-in__source" data-line="132" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Get the item at the specified index.</p>
@ -705,9 +714,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">142</span>
<span class="phpdocumentor-element-found-in__line">144</span>
<a href="classes/OCC-Basics-DataStructures-Traits-StrictSplDatastructureTrait.html#source-view.142" class="phpdocumentor-element-found-in__source" data-line="142" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-Traits-StrictSplDatastructureTrait.html#source-view.144" class="phpdocumentor-element-found-in__source" data-line="144" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Check if this can be considered a list.</p>
@ -748,9 +757,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">160</span>
<span class="phpdocumentor-element-found-in__line">162</span>
<a href="classes/OCC-Basics-DataStructures-Traits-StrictSplDatastructureTrait.html#source-view.160" class="phpdocumentor-element-found-in__source" data-line="160" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-Traits-StrictSplDatastructureTrait.html#source-view.162" class="phpdocumentor-element-found-in__source" data-line="162" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Set the item at the specified offset.</p>
@ -831,9 +840,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">185</span>
<span class="phpdocumentor-element-found-in__line">187</span>
<a href="classes/OCC-Basics-DataStructures-Traits-StrictSplDatastructureTrait.html#source-view.185" class="phpdocumentor-element-found-in__source" data-line="185" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-Traits-StrictSplDatastructureTrait.html#source-view.187" class="phpdocumentor-element-found-in__source" data-line="187" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Prepend items at the start of the list.</p>
@ -895,9 +904,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">215</span>
<span class="phpdocumentor-element-found-in__line">217</span>
<a href="classes/OCC-Basics-DataStructures-Traits-StrictSplDatastructureTrait.html#source-view.215" class="phpdocumentor-element-found-in__source" data-line="215" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-Traits-StrictSplDatastructureTrait.html#source-view.217" class="phpdocumentor-element-found-in__source" data-line="217" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Push an item at the end of the list.</p>
@ -959,9 +968,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">239</span>
<span class="phpdocumentor-element-found-in__line">241</span>
<a href="classes/OCC-Basics-DataStructures-Traits-StrictSplDatastructureTrait.html#source-view.239" class="phpdocumentor-element-found-in__source" data-line="239" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-Traits-StrictSplDatastructureTrait.html#source-view.241" class="phpdocumentor-element-found-in__source" data-line="241" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Remove an item from the list.</p>
@ -1023,9 +1032,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">268</span>
<span class="phpdocumentor-element-found-in__line">270</span>
<a href="classes/OCC-Basics-DataStructures-Traits-StrictSplDatastructureTrait.html#source-view.268" class="phpdocumentor-element-found-in__source" data-line="268" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-Traits-StrictSplDatastructureTrait.html#source-view.270" class="phpdocumentor-element-found-in__source" data-line="270" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Set an item at the specified index.</p>
@ -1096,9 +1105,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">280</span>
<span class="phpdocumentor-element-found-in__line">282</span>
<a href="classes/OCC-Basics-DataStructures-Traits-StrictSplDatastructureTrait.html#source-view.280" class="phpdocumentor-element-found-in__source" data-line="280" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-Traits-StrictSplDatastructureTrait.html#source-view.282" class="phpdocumentor-element-found-in__source" data-line="282" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Return array representation of list.</p>
@ -1139,9 +1148,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">292</span>
<span class="phpdocumentor-element-found-in__line">294</span>
<a href="classes/OCC-Basics-DataStructures-Traits-StrictSplDatastructureTrait.html#source-view.292" class="phpdocumentor-element-found-in__source" data-line="292" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-Traits-StrictSplDatastructureTrait.html#source-view.294" class="phpdocumentor-element-found-in__source" data-line="294" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Turn list into a type-sensitive collection.</p>
@ -1182,9 +1191,9 @@ Possible values are:</p>
<aside class="phpdocumentor-element-found-in">
<abbr class="phpdocumentor-element-found-in__file" title="src/DataStructures/Traits/StrictSplDatastructureTrait.php"><a href="files/src-datastructures-traits-strictspldatastructuretrait.html"><abbr title="src/DataStructures/Traits/StrictSplDatastructureTrait.php">StrictSplDatastructureTrait.php</abbr></a></abbr>
:
<span class="phpdocumentor-element-found-in__line">328</span>
<span class="phpdocumentor-element-found-in__line">330</span>
<a href="classes/OCC-Basics-DataStructures-Traits-StrictSplDatastructureTrait.html#source-view.328" class="phpdocumentor-element-found-in__source" data-line="328" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
<a href="classes/OCC-Basics-DataStructures-Traits-StrictSplDatastructureTrait.html#source-view.330" class="phpdocumentor-element-found-in__source" data-line="330" data-modal="source-view" data-src="files/src/DataStructures/Traits/StrictSplDatastructureTrait.php.txt"></a>
</aside>
<p class="phpdocumentor-summary">Prepend the list with an item.</p>

View File

@ -0,0 +1,362 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>PHP Basics</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<base href="../">
<link rel="icon" href="images/favicon.ico"/>
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/base.css">
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@100;200;300;400;600;700&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Source+Code+Pro:wght@400;600;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/template.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.0/css/all.min.css" integrity="sha256-ybRkN9dBjhcS2qrW1z+hfCxq+1aBdwyQM5wlQoQVt/0=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/themes/prism-okaidia.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-numbers/prism-line-numbers.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-highlight/prism-line-highlight.css">
<script src="https://cdn.jsdelivr.net/npm/fuse.js@3.4.6"></script>
<script src="https://cdn.jsdelivr.net/npm/css-vars-ponyfill@2"></script>
<script src="js/template.js"></script>
<script src="js/search.js"></script>
<script defer src="js/searchIndex.js"></script>
</head>
<body id="top">
<header class="phpdocumentor-header phpdocumentor-section">
<h1 class="phpdocumentor-title"><a href="" class="phpdocumentor-title__link">PHP Basics</a></h1>
<input class="phpdocumentor-header__menu-button" type="checkbox" id="menu-button" name="menu-button" />
<label class="phpdocumentor-header__menu-icon" for="menu-button">
<i class="fas fa-bars"></i>
</label>
<section data-search-form class="phpdocumentor-search">
<label>
<span class="visually-hidden">Search for</span>
<svg class="phpdocumentor-search__icon" width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="7.5" cy="7.5" r="6.5" stroke="currentColor" stroke-width="2"/>
<line x1="12.4892" y1="12.2727" x2="19.1559" y2="18.9393" stroke="currentColor" stroke-width="3"/>
</svg>
<input type="search" class="phpdocumentor-field phpdocumentor-search__field" placeholder="Loading .." disabled />
</label>
</section>
<nav class="phpdocumentor-topnav">
<ul class="phpdocumentor-topnav__menu">
<li class="phpdocumentor-topnav__menu-item -menu">
<a href="https://packagist.org/packages/opencultureconsulting/basics">
<span>
<i class="fab fa-php"></i>
</span>
</a>
</li>
<li class="phpdocumentor-topnav__menu-item -menu">
<a href="https://github.com/opencultureconsulting/php-basics">
<span>
<i class="fab fa-github"></i>
</span>
</a>
</li>
</ul>
</nav>
</header>
<main class="phpdocumentor">
<div class="phpdocumentor-section">
<input class="phpdocumentor-sidebar__menu-button" type="checkbox" id="sidebar-button" name="sidebar-button" />
<label class="phpdocumentor-sidebar__menu-icon" for="sidebar-button">
Menu
</label>
<aside class="phpdocumentor-column -three phpdocumentor-sidebar">
<section class="phpdocumentor-sidebar__category -documentation">
<h2 class="phpdocumentor-sidebar__category-header">Documentation</h2>
<h4 class="phpdocumentor-sidebar__root-namespace">
<a href="guides/overview/index.html#overview" class="">Overview</a>
</h4>
<ul class="phpdocumentor-list">
<li>
<a href="guides/overview/datastructures.html#typed-datastructures" class="">Typed Datastructures</a>
</li>
<li>
<a href="guides/overview/errorhandlers.html#error-and-exception-handlers" class="">Error and Exception Handlers</a>
</li>
<li>
<a href="guides/overview/interfaces.html#interface-traits" class="">Interface Traits</a>
</li>
<li>
<a href="guides/overview/traits.html#traits" class="">Traits</a>
</li>
</ul>
<h4 class="phpdocumentor-sidebar__root-namespace">
<a href="guides/usage/index.html#user-guide" class="">User Guide</a>
</h4>
<ul class="phpdocumentor-list">
<li>
<a href="guides/usage/requirements.html#requirements" class="">Requirements</a>
</li>
<li>
<a href="guides/usage/installation.html#installation" class="">Installation</a>
</li>
</ul>
<h4 class="phpdocumentor-sidebar__root-namespace">
<a href="guides/changelog.html#changelog" class="">Changelog</a>
</h4>
</section>
<section class="phpdocumentor-sidebar__category -namespaces">
<h2 class="phpdocumentor-sidebar__category-header">Namespaces</h2>
<h4 class="phpdocumentor-sidebar__root-namespace">
<a href="namespaces/occ.html" class="">OCC</a>
</h4>
<ul class="phpdocumentor-list">
<li>
<a href="namespaces/occ-basics.html" class="">Basics</a>
</li>
</ul>
</section>
<section class="phpdocumentor-sidebar__category -packages">
<h2 class="phpdocumentor-sidebar__category-header">Packages</h2>
<h4 class="phpdocumentor-sidebar__root-namespace">
<a href="packages/Basics.html" class="">Basics</a>
</h4>
<ul class="phpdocumentor-list">
<li>
<a href="packages/Basics-DataStructures.html" class="">DataStructures</a>
</li>
<li>
<a href="packages/Basics-ErrorHandlers.html" class="">ErrorHandlers</a>
</li>
<li>
<a href="packages/Basics-Interfaces.html" class="">Interfaces</a>
</li>
<li>
<a href="packages/Basics-Traits.html" class="">Traits</a>
</li>
</ul>
</section>
<section class="phpdocumentor-sidebar__category -reports">
<h2 class="phpdocumentor-sidebar__category-header">Reports</h2>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/deprecated.html">Deprecated</a></h3>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/errors.html">Errors</a></h3>
<h3 class="phpdocumentor-sidebar__root-package"><a href="reports/markers.html">Markers</a></h3>
</section>
<section class="phpdocumentor-sidebar__category -indices">
<h2 class="phpdocumentor-sidebar__category-header">Indices</h2>
<h3 class="phpdocumentor-sidebar__root-package"><a href="indices/files.html">Files</a></h3>
</section>
</aside>
<div class="phpdocumentor-column -nine phpdocumentor-content">
<section>
<ul class="phpdocumentor-breadcrumbs">
</ul>
<article class="phpdocumentor-element -file">
<h2 class="phpdocumentor-content__title">StrictArray.php</h2>
<p class="phpdocumentor-summary">PHP Basics</p>
<section class="phpdocumentor-description"><p>Copyright (C) 2024 Sebastian Meyer <a href="mailto:sebastian.meyer@opencultureconsulting.com">sebastian.meyer@opencultureconsulting.com</a></p>
<p>This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.</p>
<p>This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.</p>
<p>You should have received a copy of the GNU General Public License
along with this program. If not, see <a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>.</p>
</section>
<h3 id="toc">
Table of Contents
<a href="files/src-datastructures-strictarray.html#toc" class="headerlink"><i class="fas fa-link"></i></a>
</h3>
<h4 id="toc-classes">
Classes
<a href="files/src-datastructures-strictarray.html#toc-classes" class="headerlink"><i class="fas fa-link"></i></a>
</h4>
<dl class="phpdocumentor-table-of-contents">
<dt class="phpdocumentor-table-of-contents__entry -class"><a href="classes/OCC-Basics-DataStructures-StrictArray.html"><abbr title="\OCC\Basics\DataStructures\StrictArray">StrictArray</abbr></a></dt><dd>A type-sensitive, traversable array.</dd> </dl>
<div class="phpdocumentor-modal" id="source-view">
<div class="phpdocumentor-modal-bg" data-exit-button></div>
<div class="phpdocumentor-modal-container">
<div class="phpdocumentor-modal-content">
<pre style="max-height: 500px; overflow-y: scroll" data-src="files/src/DataStructures/StrictArray.php.txt" class="language-php line-numbers linkable-line-numbers"></pre>
</div>
<button data-exit-button class="phpdocumentor-modal__close">&times;</button>
</div>
</div>
<script type="text/javascript">
(function () {
function loadExternalCodeSnippet(el, url, line) {
Array.prototype.slice.call(el.querySelectorAll('pre[data-src]')).forEach((pre) => {
const src = url || pre.getAttribute('data-src').replace(/\\/g, '/');
const language = 'php';
const code = document.createElement('code');
code.className = 'language-' + language;
pre.textContent = '';
pre.setAttribute('data-line', line)
code.textContent = 'Loading…';
pre.appendChild(code);
var xhr = new XMLHttpRequest();
xhr.open('GET', src, true);
xhr.onreadystatechange = function () {
if (xhr.readyState !== 4) {
return;
}
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
Prism.highlightElement(code);
return;
}
if (xhr.status === 404) {
code.textContent = '✖ Error: File could not be found';
return;
}
if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
return;
}
code.textContent = '✖ Error: An unknown error occurred';
};
xhr.send(null);
});
}
const modalButtons = document.querySelectorAll("[data-modal]");
const openedAsLocalFile = window.location.protocol === 'file:';
if (modalButtons.length > 0 && openedAsLocalFile) {
console.warn(
'Viewing the source code is unavailable because you are opening this page from the file:// scheme; ' +
'browsers block XHR requests when a page is opened this way'
);
}
modalButtons.forEach(function (trigger) {
if (openedAsLocalFile) {
trigger.setAttribute("hidden", "hidden");
}
trigger.addEventListener("click", function (event) {
event.preventDefault();
const modal = document.getElementById(trigger.dataset.modal);
if (!modal) {
console.error(`Modal with id "${trigger.dataset.modal}" could not be found`);
return;
}
modal.classList.add("phpdocumentor-modal__open");
loadExternalCodeSnippet(modal, trigger.dataset.src || null, trigger.dataset.line)
const exits = modal.querySelectorAll("[data-exit-button]");
exits.forEach(function (exit) {
exit.addEventListener("click", function (event) {
event.preventDefault();
modal.classList.remove("phpdocumentor-modal__open");
});
});
});
});
})();
</script>
</article>
</section>
<section class="phpdocumentor-on-this-page__sidebar">
<section class="phpdocumentor-on-this-page__content">
<strong class="phpdocumentor-on-this-page__title">On this page</strong>
<ul class="phpdocumentor-list -clean">
<li class="phpdocumentor-on-this-page-section__title">Table Of Contents</li>
<li>
<ul class="phpdocumentor-list -clean">
<li><a href="files/src-datastructures-strictarray.html#toc-classes">Classes</a></li>
</ul>
</li>
</ul>
</section>
</section>
</div>
<section data-search-results class="phpdocumentor-search-results phpdocumentor-search-results--hidden">
<section class="phpdocumentor-search-results__dialog">
<header class="phpdocumentor-search-results__header">
<h2 class="phpdocumentor-search-results__title">Search results</h2>
<button class="phpdocumentor-search-results__close"><i class="fas fa-times"></i></button>
</header>
<section class="phpdocumentor-search-results__body">
<ul class="phpdocumentor-search-results__entries"></ul>
</section>
</section>
</section>
</div>
<a href="files/src-datastructures-strictarray.html#top" class="phpdocumentor-back-to-top"><i class="fas fa-chevron-circle-up"></i></a>
</main>
<script>
cssVars({});
</script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/prism.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/autoloader/prism-autoloader.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-numbers/prism-line-numbers.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/line-highlight/prism-line-highlight.min.js"></script>
</body>
</html>

View File

@ -0,0 +1,52 @@
<?php
/**
* PHP Basics
*
* Copyright (C) 2024 Sebastian Meyer <sebastian.meyer@opencultureconsulting.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
declare(strict_types=1);
namespace OCC\Basics\DataStructures;
use Iterator;
use OCC\Basics\Interfaces\IteratorTrait;
/**
* A type-sensitive, traversable array.
*
* Holds items as key/value pairs where keys have to be valid array keys while
* values can be of any type. To restrict allowed data types for items, provide
* the constructor with an array of atomic types or fully qualified class
* names.
*
* Internally it holds the items in the protected `$_data` array.
*
* @author Sebastian Meyer <sebastian.meyer@opencultureconsulting.com>
* @package Basics\DataStructures
*
* @api
*
* @template AllowedType of mixed
* @extends StrictCollection<AllowedType>
* @implements Iterator<AllowedType>
*/
class StrictArray extends StrictCollection implements Iterator
{
/** @use IteratorTrait<AllowedType> */
use IteratorTrait;
}

View File

@ -28,6 +28,7 @@ use OCC\Basics\DataStructures\Exceptions\InvalidDataTypeException;
use OCC\Basics\DataStructures\StrictCollection;
use OCC\Basics\Traits\TypeChecker;
use OutOfRangeException;
use SplDoublyLinkedList;
use function get_debug_type;
use function iterator_to_array;
@ -46,6 +47,7 @@ use function unserialize;
* @package Basics\DataStructures
*
* @template AllowedType of mixed
* @phpstan-require-extends SplDoublyLinkedList
*/
trait StrictSplDatastructureTrait
{

View File

@ -211,6 +211,9 @@ function _magicSet{PascalCasePropertyName}(mixed $value): void</code></pre></li>
<li>Added new datastructure <a href="classes/OCC-Basics-DataStructures-StrictCollection.html"><abbr title="\OCC\Basics\DataStructures\StrictCollection">StrictCollection</abbr></a>
</li>
<li>Added new datastructure <a href="classes/OCC-Basics-DataStructures-StrictArray.html"><abbr title="\OCC\Basics\DataStructures\StrictArray">StrictArray</abbr></a>
</li>
<li>Added new error handler <a href="classes/OCC-Basics-ErrorHandlers-TriggerExceptionError.html"><abbr title="\OCC\Basics\ErrorHandlers\TriggerExceptionError">TriggerExceptionError</abbr></a>
</li>

View File

@ -173,11 +173,12 @@
<div class="admonition-wrapper">
<div class="admonition admonition-sidebar"><p class="sidebar-title">Table of Contents</p>
<div class="contents"><ul class="phpdocumentor-list"><li class="toc-item"><a href="guides/overview/datastructures.html#strictcollection">StrictCollection</a></li><li class="toc-item"><a href="guides/overview/datastructures.html#strictlist">StrictList</a></li><li class="toc-item"><a href="guides/overview/datastructures.html#strictqueue">StrictQueue</a></li><li class="toc-item"><a href="guides/overview/datastructures.html#strictstack">StrictStack</a></li></ul></div>
<div class="contents"><ul class="phpdocumentor-list"><li class="toc-item"><a href="guides/overview/datastructures.html#strictcollection">StrictCollection</a></li><li class="toc-item"><a href="guides/overview/datastructures.html#strictarray">StrictArray</a></li><li class="toc-item"><a href="guides/overview/datastructures.html#strictlist">StrictList</a></li><li class="toc-item"><a href="guides/overview/datastructures.html#strictqueue">StrictQueue</a></li><li class="toc-item"><a href="guides/overview/datastructures.html#strictstack">StrictStack</a></li></ul></div>
</div>
</div>
<p>All datastructures in this package have in common that you can control the types of items they can hold.</p>
<p>The datastructures in this package are derived from their respective <a href="https://www.php.net/spl.datastructures">Standard PHP Library (SPL) counterparts</a> which they extend by the option to control the data types of items those
datastructures can hold.</p>
<p>To restrict allowed data types for items, provide the constructor with an array of atomic types or fully qualified
class names you want to allow as item types. Available atomic types are <code>array</code>, <code>bool</code>, <code>callable</code>, <code>countable</code>,
<code>float</code> / <code>double</code>, <code>int</code> / <code>integer</code> / <code>long</code>, <code>iterable</code>, <code>null</code>, <code>numeric</code>, <code>object</code>, <code>resource</code>, <code>scalar</code> and
@ -185,6 +186,9 @@ class names you want to allow as item types. Available atomic types are <code>ar
<p>Trying to add an item with a data type not on the list of allowed types to a strict datastructure will result in an
<a href="classes/OCC-Basics-DataStructures-Exceptions-InvalidDataTypeException.html"><abbr title="\OCC\Basics\DataStructures\Exceptions\InvalidDataTypeException">InvalidDataTypeException</abbr></a>
.</p>
<p>All strict datastructures inherit the implementation of the <a href="https://www.php.net/arrayaccess">\ArrayAccess</a>,
<a href="https://www.php.net/countable">\Countable</a> and <a href="https://www.php.net/serializable">\Serializable</a> interfaces. All
but <code>StrictCollection</code> also implement the <a href="https://www.php.net/traversable">\Traversable</a> interface.</p>
<blockquote><p>Examples:</p><pre><code class="language-php">// create a collection of strings
$stringCollection = new StrictCollection([&#039;string&#039;]);
@ -196,15 +200,51 @@ $middlewareQueue = new StrictQueue([&#039;Psr\Http\Server\MiddlewareInterface&#0
<div class="admonition-wrapper">
<div class="admonition admonition-sidebar"><p class="sidebar-title">API Documentation</p>
<p><a href="classes/OCC-Basics-DataStructures-StrictCollection.html"><abbr title="\OCC\Basics\DataStructures\StrictCollection">StrictCollection</abbr></a></p>
<ul>
<li><a href="classes/OCC-Basics-DataStructures-StrictCollection.html"><abbr title="\OCC\Basics\DataStructures\StrictCollection">StrictCollection</abbr></a>
</li>
</ul>
</div>
</div>
<p><em>A type-sensitive, unsorted collection of items.</em></p>
<p>Holds items as key/value pairs where keys identify the items and have to be valid array keys while values can be of any
controlled type.</p>
<p>A <code>StrictCollection</code> can be accessed like an array, but not traversed because it has no particular order. Technically
speaking, <code>StrictCollection</code> implements <a href="https://www.php.net/arrayaccess">\ArrayAccess</a>, <a href="https://www.php.net/countable">\Countable</a> and <a href="https://www.php.net/serializable">\Serializable</a>, but no <a href="https://www.php.net/traversable">\Traversable</a> interface.</p>
controlled type. The collection can be accessed like an array, but not traversed because it has no particular order.</p>
<div class="phpdocumentor-admonition note">
<svg class="phpdocumentor-admonition__icon" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 8h10M7 12h4m1 8l-4-4H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-3l-4 4z"></path></svg>
<article>
<p>Internally it holds the items in the <code>$_data</code> array, the same as most <a href="namespaces/occ-basics-interfaces.html"><abbr title="\OCC\Basics\Interfaces">Interfaces</abbr></a>
and
<a href="namespaces/occ-basics-traits.html"><abbr title="\OCC\Basics\Traits">Traits</abbr></a>
of this package.</p>
</article>
</div>
</div>
<div class="section" id="strictarray">
<h2>StrictArray</h2>
<div class="admonition-wrapper">
<div class="admonition admonition-sidebar"><p class="sidebar-title">API Documentation</p>
<ul>
<li><a href="classes/OCC-Basics-DataStructures-StrictArray.html"><abbr title="\OCC\Basics\DataStructures\StrictArray">StrictArray</abbr></a>
</li>
</ul>
</div>
</div>
<p><em>A type-sensitive, traversable array of items.</em></p>
<p>Holds items as key/value pairs where keys identify the items and have to be valid array keys while values can be of any
controlled type. The array can be accessed and traversed just like any other array.</p>
<div class="phpdocumentor-admonition note">
<svg class="phpdocumentor-admonition__icon" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 8h10M7 12h4m1 8l-4-4H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-3l-4 4z"></path></svg>
<article>
@ -222,13 +262,20 @@ speaking, <code>StrictCollection</code> implements <a href="https://www.php.net/
<div class="admonition-wrapper">
<div class="admonition admonition-sidebar"><p class="sidebar-title">API Documentation</p>
<p><a href="classes/OCC-Basics-DataStructures-StrictList.html"><abbr title="\OCC\Basics\DataStructures\StrictList">StrictList</abbr></a></p>
<ul>
<li><a href="classes/OCC-Basics-DataStructures-StrictList.html"><abbr title="\OCC\Basics\DataStructures\StrictList">StrictList</abbr></a>
</li>
</ul>
</div>
</div>
<p><em>A type-sensitive, taversable list of items.</em></p>
<p>Extends <a href="https://www.php.net/spldoublylinkedlist">\SplDoublyLinkedList</a> with an option to restrict the allowed data
types for list items.</p>
types for list items. The list can be accessed and traversed like an array, but has only consecutive numerical keys.</p>
</div>
<div class="section" id="strictqueue">
@ -236,13 +283,23 @@ types for list items.</p>
<div class="admonition-wrapper">
<div class="admonition admonition-sidebar"><p class="sidebar-title">API Documentation</p>
<p><a href="classes/OCC-Basics-DataStructures-StrictQueue.html"><abbr title="\OCC\Basics\DataStructures\StrictQueue">StrictQueue</abbr></a></p>
<ul>
<li><a href="classes/OCC-Basics-DataStructures-StrictQueue.html"><abbr title="\OCC\Basics\DataStructures\StrictQueue">StrictQueue</abbr></a>
</li>
</ul>
</div>
</div>
<p><em>A type-sensitive, taversable queue (FIFO) of items.</em></p>
<p>Extends <a href="https://www.php.net/spldoublylinkedlist">\SplDoublyLinkedList</a> with an option to restrict the allowed data
types for list items.</p>
<p>Extends <a href="https://www.php.net/splqueue">\SplQueue</a> with an option to restrict the allowed data types for queue items.
The queue can be accessed and traversed like an array, but has only consecutive numerical keys. Traversal follows the
first-in, first-out (FIFO) principle meaning that items are returned in the same order they were added to the queue.</p>
<p>It is recommended to use the <code>StrictQueue::enqueue()</code> and <code>StrictQueue::dequeue()</code> alias methods when working with a
queue, because those will ensure proper FIFO behavior and remove items while traversing.</p>
</div>
<div class="section" id="strictstack">
@ -250,13 +307,23 @@ types for list items.</p>
<div class="admonition-wrapper">
<div class="admonition admonition-sidebar"><p class="sidebar-title">API Documentation</p>
<p><a href="classes/OCC-Basics-DataStructures-StrictStack.html"><abbr title="\OCC\Basics\DataStructures\StrictStack">StrictStack</abbr></a></p>
<ul>
<li><a href="classes/OCC-Basics-DataStructures-StrictStack.html"><abbr title="\OCC\Basics\DataStructures\StrictStack">StrictStack</abbr></a>
</li>
</ul>
</div>
</div>
<p><em>A type-sensitive, taversable stack (LIFO) of items.</em></p>
<p>Extends <a href="https://www.php.net/spldoublylinkedlist">\SplDoublyLinkedList</a> with an option to restrict the allowed data
types for list items.</p>
<p>Extends <a href="https://www.php.net/splstack">\SplStack</a> with an option to restrict the allowed data types for stack items.
The stack can be accessed and traversed like an array, but has only consecutive numerical keys. Traversal follows the
last-in, first-out (LIFO) principle meaning that items are returned in the reversed order they were added to the stack.</p>
<p>It is recommended to use the <code>StrictStack::stack()</code> and <code>StrictStack::unstack()</code> alias methods when working with a
stack, because those will ensure proper LIFO behavior and remove items while traversing.</p>
</div>
</div>

View File

@ -185,6 +185,8 @@ other projects.</p>
<li class="toc-item"><a href="guides/overview/datastructures.html#typed-datastructures">Typed Datastructures</a> <ul class="section-level-1">
<li class="toc-item"><a href="guides/overview/datastructures.html#strictcollection">StrictCollection</a></li>
<li class="toc-item"><a href="guides/overview/datastructures.html#strictarray">StrictArray</a></li>
<li class="toc-item"><a href="guides/overview/datastructures.html#strictlist">StrictList</a></li>
<li class="toc-item"><a href="guides/overview/datastructures.html#strictqueue">StrictQueue</a></li>

View File

@ -197,6 +197,7 @@
<ul class="phpdocumentor-list">
<li><a href="files/src-traits-setter.html"><abbr title="src/Traits/Setter.php">Setter.php</abbr></a></li>
<li><a href="files/src-traits-singleton.html"><abbr title="src/Traits/Singleton.php">Singleton.php</abbr></a></li>
<li><a href="files/src-datastructures-strictarray.html"><abbr title="src/DataStructures/StrictArray.php">StrictArray.php</abbr></a></li>
<li><a href="files/src-datastructures-strictcollection.html"><abbr title="src/DataStructures/StrictCollection.php">StrictCollection.php</abbr></a></li>
<li><a href="files/src-datastructures-strictlist.html"><abbr title="src/DataStructures/StrictList.php">StrictList.php</abbr></a></li>
<li><a href="files/src-datastructures-strictqueue.html"><abbr title="src/DataStructures/StrictQueue.php">StrictQueue.php</abbr></a></li>

View File

@ -5,6 +5,11 @@ Search.appendIndex(
"name": "InvalidDataTypeException",
"summary": "Common\u0020exception\u0020for\u0020type\u002Dsensitive\u0020datastructures.",
"url": "classes/OCC-Basics-DataStructures-Exceptions-InvalidDataTypeException.html"
}, {
"fqsen": "\\OCC\\Basics\\DataStructures\\StrictArray",
"name": "StrictArray",
"summary": "A\u0020type\u002Dsensitive,\u0020traversable\u0020array.",
"url": "classes/OCC-Basics-DataStructures-StrictArray.html"
}, {
"fqsen": "\\OCC\\Basics\\DataStructures\\StrictCollection",
"name": "StrictCollection",

View File

@ -201,7 +201,7 @@
</h4>
<dl class="phpdocumentor-table-of-contents">
<dt class="phpdocumentor-table-of-contents__entry -class"><a href="classes/OCC-Basics-DataStructures-StrictCollection.html"><abbr title="\OCC\Basics\DataStructures\StrictCollection">StrictCollection</abbr></a></dt><dd>A type-sensitive, unsorted collection.</dd> <dt class="phpdocumentor-table-of-contents__entry -class"><a href="classes/OCC-Basics-DataStructures-StrictList.html"><abbr title="\OCC\Basics\DataStructures\StrictList">StrictList</abbr></a></dt><dd>A type-sensitive, taversable list.</dd> <dt class="phpdocumentor-table-of-contents__entry -class"><a href="classes/OCC-Basics-DataStructures-StrictQueue.html"><abbr title="\OCC\Basics\DataStructures\StrictQueue">StrictQueue</abbr></a></dt><dd>A type-sensitive, taversable queue (FIFO).</dd> <dt class="phpdocumentor-table-of-contents__entry -class"><a href="classes/OCC-Basics-DataStructures-StrictStack.html"><abbr title="\OCC\Basics\DataStructures\StrictStack">StrictStack</abbr></a></dt><dd>A type-sensitive, taversable stack (LIFO).</dd> </dl>
<dt class="phpdocumentor-table-of-contents__entry -class"><a href="classes/OCC-Basics-DataStructures-StrictArray.html"><abbr title="\OCC\Basics\DataStructures\StrictArray">StrictArray</abbr></a></dt><dd>A type-sensitive, traversable array.</dd> <dt class="phpdocumentor-table-of-contents__entry -class"><a href="classes/OCC-Basics-DataStructures-StrictCollection.html"><abbr title="\OCC\Basics\DataStructures\StrictCollection">StrictCollection</abbr></a></dt><dd>A type-sensitive, unsorted collection.</dd> <dt class="phpdocumentor-table-of-contents__entry -class"><a href="classes/OCC-Basics-DataStructures-StrictList.html"><abbr title="\OCC\Basics\DataStructures\StrictList">StrictList</abbr></a></dt><dd>A type-sensitive, taversable list.</dd> <dt class="phpdocumentor-table-of-contents__entry -class"><a href="classes/OCC-Basics-DataStructures-StrictQueue.html"><abbr title="\OCC\Basics\DataStructures\StrictQueue">StrictQueue</abbr></a></dt><dd>A type-sensitive, taversable queue (FIFO).</dd> <dt class="phpdocumentor-table-of-contents__entry -class"><a href="classes/OCC-Basics-DataStructures-StrictStack.html"><abbr title="\OCC\Basics\DataStructures\StrictStack">StrictStack</abbr></a></dt><dd>A type-sensitive, taversable stack (LIFO).</dd> </dl>

View File

@ -191,7 +191,7 @@
</h4>
<dl class="phpdocumentor-table-of-contents">
<dt class="phpdocumentor-table-of-contents__entry -class"><a href="classes/OCC-Basics-DataStructures-Exceptions-InvalidDataTypeException.html"><abbr title="\OCC\Basics\DataStructures\Exceptions\InvalidDataTypeException">InvalidDataTypeException</abbr></a></dt><dd>Common exception for type-sensitive datastructures.</dd> <dt class="phpdocumentor-table-of-contents__entry -class"><a href="classes/OCC-Basics-DataStructures-StrictCollection.html"><abbr title="\OCC\Basics\DataStructures\StrictCollection">StrictCollection</abbr></a></dt><dd>A type-sensitive, unsorted collection.</dd> <dt class="phpdocumentor-table-of-contents__entry -class"><a href="classes/OCC-Basics-DataStructures-StrictList.html"><abbr title="\OCC\Basics\DataStructures\StrictList">StrictList</abbr></a></dt><dd>A type-sensitive, taversable list.</dd> <dt class="phpdocumentor-table-of-contents__entry -class"><a href="classes/OCC-Basics-DataStructures-StrictQueue.html"><abbr title="\OCC\Basics\DataStructures\StrictQueue">StrictQueue</abbr></a></dt><dd>A type-sensitive, taversable queue (FIFO).</dd> <dt class="phpdocumentor-table-of-contents__entry -class"><a href="classes/OCC-Basics-DataStructures-StrictStack.html"><abbr title="\OCC\Basics\DataStructures\StrictStack">StrictStack</abbr></a></dt><dd>A type-sensitive, taversable stack (LIFO).</dd> </dl>
<dt class="phpdocumentor-table-of-contents__entry -class"><a href="classes/OCC-Basics-DataStructures-Exceptions-InvalidDataTypeException.html"><abbr title="\OCC\Basics\DataStructures\Exceptions\InvalidDataTypeException">InvalidDataTypeException</abbr></a></dt><dd>Common exception for type-sensitive datastructures.</dd> <dt class="phpdocumentor-table-of-contents__entry -class"><a href="classes/OCC-Basics-DataStructures-StrictArray.html"><abbr title="\OCC\Basics\DataStructures\StrictArray">StrictArray</abbr></a></dt><dd>A type-sensitive, traversable array.</dd> <dt class="phpdocumentor-table-of-contents__entry -class"><a href="classes/OCC-Basics-DataStructures-StrictCollection.html"><abbr title="\OCC\Basics\DataStructures\StrictCollection">StrictCollection</abbr></a></dt><dd>A type-sensitive, unsorted collection.</dd> <dt class="phpdocumentor-table-of-contents__entry -class"><a href="classes/OCC-Basics-DataStructures-StrictList.html"><abbr title="\OCC\Basics\DataStructures\StrictList">StrictList</abbr></a></dt><dd>A type-sensitive, taversable list.</dd> <dt class="phpdocumentor-table-of-contents__entry -class"><a href="classes/OCC-Basics-DataStructures-StrictQueue.html"><abbr title="\OCC\Basics\DataStructures\StrictQueue">StrictQueue</abbr></a></dt><dd>A type-sensitive, taversable queue (FIFO).</dd> <dt class="phpdocumentor-table-of-contents__entry -class"><a href="classes/OCC-Basics-DataStructures-StrictStack.html"><abbr title="\OCC\Basics\DataStructures\StrictStack">StrictStack</abbr></a></dt><dd>A type-sensitive, taversable stack (LIFO).</dd> </dl>
<h4 id="toc-traits">
Traits

View File

@ -0,0 +1,52 @@
<?php
/**
* PHP Basics
*
* Copyright (C) 2024 Sebastian Meyer <sebastian.meyer@opencultureconsulting.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
declare(strict_types=1);
namespace OCC\Basics\DataStructures;
use Iterator;
use OCC\Basics\Interfaces\IteratorTrait;
/**
* A type-sensitive, traversable array.
*
* Holds items as key/value pairs where keys have to be valid array keys while
* values can be of any type. To restrict allowed data types for items, provide
* the constructor with an array of atomic types or fully qualified class
* names.
*
* Internally it holds the items in the protected `$_data` array.
*
* @author Sebastian Meyer <sebastian.meyer@opencultureconsulting.com>
* @package Basics\DataStructures
*
* @api
*
* @template AllowedType of mixed
* @extends StrictCollection<AllowedType>
* @implements Iterator<AllowedType>
*/
class StrictArray extends StrictCollection implements Iterator
{
/** @use IteratorTrait<AllowedType> */
use IteratorTrait;
}

View File

@ -28,6 +28,7 @@ use OCC\Basics\DataStructures\Exceptions\InvalidDataTypeException;
use OCC\Basics\DataStructures\StrictCollection;
use OCC\Basics\Traits\TypeChecker;
use OutOfRangeException;
use SplDoublyLinkedList;
use function get_debug_type;
use function iterator_to_array;
@ -46,6 +47,7 @@ use function unserialize;
* @package Basics\DataStructures
*
* @template AllowedType of mixed
* @phpstan-require-extends SplDoublyLinkedList
*/
trait StrictSplDatastructureTrait
{