2024-02-15 11:13:57 +01:00
<!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 >
2024-03-26 20:10:30 +01:00
< 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 >
2024-02-15 11:13:57 +01:00
< 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 >
2024-02-19 14:52:57 +01:00
< section class = "phpdocumentor-sidebar__category -indices" >
< h2 class = "phpdocumentor-sidebar__category-header" > Indices< / h2 >
2024-02-15 11:13:57 +01:00
< h3 class = "phpdocumentor-sidebar__root-package" > < a href = "indices/files.html" > Files< / a > < / h3 >
< / section >
< / aside >
< div class = "phpdocumentor-column -nine phpdocumentor-content" >
< div class = "section" id = "changelog" >
2024-07-11 13:08:56 +02:00
< h1 > Changelog< / h1 >
2024-02-15 11:13:57 +01:00
2024-03-26 20:10:30 +01:00
< div class = "admonition-wrapper" >
< div class = "admonition admonition-sidebar" > < p class = "sidebar-title" > Table of Contents< / p >
2024-07-11 13:08:56 +02:00
< div class = "contents" >
< ul class = "phpdocumentor-list" >
< li class = "toc-item" >
2024-07-11 13:14:31 +02:00
< a href = "guides/changelog.html#v2-1-1" > v2.1.1< / a >
< / li >
< li class = "toc-item" >
2024-07-11 13:08:56 +02:00
< a href = "guides/changelog.html#v2-1-0" > v2.1.0< / a >
< / li >
< li class = "toc-item" >
< a href = "guides/changelog.html#v2-0-0" > v2.0.0< / a >
< / li >
< li class = "toc-item" >
< a href = "guides/changelog.html#v1-1-0" > v1.1.0< / a >
< / li >
< li class = "toc-item" >
< a href = "guides/changelog.html#v1-0-1" > v1.0.1< / a >
< / li >
< li class = "toc-item" >
< a href = "guides/changelog.html#v1-0-0" > v1.0.0< / a >
< / li >
< / ul >
< / div >
2024-03-26 20:10:30 +01:00
< / div >
< / div >
2024-07-11 13:14:31 +02:00
< div class = "section" id = "v2-1-1" >
< h2 > v2.1.1< / h2 >
< p > < strong > New Features:< / strong >
< / p >
< ul >
< li > Added Composer commands for development tools (PHP_CodeSniffer, PHP-CS-Fixer, PHPStan, Psalm and phpDocumentor)< / li >
< / ul >
< p > < strong > Minor Changes:< / strong >
< / p >
< ul >
< li > Extended < a href = "https://opencultureconsulting.github.io/php-basics/" > documentation< / a > < / li >
< / ul >
< / div >
2024-04-03 22:32:46 +02:00
< div class = "section" id = "v2-1-0" >
2024-07-11 13:08:56 +02:00
< h2 > v2.1.0< / h2 >
< p > < strong > Breaking Changes:< / strong >
< / p >
2024-04-03 22:32:46 +02:00
< ul >
< li > < a href = "namespaces/occ-basics-datastructures-traits.html" > < abbr title = "\OCC\Basics\DataStructures\Traits" > Traits< / abbr > < / a >
for datastructures renamed to
< a href = "classes/OCC-Basics-DataStructures-Traits-StrictSplDoublyLinkedListTrait.html" > < abbr title = "\OCC\Basics\DataStructures\Traits\StrictSplDoublyLinkedListTrait" > StrictSplDoublyLinkedListTrait< / abbr > < / a >
< / li >
< / ul >
2024-07-11 13:08:56 +02:00
< p > < strong > New Features:< / strong >
< / p >
2024-04-03 22:32:46 +02:00
< ul >
< li > Extended API for < a href = "classes/OCC-Basics-DataStructures-StrictArray.html" > < abbr title = "\OCC\Basics\DataStructures\StrictArray" > StrictArray< / abbr > < / a >
< / li >
< / ul >
< / div >
2024-02-15 11:13:57 +01:00
< div class = "section" id = "v2-0-0" >
2024-07-11 13:08:56 +02:00
< h2 > v2.0.0< / h2 >
< p > < strong > Breaking Changes:< / strong >
< / p >
2024-02-15 11:13:57 +01:00
< ul >
2024-02-19 14:52:57 +01:00
< li > Raised minimum PHP version from 8.0 to 8.1 in order to use < a href = "https://www.php.net/releases/8.1/" > new features< / a > like
< a href = "https://www.php.net/array_is_list" > array_is_list()< / a > and the spread operator on string-keyed arrays< / li >
2024-02-15 11:13:57 +01:00
2024-07-11 13:08:56 +02:00
< li >
< p > < a href = "namespaces/occ-basics-interfaces.html" > < abbr title = "\OCC\Basics\Interfaces" > Interfaces< / abbr > < / a >
traits renamed and moved to different namespace< / p >
< pre > < code class = "language-" > OCC\Basics\InterfaceTraits\ArrayAccess -> OCC\Basics\Interfaces\ArrayAccessTrait
2024-02-19 14:52:57 +01:00
OCC\Basics\InterfaceTraits\Countable -> OCC\Basics\Interfaces\CountableTrait
OCC\Basics\InterfaceTraits\IteratorAggregate -> OCC\Basics\Interfaces\IteratorAggregateTrait
2024-07-11 13:08:56 +02:00
OCC\Basics\InterfaceTraits\Iterator -> OCC\Basics\Interfaces\IteratorTrait< / code > < / pre >
< / li >
2024-02-15 11:13:57 +01:00
2024-07-11 13:08:56 +02:00
< li >
< p > Prefixed internal methods for < a href = "classes/OCC-Basics-Traits-Getter.html" > < abbr title = "\OCC\Basics\Traits\Getter" > Getter< / abbr > < / a >
2024-02-15 11:13:57 +01:00
and < a href = "classes/OCC-Basics-Traits-Setter.html" > < abbr title = "\OCC\Basics\Traits\Setter" > Setter< / abbr > < / a >
2024-03-31 17:41:04 +02:00
with
2024-07-11 13:08:56 +02:00
< code > _< / code >
to avoid confusion with regular class methods< / p >
< pre > < code class = "language-php" > // old methods
2024-03-31 17:41:04 +02:00
function magicGet{Property}(): mixed
2024-07-11 13:08:56 +02:00
function magicSet{Property}(mixed $value): void< / code > < / pre >
< pre > < code class = "language-php" > // new methods
2024-03-31 17:41:04 +02:00
function _magicGet{Property}(): mixed
2024-07-11 13:08:56 +02:00
function _magicSet{Property}(mixed $value): void< / code > < / pre >
< / li >
2024-02-15 11:13:57 +01:00
< / ul >
2024-07-11 13:08:56 +02:00
< p > < strong > New Features:< / strong >
< / p >
2024-02-15 11:13:57 +01:00
< ul >
< li > Added new datastructure < a href = "classes/OCC-Basics-DataStructures-StrictCollection.html" > < abbr title = "\OCC\Basics\DataStructures\StrictCollection" > StrictCollection< / abbr > < / a >
< / li >
2024-03-27 12:19:43 +01:00
< li > Added new datastructure < a href = "classes/OCC-Basics-DataStructures-StrictArray.html" > < abbr title = "\OCC\Basics\DataStructures\StrictArray" > StrictArray< / abbr > < / a >
< / li >
2024-02-15 11:13:57 +01:00
< li > Added new error handler < a href = "classes/OCC-Basics-ErrorHandlers-TriggerExceptionError.html" > < abbr title = "\OCC\Basics\ErrorHandlers\TriggerExceptionError" > TriggerExceptionError< / abbr > < / a >
< / li >
< li > Added new trait < a href = "classes/OCC-Basics-Traits-OverloadingGetter.html" > < abbr title = "\OCC\Basics\Traits\OverloadingGetter" > OverloadingGetter< / abbr > < / a >
< / li >
< li > Added new trait < a href = "classes/OCC-Basics-Traits-OverloadingSetter.html" > < abbr title = "\OCC\Basics\Traits\OverloadingSetter" > OverloadingSetter< / abbr > < / a >
< / li >
2024-03-26 20:10:30 +01:00
< li > Added new trait < a href = "classes/OCC-Basics-Traits-TypeChecker.html" > < abbr title = "\OCC\Basics\Traits\TypeChecker" > TypeChecker< / abbr > < / a >
< / li >
2024-07-11 13:08:56 +02:00
< li > Extended API for all datastructures (see < a href = "classes/OCC-Basics-DataStructures-Traits-StrictSplDoublyLinkedListTrait.html" > < abbr title = "\OCC\Basics\DataStructures\Traits\StrictSplDoublyLinkedListTrait" > StrictSplDoublyLinkedListTrait< / abbr > < / a >
2024-03-26 20:10:30 +01:00
)< / li >
< li > Introduced < a href = "classes/OCC-Basics-DataStructures-Exceptions-InvalidDataTypeException.html" > < abbr title = "\OCC\Basics\DataStructures\Exceptions\InvalidDataTypeException" > InvalidDataTypeException< / abbr > < / a >
for strict datastructures< / li >
2024-02-15 11:13:57 +01:00
2024-07-11 13:14:31 +02:00
< / ul >
< p > < strong > Minor Changes:< / strong >
< / p >
< ul >
2024-02-19 14:52:57 +01:00
< li > Extended < a href = "https://opencultureconsulting.github.io/php-basics/" > documentation< / a > < / li >
2024-02-15 11:13:57 +01:00
< / ul >
< / div >
< div class = "section" id = "v1-1-0" >
2024-07-11 13:08:56 +02:00
< h2 > v1.1.0< / h2 >
< p > < strong > Breaking Changes:< / strong >
< / p >
2024-02-15 11:13:57 +01:00
< ul >
2024-07-11 13:08:56 +02:00
< li >
< p > Changed the constructor' s signature for all < a href = "namespaces/occ-basics-datastructures.html" > < abbr title = "\OCC\Basics\DataStructures" > DataStructures< / abbr > < / a >
2024-02-15 11:13:57 +01:00
to improve compatibility with
2024-07-11 13:08:56 +02:00
the corresponding < a href = "https://www.php.net/spl.datastructures" > SPL datastructures< / a > < / p >
< pre > < code class = "language-php" > // old constructor signature
public function __construct(iterable $items = [], array $allowedTypes = [])< / code > < / pre >
< pre > < code class = "language-php" > // new constructor signature
public function __construct(array $allowedTypes = [])< / code > < / pre >
< / li >
2024-02-15 11:13:57 +01:00
< / ul >
< / div >
< div class = "section" id = "v1-0-1" >
2024-07-11 13:08:56 +02:00
< h2 > v1.0.1< / h2 >
2024-07-11 13:14:31 +02:00
< p > < strong > Minor Changes:< / strong >
2024-07-11 13:08:56 +02:00
< / p >
2024-02-15 11:13:57 +01:00
< ul >
< li > Improved exception handling in < a href = "classes/OCC-Basics-Traits-Singleton.html" > < abbr title = "\OCC\Basics\Traits\Singleton" > Singleton< / abbr > < / a >
trait< / li >
< / ul >
< / div >
< div class = "section" id = "v1-0-0" >
2024-07-11 13:08:56 +02:00
< h2 > v1.0.0< / h2 >
< p > < strong > Initial Release< / strong >
< / p >
2024-02-15 11:13:57 +01:00
< / div >
< / div >
< / 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 >
2024-07-11 13:08:56 +02:00
< a href = "#top" class = "phpdocumentor-back-to-top" > < i class = "fas fa-chevron-circle-up" > < / i > < / a >
2024-02-15 11:13:57 +01:00
< / 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 >