From 0fbefa43bcaeb5c554b0c881622afb11df504b9d Mon Sep 17 00:00:00 2001 From: Andre Date: Tue, 7 Nov 2023 23:27:57 +0100 Subject: [PATCH] fix grammatical, add documentation --- CHANGELOG.md | 7 + README.md | 2 +- ...s633-Processenv-FileNotFoundException.html | 315 ++++ .../Nexus633-Processenv-Processenv.html | 1261 +++++++++++++++++ ...Nexus633-Processenv-ProcessenvOptions.html | 1143 +++++++++++++++ docs/css/base.css | 1231 ++++++++++++++++ docs/css/normalize.css | 427 ++++++ docs/css/template.css | 271 ++++ docs/files/src-filenotfoundexception.html | 292 ++++ docs/files/src-processenv.html | 292 ++++ docs/files/src-processenvoptions.html | 292 ++++ docs/graphs/classes.html | 137 ++ docs/index.html | 174 +++ docs/indices/files.html | 151 ++ docs/js/search.js | 173 +++ docs/js/searchIndex.js | 204 +++ docs/js/template.js | 17 + docs/namespaces/default.html | 285 ++++ docs/namespaces/nexus633-processenv.html | 286 ++++ docs/namespaces/nexus633.html | 285 ++++ docs/packages/Application.html | 285 ++++ docs/packages/default.html | 285 ++++ docs/reports/deprecated.html | 153 ++ docs/reports/errors.html | 152 ++ docs/reports/markers.html | 153 ++ src/Processenv.php | 10 +- 26 files changed, 8277 insertions(+), 6 deletions(-) create mode 100644 docs/classes/Nexus633-Processenv-FileNotFoundException.html create mode 100644 docs/classes/Nexus633-Processenv-Processenv.html create mode 100644 docs/classes/Nexus633-Processenv-ProcessenvOptions.html create mode 100644 docs/css/base.css create mode 100644 docs/css/normalize.css create mode 100644 docs/css/template.css create mode 100644 docs/files/src-filenotfoundexception.html create mode 100644 docs/files/src-processenv.html create mode 100644 docs/files/src-processenvoptions.html create mode 100644 docs/graphs/classes.html create mode 100644 docs/index.html create mode 100644 docs/indices/files.html create mode 100644 docs/js/search.js create mode 100644 docs/js/searchIndex.js create mode 100644 docs/js/template.js create mode 100644 docs/namespaces/default.html create mode 100644 docs/namespaces/nexus633-processenv.html create mode 100644 docs/namespaces/nexus633.html create mode 100644 docs/packages/Application.html create mode 100644 docs/packages/default.html create mode 100644 docs/reports/deprecated.html create mode 100644 docs/reports/errors.html create mode 100644 docs/reports/markers.html diff --git a/CHANGELOG.md b/CHANGELOG.md index 07526cd..c89e220 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# version 1.0.1 + +## 11/07/2023 + +- fix grammatical +- add documentation + # version 1.0.0 ## 11/05/2023 diff --git a/README.md b/README.md index c4ae334..bc83a51 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ This makes it easier to check for errors and use standard configurations. You also have the option to define nested variables, arrays and objects in the environment file \ You can use inline comments and masked hashtags (\\#) -## Version 1.0.0 +## Version 1.0.1 checkout the [Changelog](CHANGELOG.md) diff --git a/docs/classes/Nexus633-Processenv-FileNotFoundException.html b/docs/classes/Nexus633-Processenv-FileNotFoundException.html new file mode 100644 index 0000000..fabf4c8 --- /dev/null +++ b/docs/classes/Nexus633-Processenv-FileNotFoundException.html @@ -0,0 +1,315 @@ + + + + + Documentation + + + + + + + + + + + + + + + + + + + + + +
+

Documentation

+ + + + + +
+ +
+
+ + + + +
+
+ + +
+

+ FileNotFoundException + + + extends Exception + + +
+ in package + +
+ + +

+ +
+ + +
+ + + + + + + + + +

+ Table of Contents + + +

+ + + + + + + + + + + + + + + + + + + +
+
+
+
+

+        
+ +
+
+ + + +
+
+
+ +
+ On this page + +
    +
  • Table Of Contents
  • +
  • +
      +
    +
  • + + +
+
+ +
+
+
+
+
+

Search results

+ +
+
+
    +
    +
    +
    +
    + + +
    + + + + + + + + diff --git a/docs/classes/Nexus633-Processenv-Processenv.html b/docs/classes/Nexus633-Processenv-Processenv.html new file mode 100644 index 0000000..b789984 --- /dev/null +++ b/docs/classes/Nexus633-Processenv-Processenv.html @@ -0,0 +1,1261 @@ + + + + + Documentation + + + + + + + + + + + + + + + + + + + + + +
    +

    Documentation

    + + + + + +
    + +
    +
    + + + + +
    +
    + + +
    +

    + Processenv + + +
    + in package + +
    + + +

    + +
    + + +
    + + + + + + + + + +

    + Table of Contents + + +

    + + + + + + + + + +

    + Properties + + +

    +
    +
    + $env + +  : array<string|int, mixed> +
    +
    store the `.env`, `$_ENV` array
    + +
    + $options + +  : ProcessenvOptions +
    +
    store options value
    + +
    + +

    + Methods + + +

    +
    +
    + __construct() + +  : mixed +
    +
    Option to add .env to global $_ENV and/or $_SERVER
    + +
    + __get() + +  : stdClass|string|array<string|int, mixed> +
    +
    magic method to parse as object
    + +
    + load() + +  : void +
    +
    load and parse environment File +configure the parser and initialize processenv()
    + +
    + processenv() + +  : stdClass|string|array<string|int, mixed> +
    +
    get environment key
    + +
    + get() + +  : stdClass|string|array<string|int, mixed> +
    +
    get ´.env´ and ´$_ENV´ value if exists +else get empty string
    + +
    + getAll() + +  : array<string|int, mixed> +
    +
    get all ´.env´ and ´$_ENV´ values
    + +
    + configure() + +  : void +
    +
    Configure options
    + +
    + filterEmptyLinesAndCommentLines() + +  : array<string|int, mixed> +
    +
    filter line breaks from Array
    + +
    + filterInlineComments() + +  : string +
    +
    filter inline comments after escaped hashtag
    + +
    + getEnvironmentFileContent() + +  : array<string|int, mixed> +
    +
    get .env file content
    + +
    + parseEnvironmentFile() + +  : void +
    +
    parse .env file
    + +
    + parseNestedStrings() + +  : string +
    +
    Parse nested string in `.env`
    + +
    + parseObject() + +  : stdClass|string|array<string|int, mixed> +
    +
    parse values to Object or Array
    + +
    + removeQuotationMarks() + +  : string +
    +
    remove quotation marks
    + +
    + setKeyValue() + +  : array<string|int, mixed> +
    +
    Parse `.env` file and set the key => value pairs
    + +
    + + + + + + + +
    +

    + Properties + + +

    +
    +

    + $env + + + + +

    + + +

    store the `.env`, `$_ENV` array

    + + + private + array<string|int, mixed> + $env + = [] + + + + + +
    + +
    + +
    +

    + Methods + + +

    +
    +

    + __construct() + + +

    + + +

    Option to add .env to global $_ENV and/or $_SERVER

    + + + public + __construct([ProcessenvOptions|null $options = null ]) : mixed + +
    +
    +

    default + +$env = new Processenv( +new ProcessenvOptions( +localFirst: true, +exceptions: true, +globalEnv: false, +globalServer: false, +globalKey: false, +objectParser: self::PARSE_AS_STDCLASS, +replacePattern: '[:PROCESSENV_REPLACE:]' +) +); +

    +

    If the $globalKey option is set to true,
    +a key is created in the globals $_SERVERS and $_ENV
    +where the .env file is then initialized.

    +
    + +
    Parameters
    +
    +
    + $options + : ProcessenvOptions|null + = null
    +
    + +
    +
    + + + + +
    +
    +

    + __get() + + +

    + + +

    magic method to parse as object

    + + + public + __get(string $value) : stdClass|string|array<string|int, mixed> + +
    +
    + +
    Parameters
    +
    +
    + $value + : string +
    +
    + +
    +
    + + + +
    +
    Return values
    + stdClass|string|array<string|int, mixed> +
    + +
    +
    +

    + load() + + +

    + + +

    load and parse environment File +configure the parser and initialize processenv()

    + + + public + load() : void + +
    +
    + + + +
    + Tags + + +
    +
    +
    + throws +
    +
    + FileNotFoundException + + +
    +
    + + +
    +
    +

    + processenv() + + +

    + + +

    get environment key

    + + + public + processenv([string $value = '' ][, mixed $default = '' ]) : stdClass|string|array<string|int, mixed> + +
    +
    + +
    Parameters
    +
    +
    + $value + : string + = ''
    +
    + +
    +
    + $default + : mixed + = ''
    +
    + +
    +
    + + + +
    +
    Return values
    + stdClass|string|array<string|int, mixed> +
    + +
    +
    +

    + get() + + +

    + + +

    get ´.env´ and ´$_ENV´ value if exists +else get empty string

    + + + protected + get(string $value) : stdClass|string|array<string|int, mixed> + +
    +
    + +
    Parameters
    +
    +
    + $value + : string +
    +
    + +
    +
    + + + +
    +
    Return values
    + stdClass|string|array<string|int, mixed> +
    + +
    +
    +

    + getAll() + + +

    + + +

    get all ´.env´ and ´$_ENV´ values

    + + + protected + getAll() : array<string|int, mixed> + +
    +
    + + + + +
    +
    Return values
    + array<string|int, mixed> +
    + +
    +
    +

    + configure() + + +

    + + +

    Configure options

    + + + private + configure() : void + +
    +
    + + + + + +
    +
    +

    + filterEmptyLinesAndCommentLines() + + +

    + + +

    filter line breaks from Array

    + + + private + filterEmptyLinesAndCommentLines(array<string|int, mixed> $content) : array<string|int, mixed> + +
    +
    + +
    Parameters
    +
    +
    + $content + : array<string|int, mixed> +
    +
    + +
    +
    + + + +
    +
    Return values
    + array<string|int, mixed> +
    + +
    +
    +

    + filterInlineComments() + + +

    + + +

    filter inline comments after escaped hashtag

    + + + private + filterInlineComments(string $value) : string + +
    +
    + +
    Parameters
    +
    +
    + $value + : string +
    +
    + +
    +
    + + + +
    +
    Return values
    + string +
    + +
    +
    +

    + getEnvironmentFileContent() + + +

    + + +

    get .env file content

    + + + private + getEnvironmentFileContent() : array<string|int, mixed> + +
    +
    + + + +
    + Tags + + +
    +
    +
    + throws +
    +
    + FileNotFoundException + + +
    +
    + +
    +
    Return values
    + array<string|int, mixed> +
    + +
    +
    +

    + parseEnvironmentFile() + + +

    + + +

    parse .env file

    + + + private + parseEnvironmentFile() : void + +
    +
    + + + +
    + Tags + + +
    +
    +
    + throws +
    +
    + FileNotFoundException + + +
    +
    + + +
    +
    +

    + parseNestedStrings() + + +

    + + +

    Parse nested string in `.env`

    + + + private + parseNestedStrings(string $value, array<string|int, mixed> $tmp_array) : string + +
    +
    + +
    Parameters
    +
    +
    + $value + : string +
    +
    + +
    +
    + $tmp_array + : array<string|int, mixed> +
    +
    + +
    +
    + + + +
    +
    Return values
    + string +
    + +
    +
    +

    + parseObject() + + +

    + + +

    parse values to Object or Array

    + + + private + parseObject(string $value) : stdClass|string|array<string|int, mixed> + +
    +
    + +
    Parameters
    +
    +
    + $value + : string +
    +
    + +
    +
    + + + +
    +
    Return values
    + stdClass|string|array<string|int, mixed> +
    + +
    +
    +

    + removeQuotationMarks() + + +

    + + +

    remove quotation marks

    + + + private + removeQuotationMarks(mixed $value) : string + +
    +
    + +
    Parameters
    +
    +
    + $value + : mixed +
    +
    + +
    +
    + + + +
    +
    Return values
    + string +
    + +
    +
    +

    + setKeyValue() + + +

    + + +

    Parse `.env` file and set the key => value pairs

    + + + private + setKeyValue(array<string|int, mixed> $content) : array<string|int, mixed> + +
    +
    + +
    Parameters
    +
    +
    + $content + : array<string|int, mixed> +
    +
    + +
    +
    + + + +
    +
    Return values
    + array<string|int, mixed> +
    + +
    +
    + +
    +
    +
    +
    +
    
    +        
    + +
    +
    + + + +
    +
    +
    + +
    + On this page + + +
    + +
    +
    +
    +
    +
    +

    Search results

    + +
    +
    +
      +
      +
      +
      +
      + + +
      + + + + + + + + diff --git a/docs/classes/Nexus633-Processenv-ProcessenvOptions.html b/docs/classes/Nexus633-Processenv-ProcessenvOptions.html new file mode 100644 index 0000000..7664ad4 --- /dev/null +++ b/docs/classes/Nexus633-Processenv-ProcessenvOptions.html @@ -0,0 +1,1143 @@ + + + + + Documentation + + + + + + + + + + + + + + + + + + + + + +
      +

      Documentation

      + + + + + +
      + +
      +
      + + + + +
      +
      + + +
      +

      + ProcessenvOptions + + +
      + in package + +
      + + +

      + +
      + + +
      + + + + + + + + + +

      + Table of Contents + + +

      + + + + + + + +

      + Constants + + +

      +
      +
      + PARSE_AS_ARRAY + +  = 1 +
      +
      if this option is set, objects in the .env file will be converted into an array.
      + +
      + PARSE_AS_STDCLASS + +  = 0 +
      +
      if this option is set, objects in the .env file will be converted to a StdClass.
      + +
      + + +

      + Properties + + +

      +
      +
      + $exceptions + +  : bool +
      + +
      + $globalEnv + +  : bool +
      + +
      + $globalKey + +  : bool +
      + +
      + $globalServer + +  : bool +
      + +
      + $localFirst + +  : bool +
      + +
      + $objectParser + +  : string +
      + +
      + $replacePattern + +  : string +
      + +
      + +

      + Methods + + +

      +
      +
      + __construct() + +  : mixed +
      +
      Option for Processenv class +There are also Pars options to configure the parser for Object +and masked hashtags (\\#)
      + +
      + getObjectParser() + +  : bool +
      +
      get objectParser option
      + +
      + getReplacePattern() + +  : string +
      +
      get replacePattern option
      + +
      + isExceptions() + +  : bool +
      +
      get exceptions option
      + +
      + isGlobalEnv() + +  : bool +
      +
      get glovalEnv option
      + +
      + isGlobalKey() + +  : bool +
      +
      get globalKey
      + +
      + isGlobalServer() + +  : bool +
      +
      get globalServer option
      + +
      + isLocalFirst() + +  : bool +
      +
      get local first option
      + +
      + + + + + +
      +

      + Constants + + +

      +
      +

      + PARSE_AS_ARRAY + + +

      + + + +

      if this option is set, objects in the .env file will be converted into an array.

      + + + public + mixed + PARSE_AS_ARRAY + = 1 + + + + + + + +
      +
      +

      + PARSE_AS_STDCLASS + + +

      + + + +

      if this option is set, objects in the .env file will be converted to a StdClass.

      + + + public + mixed + PARSE_AS_STDCLASS + = 0 + + + + + + + +
      +
      + + +
      +

      + Properties + + +

      +
      +

      + $exceptions + + + + +

      + + + + + private + bool + $exceptions + = true + + + + + +
      +
      +

      + $globalEnv + + + + +

      + + + + + private + bool + $globalEnv + = false + + + + + +
      +
      +

      + $globalKey + + + + +

      + + + + + private + bool + $globalKey + = false + + + + + +
      +
      +

      + $globalServer + + + + +

      + + + + + private + bool + $globalServer + = false + + + + + +
      +
      +

      + $localFirst + + + + +

      + + + + + private + bool + $localFirst + = true + + + + + +
      +
      +

      + $objectParser + + + + +

      + + + + + private + string + $objectParser + = self::PARSE_AS_STDCLASS + + + + + +
      +
      +

      + $replacePattern + + + + +

      + + + + + private + string + $replacePattern + = '[:PROCESSENV_REPLACE:]' + + + + + +
      +
      + +
      +

      + Methods + + +

      +
      +

      + __construct() + + +

      + + +

      Option for Processenv class +There are also Pars options to configure the parser for Object +and masked hashtags (\\#)

      + + + public + __construct([bool $localFirst = true ][, bool $exceptions = true ][, bool $globalEnv = false ][, bool $globalServer = false ][, bool $globalKey = false ][, string $objectParser = self::PARSE_AS_STDCLASS ][, string $replacePattern = '[:PROCESSENV_REPLACE:]' ]) : mixed + +
      +
      +

      default + +new ProcessenvOptions( +localFirst: true, +exceptions: true, +globalEnv: false, +globalServer: false, +globalKey: false, +objectParser: self::PARSE_AS_STDCLASS, +replacePattern: '[:PROCESSENV_REPLACE:]' +); +

      +
      + +
      Parameters
      +
      +
      + $localFirst + : bool + = true
      +
      + +
      +
      + $exceptions + : bool + = true
      +
      + +
      +
      + $globalEnv + : bool + = false
      +
      + +
      +
      + $globalServer + : bool + = false
      +
      + +
      +
      + $globalKey + : bool + = false
      +
      + +
      +
      + $objectParser + : string + = self::PARSE_AS_STDCLASS
      +
      + +
      +
      + $replacePattern + : string + = '[:PROCESSENV_REPLACE:]'
      +
      + +
      +
      + + + + +
      +
      +

      + getObjectParser() + + +

      + + +

      get objectParser option

      + + + public + getObjectParser() : bool + +
      +
      + + + + +
      +
      Return values
      + bool +
      + +
      +
      +

      + getReplacePattern() + + +

      + + +

      get replacePattern option

      + + + public + getReplacePattern() : string + +
      +
      + + + + +
      +
      Return values
      + string +
      + +
      +
      +

      + isExceptions() + + +

      + + +

      get exceptions option

      + + + public + isExceptions() : bool + +
      +
      + + + + +
      +
      Return values
      + bool +
      + +
      +
      +

      + isGlobalEnv() + + +

      + + +

      get glovalEnv option

      + + + public + isGlobalEnv() : bool + +
      +
      + + + + +
      +
      Return values
      + bool +
      + +
      +
      +

      + isGlobalKey() + + +

      + + +

      get globalKey

      + + + public + isGlobalKey() : bool + +
      +
      + + + + +
      +
      Return values
      + bool +
      + +
      +
      +

      + isGlobalServer() + + +

      + + +

      get globalServer option

      + + + public + isGlobalServer() : bool + +
      +
      + + + + +
      +
      Return values
      + bool +
      + +
      +
      +

      + isLocalFirst() + + +

      + + +

      get local first option

      + + + public + isLocalFirst() : bool + +
      +
      + + + + +
      +
      Return values
      + bool +
      + +
      +
      + +
      +
      +
      +
      +
      
      +        
      + +
      +
      + + + +
      +
      +
      + +
      + On this page + + +
      + +
      +
      +
      +
      +
      +

      Search results

      + +
      +
      +
        +
        +
        +
        +
        + + +
        + + + + + + + + diff --git a/docs/css/base.css b/docs/css/base.css new file mode 100644 index 0000000..3482dfb --- /dev/null +++ b/docs/css/base.css @@ -0,0 +1,1231 @@ + + +:root { + /* Typography */ + --font-primary: 'Open Sans', Helvetica, Arial, sans-serif; + --font-secondary: 'Open Sans', Helvetica, Arial, sans-serif; + --font-monospace: 'Source Code Pro', monospace; + --line-height--primary: 1.6; + --letter-spacing--primary: .05rem; + --text-base-size: 1em; + --text-scale-ratio: 1.2; + + --text-xxs: calc(var(--text-base-size) / var(--text-scale-ratio) / var(--text-scale-ratio) / var(--text-scale-ratio)); + --text-xs: calc(var(--text-base-size) / var(--text-scale-ratio) / var(--text-scale-ratio)); + --text-sm: calc(var(--text-base-size) / var(--text-scale-ratio)); + --text-md: var(--text-base-size); + --text-lg: calc(var(--text-base-size) * var(--text-scale-ratio)); + --text-xl: calc(var(--text-base-size) * var(--text-scale-ratio) * var(--text-scale-ratio)); + --text-xxl: calc(var(--text-base-size) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio)); + --text-xxxl: calc(var(--text-base-size) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio)); + --text-xxxxl: calc(var(--text-base-size) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio)); + --text-xxxxxl: calc(var(--text-base-size) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio) * var(--text-scale-ratio)); + + --color-hue-red: 4; + --color-hue-pink: 340; + --color-hue-purple: 291; + --color-hue-deep-purple: 262; + --color-hue-indigo: 231; + --color-hue-blue: 207; + --color-hue-light-blue: 199; + --color-hue-cyan: 187; + --color-hue-teal: 174; + --color-hue-green: 122; + --color-hue-phpdocumentor-green: 96; + --color-hue-light-green: 88; + --color-hue-lime: 66; + --color-hue-yellow: 54; + --color-hue-amber: 45; + --color-hue-orange: 36; + --color-hue-deep-orange: 14; + --color-hue-brown: 16; + + /* Colors */ + --primary-color-hue: var(--color-hue-phpdocumentor-green, --color-hue-phpdocumentor-green); + --primary-color-saturation: 57%; + --primary-color: hsl(var(--primary-color-hue), var(--primary-color-saturation), 60%); + --primary-color-darken: hsl(var(--primary-color-hue), var(--primary-color-saturation), 40%); + --primary-color-darker: hsl(var(--primary-color-hue), var(--primary-color-saturation), 25%); + --primary-color-darkest: hsl(var(--primary-color-hue), var(--primary-color-saturation), 10%); + --primary-color-lighten: hsl(var(--primary-color-hue), calc(var(--primary-color-saturation) - 20%), 85%); + --primary-color-lighter: hsl(var(--primary-color-hue), calc(var(--primary-color-saturation) - 45%), 97.5%); + --dark-gray: #d1d1d1; + --light-gray: #f0f0f0; + + --text-color: var(--primary-color-darkest); + + --header-height: var(--spacing-xxxxl); + --header-bg-color: var(--primary-color); + --code-background-color: var(--primary-color-lighter); + --code-border-color: --primary-color-lighten; + --button-border-color: var(--primary-color-darken); + --button-color: transparent; + --button-color-primary: var(--primary-color); + --button-text-color: #555; + --button-text-color-primary: white; + --popover-background-color: rgba(255, 255, 255, 0.75); + --link-color-primary: var(--primary-color-darker); + --link-hover-color-primary: var(--primary-color-darkest); + --form-field-border-color: var(--dark-gray); + --form-field-color: #fff; + --admonition-success-color: var(--primary-color); + --admonition-border-color: silver; + --table-separator-color: var(--primary-color-lighten); + --title-text-color: var(--primary-color); + + --sidebar-border-color: var(--primary-color-lighten); + + /* Grid */ + --container-width: 1400px; + + /* Spacing */ + --spacing-base-size: 1rem; + --spacing-scale-ratio: 1.5; + + --spacing-xxxs: calc(var(--spacing-base-size) / var(--spacing-scale-ratio) / var(--spacing-scale-ratio) / var(--spacing-scale-ratio) / var(--spacing-scale-ratio)); + --spacing-xxs: calc(var(--spacing-base-size) / var(--spacing-scale-ratio) / var(--spacing-scale-ratio) / var(--spacing-scale-ratio)); + --spacing-xs: calc(var(--spacing-base-size) / var(--spacing-scale-ratio) / var(--spacing-scale-ratio)); + --spacing-sm: calc(var(--spacing-base-size) / var(--spacing-scale-ratio)); + --spacing-md: var(--spacing-base-size); + --spacing-lg: calc(var(--spacing-base-size) * var(--spacing-scale-ratio)); + --spacing-xl: calc(var(--spacing-base-size) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio)); + --spacing-xxl: calc(var(--spacing-base-size) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio)); + --spacing-xxxl: calc(var(--spacing-base-size) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio)); + --spacing-xxxxl: calc(var(--spacing-base-size) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio) * var(--spacing-scale-ratio)); + + --border-radius-base-size: 3px; +} + +/* Base Styles +-------------------------------------------------- */ +body { + color: var(--text-color); + font-family: var(--font-primary); + font-size: var(--text-md); + letter-spacing: var(--letter-spacing--primary); + line-height: var(--line-height--primary); + width: 100%; +} + +.phpdocumentor h1, +.phpdocumentor h2, +.phpdocumentor h3, +.phpdocumentor h4, +.phpdocumentor h5, +.phpdocumentor h6 { + margin-bottom: var(--spacing-lg); + margin-top: var(--spacing-lg); + font-weight: 600; +} + +.phpdocumentor h1 { + font-size: var(--text-xxxxl); + letter-spacing: var(--letter-spacing--primary); + line-height: 1.2; + margin-top: 0; +} + +.phpdocumentor h2 { + font-size: var(--text-xxxl); + letter-spacing: var(--letter-spacing--primary); + line-height: 1.25; +} + +.phpdocumentor h3 { + font-size: var(--text-xxl); + letter-spacing: var(--letter-spacing--primary); + line-height: 1.3; +} + +.phpdocumentor h4 { + font-size: var(--text-xl); + letter-spacing: calc(var(--letter-spacing--primary) / 2); + line-height: 1.35; + margin-bottom: var(--spacing-md); +} + +.phpdocumentor h5 { + font-size: var(--text-lg); + letter-spacing: calc(var(--letter-spacing--primary) / 4); + line-height: 1.5; + margin-bottom: var(--spacing-md); + margin-top: var(--spacing-md); +} + +.phpdocumentor h6 { + font-size: var(--text-md); + letter-spacing: 0; + line-height: var(--line-height--primary); + margin-bottom: var(--spacing-md); + margin-top: var(--spacing-md); +} +.phpdocumentor h1 .headerlink, +.phpdocumentor h2 .headerlink, +.phpdocumentor h3 .headerlink, +.phpdocumentor h4 .headerlink, +.phpdocumentor h5 .headerlink, +.phpdocumentor h6 .headerlink +{ + display: none; +} + +@media (min-width: 550px) { + .phpdocumentor h1 .headerlink, + .phpdocumentor h2 .headerlink, + .phpdocumentor h3 .headerlink, + .phpdocumentor h4 .headerlink, + .phpdocumentor h5 .headerlink, + .phpdocumentor h6 .headerlink { + display: inline; + transition: all .3s ease-in-out; + opacity: 0; + text-decoration: none; + color: silver; + font-size: 80%; + } + + .phpdocumentor h1:hover .headerlink, + .phpdocumentor h2:hover .headerlink, + .phpdocumentor h3:hover .headerlink, + .phpdocumentor h4:hover .headerlink, + .phpdocumentor h5:hover .headerlink, + .phpdocumentor h6:hover .headerlink { + opacity: 1; + } +} +.phpdocumentor p { + margin-top: 0; + margin-bottom: var(--spacing-md); +} +.phpdocumentor figure { + margin-bottom: var(--spacing-md); +} + +.phpdocumentor figcaption { + text-align: center; + font-style: italic; + font-size: 80%; +} + +.phpdocumentor-uml-diagram svg { + max-width: 100%; + height: auto !important; +} +.phpdocumentor-line { + border-top: 1px solid #E1E1E1; + border-width: 0; + margin-bottom: var(--spacing-xxl); + margin-top: var(--spacing-xxl); +} +.phpdocumentor-section { + box-sizing: border-box; + margin: 0 auto; + max-width: var(--container-width); + padding: 0 var(--spacing-sm); + position: relative; + width: 100%; +} + +@media (min-width: 550px) { + .phpdocumentor-section { + padding: 0 var(--spacing-lg); + } +} + +@media (min-width: 1200px) { + .phpdocumentor-section { + padding: 0; + width: 95%; + } +} +.phpdocumentor-column { + box-sizing: border-box; + float: left; + width: 100%; +} + +@media (min-width: 550px) { + .phpdocumentor-column { + margin-left: 4%; + } + + .phpdocumentor-column:first-child { + margin-left: 0; + } + + .-one.phpdocumentor-column { + width: 4.66666666667%; + } + + .-two.phpdocumentor-column { + width: 13.3333333333%; + } + + .-three.phpdocumentor-column { + width: 22%; + } + + .-four.phpdocumentor-column { + width: 30.6666666667%; + } + + .-five.phpdocumentor-column { + width: 39.3333333333%; + } + + .-six.phpdocumentor-column { + width: 48%; + } + + .-seven.phpdocumentor-column { + width: 56.6666666667%; + } + + .-eight.phpdocumentor-column { + width: 65.3333333333%; + } + + .-nine.phpdocumentor-column { + width: 74.0%; + } + + .-ten.phpdocumentor-column { + width: 82.6666666667%; + } + + .-eleven.phpdocumentor-column { + width: 91.3333333333%; + } + + .-twelve.phpdocumentor-column { + margin-left: 0; + width: 100%; + } + + .-one-third.phpdocumentor-column { + width: 30.6666666667%; + } + + .-two-thirds.phpdocumentor-column { + width: 65.3333333333%; + } + + .-one-half.phpdocumentor-column { + width: 48%; + } + + /* Offsets */ + .-offset-by-one.phpdocumentor-column { + margin-left: 8.66666666667%; + } + + .-offset-by-two.phpdocumentor-column { + margin-left: 17.3333333333%; + } + + .-offset-by-three.phpdocumentor-column { + margin-left: 26%; + } + + .-offset-by-four.phpdocumentor-column { + margin-left: 34.6666666667%; + } + + .-offset-by-five.phpdocumentor-column { + margin-left: 43.3333333333%; + } + + .-offset-by-six.phpdocumentor-column { + margin-left: 52%; + } + + .-offset-by-seven.phpdocumentor-column { + margin-left: 60.6666666667%; + } + + .-offset-by-eight.phpdocumentor-column { + margin-left: 69.3333333333%; + } + + .-offset-by-nine.phpdocumentor-column { + margin-left: 78.0%; + } + + .-offset-by-ten.phpdocumentor-column { + margin-left: 86.6666666667%; + } + + .-offset-by-eleven.phpdocumentor-column { + margin-left: 95.3333333333%; + } + + .-offset-by-one-third.phpdocumentor-column { + margin-left: 34.6666666667%; + } + + .-offset-by-two-thirds.phpdocumentor-column { + margin-left: 69.3333333333%; + } + + .-offset-by-one-half.phpdocumentor-column { + margin-left: 52%; + } +} +.phpdocumentor a { + color: var(--link-color-primary); +} + +.phpdocumentor a:hover { + color: var(--link-hover-color-primary); +} +.phpdocumentor-button { + background-color: var(--button-color); + border: 1px solid var(--button-border-color); + border-radius: var(--border-radius-base-size); + box-sizing: border-box; + color: var(--button-text-color); + cursor: pointer; + display: inline-block; + font-size: var(--text-sm); + font-weight: 600; + height: 38px; + letter-spacing: .1rem; + line-height: 38px; + padding: 0 var(--spacing-xxl); + text-align: center; + text-decoration: none; + text-transform: uppercase; + white-space: nowrap; + margin-bottom: var(--spacing-md); +} + +.phpdocumentor-button .-wide { + width: 100%; +} + +.phpdocumentor-button:hover, +.phpdocumentor-button:focus { + border-color: #888; + color: #333; + outline: 0; +} + +.phpdocumentor-button.-primary { + background-color: var(--button-color-primary); + border-color: var(--button-color-primary); + color: var(--button-text-color-primary); +} + +.phpdocumentor-button.-primary:hover, +.phpdocumentor-button.-primary:focus { + background-color: var(--link-color-primary); + border-color: var(--link-color-primary); + color: var(--button-text-color-primary); +} +.phpdocumentor form { + margin-bottom: var(--spacing-md); +} + +.phpdocumentor-field { + background-color: var(--form-field-color); + border: 1px solid var(--form-field-border-color); + border-radius: var(--border-radius-base-size); + box-shadow: none; + box-sizing: border-box; + height: 38px; + padding: var(--spacing-xxxs) var(--spacing-xxs); /* The 6px vertically centers text on FF, ignored by Webkit */ + margin-bottom: var(--spacing-md); +} + +/* Removes awkward default styles on some inputs for iOS */ +input[type="email"], +input[type="number"], +input[type="search"], +input[type="text"], +input[type="tel"], +input[type="url"], +input[type="password"], +textarea { + -moz-appearance: none; + -webkit-appearance: none; + appearance: none; +} + +.phpdocumentor-textarea { + min-height: 65px; + padding-bottom: var(--spacing-xxxs); + padding-top: var(--spacing-xxxs); +} + +.phpdocumentor-field:focus { + border: 1px solid var(--button-color-primary); + outline: 0; +} + +label.phpdocumentor-label { + display: block; + margin-bottom: var(--spacing-xs); +} + +.phpdocumentor-fieldset { + border-width: 0; + padding: 0; +} + +input[type="checkbox"].phpdocumentor-field, +input[type="radio"].phpdocumentor-field { + display: inline; +} +.phpdocumentor-column ul, +div.phpdocumentor-list > ul, +ul.phpdocumentor-list { + list-style: circle; +} + +.phpdocumentor-column ol, +div.phpdocumentor-list > ol, +ol.phpdocumentor-list { + list-style: decimal; +} + + +.phpdocumentor-column ul, +div.phpdocumentor-list > ul, +ol.phpdocumentor-list, +ul.phpdocumentor-list { + margin-top: 0; + padding-left: var(--spacing-md); + margin-bottom: var(--spacing-sm); +} + +.phpdocumentor-column ul.-clean, +div.phpdocumentor-list > ul.-clean, +ul.phpdocumentor-list.-clean { + list-style: none; + padding-left: 0; +} + +dl { + margin-bottom: var(--spacing-md); +} + +.phpdocumentor-column ul ul, +div.phpdocumentor-list > ul ul, +ul.phpdocumentor-list ul.phpdocumentor-list, +ul.phpdocumentor-list ol.phpdocumentor-list, +ol.phpdocumentor-list ol.phpdocumentor-list, +ol.phpdocumentor-list ul.phpdocumentor-list { + font-size: var(--text-sm); + margin: 0 0 0 calc(var(--spacing-xs) * 2); +} + +.phpdocumentor-column ul li, +.phpdocumentor-list li { + padding-bottom: var(--spacing-xs); +} + +.phpdocumentor dl dt { + margin-bottom: var(--spacing-xs); +} + +.phpdocumentor dl dd { + margin-bottom: var(--spacing-md); +} +.phpdocumentor pre { + margin-bottom: var(--spacing-md); +} + +.phpdocumentor-code { + font-family: var(--font-monospace); + background: var(--code-background-color); + border: 1px solid var(--code-border-color); + border-radius: var(--border-radius-base-size); + font-size: var(--text-sm); + padding: var(--spacing-sm) var(--spacing-md); + width: 100%; + box-sizing: border-box; +} + +.phpdocumentor-code.-dark { + background: var(--primary-color-darkest); + color: var(--light-gray); + box-shadow: 0 2px 3px var(--dark-gray); +} + +pre > .phpdocumentor-code { + display: block; + white-space: pre; +} +.phpdocumentor blockquote { + border-left: 4px solid var(--primary-color-darken); + margin: var(--spacing-md) 0; + padding: var(--spacing-xs) var(--spacing-sm); + color: var(--primary-color-darker); + font-style: italic; +} + +.phpdocumentor blockquote p:last-of-type { + margin-bottom: 0; +} +.phpdocumentor table { + margin-bottom: var(--spacing-md); +} + +th.phpdocumentor-heading, +td.phpdocumentor-cell { + border-bottom: 1px solid var(--table-separator-color); + padding: var(--spacing-sm) var(--spacing-md); + text-align: left; +} + +th.phpdocumentor-heading:first-child, +td.phpdocumentor-cell:first-child { + padding-left: 0; +} + +th.phpdocumentor-heading:last-child, +td.phpdocumentor-cell:last-child { + padding-right: 0; +} +.phpdocumentor-label-line { + display: flex; + flex-direction: row; + gap: 1rem +} + +.phpdocumentor-label { + background: #f6f6f6; + border-radius: .25rem; + font-size: 80%; + display: inline-block; + overflow: hidden +} + +/* +It would be better if the phpdocumentor-element class were to become a flex element with a gap, but for #3337 that +is too big a fix and needs to be done in a new design iteration. +*/ +.phpdocumentor-signature + .phpdocumentor-label-line .phpdocumentor-label { + margin-top: var(--spacing-sm); +} + +.phpdocumentor-label span { + display: inline-block; + padding: .125rem .5rem; +} + +.phpdocumentor-label--success span:last-of-type { + background: #abe1ab; +} + +.phpdocumentor-header { + display: flex; + flex-direction: row; + align-items: stretch; + flex-wrap: wrap; + justify-content: space-between; + height: auto; + padding: var(--spacing-md) var(--spacing-md); +} + +.phpdocumentor-header__menu-button { + position: absolute; + top: -100%; + left: -100%; +} + +.phpdocumentor-header__menu-icon { + font-size: 2rem; + color: var(--primary-color); +} + +.phpdocumentor-header__menu-button:checked ~ .phpdocumentor-topnav { + max-height: 250px; + padding-top: var(--spacing-md); +} + +@media (min-width: 1000px) { + .phpdocumentor-header { + flex-direction: row; + padding: var(--spacing-lg) var(--spacing-lg); + min-height: var(--header-height); + } + + .phpdocumentor-header__menu-icon { + display: none; + } +} + +@media (min-width: 1000px) { + .phpdocumentor-header { + padding-top: 0; + padding-bottom: 0; + } +} +@media (min-width: 1200px) { + .phpdocumentor-header { + padding: 0; + } +} +.phpdocumentor-title { + box-sizing: border-box; + color: var(--title-text-color); + font-size: var(--text-xxl); + letter-spacing: .05rem; + font-weight: normal; + width: auto; + margin: 0; + display: flex; + align-items: center; +} + +.phpdocumentor-title.-without-divider { + border: none; +} + +.phpdocumentor-title__link { + transition: all .3s ease-out; + display: flex; + color: var(--title-text-color); + text-decoration: none; + font-weight: normal; + white-space: nowrap; + transform: scale(.75); + transform-origin: left; +} + +.phpdocumentor-title__link:hover { + transform: perspective(15rem) translateX(.5rem); + font-weight: 600; +} + +@media (min-width: 1000px) { + .phpdocumentor-title { + width: 22%; + border-right: var(--sidebar-border-color) solid 1px; + } + + .phpdocumentor-title__link { + transform-origin: left; + } +} + +@media (min-width: 1000px) { + .phpdocumentor-title__link { + transform: scale(.85); + } +} + +@media (min-width: 1200px) { + .phpdocumentor-title__link { + transform: scale(1); + } +} +.phpdocumentor-topnav { + display: flex; + align-items: center; + margin: 0; + max-height: 0; + overflow: hidden; + transition: max-height 0.2s ease-out; + flex-basis: 100%; +} + +.phpdocumentor-topnav__menu { + text-align: right; + list-style: none; + margin: 0; + padding: 0; + flex: 1; + display: flex; + flex-flow: row wrap; + justify-content: center; +} + +.phpdocumentor-topnav__menu-item { + margin: 0; + width: 100%; + display: inline-block; + text-align: center; + padding: var(--spacing-sm) 0 +} + +.phpdocumentor-topnav__menu-item.-social { + width: auto; + padding: var(--spacing-sm) +} + +.phpdocumentor-topnav__menu-item a { + display: inline-block; + color: var(--text-color); + text-decoration: none; + font-size: var(--text-lg); + transition: all .3s ease-out; + border-bottom: 1px dotted transparent; + line-height: 1; +} + +.phpdocumentor-topnav__menu-item a:hover { + transform: perspective(15rem) translateY(.1rem); + border-bottom: 1px dotted var(--text-color); +} + +@media (min-width: 1000px) { + .phpdocumentor-topnav { + max-height: none; + overflow: visible; + flex-basis: auto; + } + + .phpdocumentor-topnav__menu { + display: flex; + flex-flow: row wrap; + justify-content: flex-end; + } + + .phpdocumentor-topnav__menu-item, + .phpdocumentor-topnav__menu-item.-social { + width: auto; + display: inline; + text-align: right; + padding: 0 0 0 var(--spacing-md) + } +} +.phpdocumentor-sidebar { + margin: 0; + overflow: hidden; + max-height: 0; +} + +.phpdocumentor .phpdocumentor-sidebar .phpdocumentor-list { + padding: var(--spacing-xs) var(--spacing-md); + list-style: none; + margin: 0; +} + +.phpdocumentor .phpdocumentor-sidebar li { + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + padding: 0 0 var(--spacing-xxxs) var(--spacing-md); +} + +.phpdocumentor .phpdocumentor-sidebar abbr, +.phpdocumentor .phpdocumentor-sidebar a { + text-decoration: none; + border-bottom: none; + color: var(--text-color); + font-size: var(--text-md); + padding-left: 0; + transition: padding-left .4s ease-out; +} + +.phpdocumentor .phpdocumentor-sidebar a:hover, +.phpdocumentor .phpdocumentor-sidebar a.-active { + padding-left: 5px; + font-weight: 600; +} + +.phpdocumentor .phpdocumentor-sidebar__category > * { + border-left: 1px solid var(--primary-color-lighten); +} + +.phpdocumentor .phpdocumentor-sidebar__category { + margin-bottom: var(--spacing-lg); +} + +.phpdocumentor .phpdocumentor-sidebar__category-header { + font-size: var(--text-md); + margin-top: 0; + margin-bottom: var(--spacing-xs); + color: var(--link-color-primary); + font-weight: 600; + border-left: 0; +} + +.phpdocumentor .phpdocumentor-sidebar__root-package, +.phpdocumentor .phpdocumentor-sidebar__root-namespace { + font-size: var(--text-md); + margin: 0; + padding-top: var(--spacing-xs); + padding-left: var(--spacing-md); + color: var(--text-color); + font-weight: normal; +} + +@media (min-width: 550px) { + .phpdocumentor-sidebar { + border-right: var(--sidebar-border-color) solid 1px; + } +} + +.phpdocumentor-sidebar__menu-button { + position: absolute; + top: -100%; + left: -100%; +} + +.phpdocumentor-sidebar__menu-icon { + font-size: var(--text-md); + font-weight: 600; + background: var(--primary-color); + color: white; + margin: 0 0 var(--spacing-lg); + display: block; + padding: var(--spacing-sm); + text-align: center; + border-radius: 3px; + text-transform: uppercase; + letter-spacing: .15rem; +} + +.phpdocumentor-sidebar__menu-button:checked ~ .phpdocumentor-sidebar { + max-height: 100%; + padding-top: var(--spacing-md); +} + +@media (min-width: 550px) { + .phpdocumentor-sidebar { + overflow: visible; + max-height: 100%; + } + + .phpdocumentor-sidebar__menu-icon { + display: none; + } +} +.phpdocumentor-admonition { + border: 1px solid var(--admonition-border-color); + border-radius: var(--border-radius-base-size); + border-color: var(--primary-color-lighten); + background-color: var(--primary-color-lighter); + padding: var(--spacing-lg); + margin: var(--spacing-lg) 0; + display: flex; + flex-direction: row; + align-items: flex-start; +} + +.phpdocumentor-admonition p:last-of-type { + margin-bottom: 0; +} + +.phpdocumentor-admonition--success, +.phpdocumentor-admonition.-success { + border-color: var(--admonition-success-color); +} + +.phpdocumentor-admonition__icon { + margin-right: var(--spacing-md); + color: var(--primary-color); + max-width: 3rem; +} +.phpdocumentor ul.phpdocumentor-breadcrumbs { + font-size: var(--text-md); + list-style: none; + margin: 0; + padding: 0; +} + +.phpdocumentor ul.phpdocumentor-breadcrumbs a { + color: var(--text-color); + text-decoration: none; +} + +.phpdocumentor ul.phpdocumentor-breadcrumbs > li { + display: inline-block; + margin: 0; +} + +.phpdocumentor ul.phpdocumentor-breadcrumbs > li + li:before { + color: var(--dark-gray); + content: "\\\A0"; + padding: 0; +} +.phpdocumentor .phpdocumentor-back-to-top { + position: fixed; + bottom: 2rem; + font-size: 2.5rem; + opacity: .25; + transition: all .3s ease-in-out; + right: 2rem; +} + +.phpdocumentor .phpdocumentor-back-to-top:hover { + color: var(--link-color-primary); + opacity: 1; +} +.phpdocumentor-search { + position: relative; + display: none; /** disable by default for non-js flow */ + opacity: .3; /** white-out default for loading indication */ + transition: opacity .3s, background .3s; + margin: var(--spacing-sm) 0; + flex: 1; + min-width: 100%; +} + +.phpdocumentor-search label { + display: flex; + align-items: center; + flex: 1; +} + +.phpdocumentor-search__icon { + color: var(--primary-color); + margin-right: var(--spacing-sm); + width: 1rem; + height: 1rem; +} + +.phpdocumentor-search--enabled { + display: flex; +} + +.phpdocumentor-search--active { + opacity: 1; +} + +.phpdocumentor-search input:disabled { + background-color: lightgray; +} + +.phpdocumentor-search__field:focus, +.phpdocumentor-search__field { + margin-bottom: 0; + border: 0; + border-bottom: 2px solid var(--primary-color); + padding: 0; + border-radius: 0; + flex: 1; +} + +@media (min-width: 1000px) { + .phpdocumentor-search { + min-width: auto; + max-width: 20rem; + margin: 0 0 0 auto; + } +} +.phpdocumentor-search-results { + backdrop-filter: blur(5px); + background: var(--popover-background-color); + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + padding: 0; + opacity: 1; + pointer-events: all; + + transition: opacity .3s, background .3s; +} + +.phpdocumentor-search-results--hidden { + background: transparent; + backdrop-filter: blur(0); + opacity: 0; + pointer-events: none; +} + +.phpdocumentor-search-results__dialog { + width: 100%; + background: white; + max-height: 100%; + display: flex; + flex-direction: column; +} + +.phpdocumentor-search-results__body { + overflow: auto; +} + +.phpdocumentor-search-results__header { + padding: var(--spacing-lg); + display: flex; + justify-content: space-between; + background: var(--primary-color-darken); + color: white; + align-items: center; +} + +.phpdocumentor-search-results__close { + font-size: var(--text-xl); + background: none; + border: none; + padding: 0; + margin: 0; +} + +.phpdocumentor .phpdocumentor-search-results__title { + font-size: var(--text-xl); + margin-bottom: 0; +} + +.phpdocumentor-search-results__entries { + list-style: none; + padding: 0 var(--spacing-lg); + margin: 0; +} + +.phpdocumentor-search-results__entry { + border-bottom: 1px solid var(--table-separator-color); + padding: var(--spacing-sm) 0; + text-align: left; +} + +.phpdocumentor-search-results__entry a { + display: block; +} + +.phpdocumentor-search-results__entry small { + margin-top: var(--spacing-xs); + margin-bottom: var(--spacing-md); + color: var(--primary-color-darker); + display: block; + word-break: break-word; +} + +.phpdocumentor-search-results__entry h3 { + font-size: var(--text-lg); + margin: 0; +} + +@media (min-width: 550px) { + .phpdocumentor-search-results { + padding: 0 var(--spacing-lg); + } + + .phpdocumentor-search-results__entry h3 { + font-size: var(--text-xxl); + } + + .phpdocumentor-search-results__dialog { + margin: var(--spacing-xl) auto; + max-width: 40rem; + background: white; + border: 1px solid silver; + box-shadow: 0 2px 5px silver; + max-height: 40rem; + border-radius: 3px; + } +} +.phpdocumentor-modal { + position: fixed; + width: 100vw; + height: 100vh; + opacity: 0; + visibility: hidden; + transition: all 0.3s ease; + top: 0; + left: 0; + display: flex; + align-items: center; + justify-content: center; + z-index: 1; +} + +.phpdocumentor-modal__open { + visibility: visible; + opacity: 1; + transition-delay: 0s; +} + +.phpdocumentor-modal-bg { + position: absolute; + background: gray; + opacity: 50%; + width: 100%; + height: 100%; +} + +.phpdocumentor-modal-container { + border-radius: 1em; + background: #fff; + position: relative; + padding: 2em; + box-sizing: border-box; + max-width:100vw; +} + +.phpdocumentor-modal__close { + position: absolute; + right: 0.75em; + top: 0.75em; + outline: none; + appearance: none; + color: var(--primary-color); + background: none; + border: 0px; + font-weight: bold; + cursor: pointer; +} +.phpdocumentor-on-this-page__sidebar { + display: none; +} + +.phpdocumentor-on-this-page__title { + display: block; + font-weight: bold; + margin-bottom: var(--spacing-sm); + color: var(--link-color-primary); +} + +@media (min-width: 1000px) { + .phpdocumentor-on-this-page__sidebar { + display: block; + position: relative; + } + + .phpdocumentor-on-this-page__content::-webkit-scrollbar, + [scrollbars]::-webkit-scrollbar { + height: 8px; + width: 8px; + } + + .phpdocumentor-on-this-page__content::-webkit-scrollbar-corner, + [scrollbars]::-webkit-scrollbar-corner { + background: 0; + } + + .phpdocumentor-on-this-page__content::-webkit-scrollbar-thumb, + [scrollbars]::-webkit-scrollbar-thumb { + background: rgba(128,134,139,0.26); + border-radius: 8px; + } + + .phpdocumentor-on-this-page__content { + position: sticky; + height: calc(100vh - var(--header-height)); + overflow-y: auto; + border-left: 1px solid var(--sidebar-border-color); + padding-left: var(--spacing-lg); + font-size: 90%; + top: -1px; /* Needed for the javascript to make the .-stuck trick work */ + flex: 0 1 auto; + width: 15vw; + } + + .phpdocumentor-on-this-page__content.-stuck { + height: 100vh; + } + + .phpdocumentor-on-this-page__content li { + word-break: break-all; + line-height: normal; + } +} + +/* Used for screen readers and such */ +.visually-hidden { + display: none; +} + +.float-right { + float: right; +} + +.float-left { + float: left; +} diff --git a/docs/css/normalize.css b/docs/css/normalize.css new file mode 100644 index 0000000..653dc00 --- /dev/null +++ b/docs/css/normalize.css @@ -0,0 +1,427 @@ +/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ + +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ + +html { + font-family: sans-serif; /* 1 */ + -ms-text-size-adjust: 100%; /* 2 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/** + * Remove default margin. + */ + +body { + margin: 0; +} + +/* HTML5 display definitions + ========================================================================== */ + +/** + * Correct `block` display not defined for any HTML5 element in IE 8/9. + * Correct `block` display not defined for `details` or `summary` in IE 10/11 + * and Firefox. + * Correct `block` display not defined for `main` in IE 11. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} + +/** + * 1. Correct `inline-block` display not defined in IE 8/9. + * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. + */ + +audio, +canvas, +progress, +video { + display: inline-block; /* 1 */ + vertical-align: baseline; /* 2 */ +} + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Address `[hidden]` styling not present in IE 8/9/10. + * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. + */ + +[hidden], +template { + display: none !important; +} + +/* Links + ========================================================================== */ + +/** + * Remove the gray background color from active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ + +a:active, +a:hover { + outline: 0; +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Address styling not present in IE 8/9/10/11, Safari, and Chrome. + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/** + * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. + */ + +b, +strong { + font-weight: bold; +} + +/** + * Address styling not present in Safari and Chrome. + */ + +dfn { + font-style: italic; +} + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari, and Chrome. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/** + * Address styling not present in IE 8/9. + */ + +mark { + background: #ff0; + color: #000; +} + +/** + * Address inconsistent and variable font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove border when inside `a` element in IE 8/9/10. + */ + +img { + border: 0; +} + +/** + * Correct overflow not hidden in IE 9/10/11. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* Grouping content + ========================================================================== */ + +/** + * Address margin not present in IE 8/9 and Safari. + */ + +figure { + margin: 1em 40px; +} + +/** + * Address differences between Firefox and other browsers. + */ + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} + +/** + * Contain overflow in all browsers. + */ + +pre { + overflow: auto; +} + +/** + * Address odd `em`-unit font size rendering in all browsers. + */ + +code, +kbd, +pre, +samp { + font-family: var(--font-monospace); + font-size: 1em; +} + +/* Forms + ========================================================================== */ + +/** + * Known limitation: by default, Chrome and Safari on OS X allow very limited + * styling of `select`, unless a `border` property is set. + */ + +/** + * 1. Correct color not being inherited. + * Known issue: affects color of disabled elements. + * 2. Correct font properties not being inherited. + * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. + */ + +button, +input, +optgroup, +select, +textarea { + color: inherit; /* 1 */ + font: inherit; /* 2 */ + margin: 0; /* 3 */ +} + +/** + * Address `overflow` set to `hidden` in IE 8/9/10/11. + */ + +button { + overflow: visible; +} + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. + * Correct `select` style inheritance in Firefox. + */ + +button, +select { + text-transform: none; +} + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ + +button, +html input[type="button"], /* 1 */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ +} + +/** + * Re-set default cursor for disabled elements. + */ + +button[disabled], +html input[disabled] { + cursor: default; +} + +/** + * Remove inner padding and border in Firefox 4+. + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ + +input { + line-height: normal; +} + +/** + * It's recommended that you don't attempt to style these elements. + * Firefox's implementation doesn't respect box-sizing, padding, or width. + * + * 1. Address box sizing set to `content-box` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Fix the cursor style for Chrome's increment/decrement buttons. For certain + * `font-size` values of the `input`, it causes the cursor style of the + * decrement button to change from `default` to `text`. + */ + +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Address `appearance` set to `searchfield` in Safari and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari and Chrome + * (include `-moz` to future-proof). + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; +} + +/** + * Remove inner padding and search cancel button in Safari and Chrome on OS X. + * Safari (but not Chrome) clips the cancel button when the search input has + * padding (and `textfield` appearance). + */ + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Define consistent border, margin, and padding. + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct `color` not being inherited in IE 8/9/10/11. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ + +legend { + border: 0; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Remove default vertical scrollbar in IE 8/9/10/11. + */ + +textarea { + overflow: auto; +} + +/** + * Don't inherit the `font-weight` (applied by a rule above). + * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. + */ + +optgroup { + font-weight: bold; +} + +/* Tables + ========================================================================== */ + +/** + * Remove most spacing between table cells. + */ + +table { + border-collapse: collapse; + border-spacing: 0; +} + +td, +th { + padding: 0; +} diff --git a/docs/css/template.css b/docs/css/template.css new file mode 100644 index 0000000..898b676 --- /dev/null +++ b/docs/css/template.css @@ -0,0 +1,271 @@ + +.phpdocumentor-content { + position: relative; + display: flex; + gap: var(--spacing-md); +} + +.phpdocumentor-content > section:first-of-type { + width: 75%; + flex: 1 1 auto; +} + +@media (min-width: 1900px) { + .phpdocumentor-content > section:first-of-type { + width: 100%; + flex: 1 1 auto; + } +} + +.phpdocumentor .phpdocumentor-content__title { + margin-top: 0; +} +.phpdocumentor-summary { + font-style: italic; +} +.phpdocumentor-description { + margin-bottom: var(--spacing-md); +} +.phpdocumentor-element { + position: relative; +} + +.phpdocumentor-element .phpdocumentor-element { + border: 1px solid var(--primary-color-lighten); + margin-bottom: var(--spacing-md); + padding: var(--spacing-xs); + border-radius: 5px; +} + +.phpdocumentor-element.-deprecated .phpdocumentor-element__name { + text-decoration: line-through; +} + +@media (min-width: 550px) { + .phpdocumentor-element .phpdocumentor-element { + margin-bottom: var(--spacing-lg); + padding: var(--spacing-md); + } +} + +.phpdocumentor-element__modifier { + font-size: var(--text-xxs); + padding: calc(var(--spacing-base-size) / 4) calc(var(--spacing-base-size) / 2); + color: var(--text-color); + background-color: var(--light-gray); + border-radius: 3px; + text-transform: uppercase; +} + +.phpdocumentor .phpdocumentor-elements__header { + margin-top: var(--spacing-xxl); + margin-bottom: var(--spacing-lg); +} + +.phpdocumentor .phpdocumentor-element__name { + line-height: 1; + margin-top: 0; + font-weight: 300; + font-size: var(--text-lg); + word-break: break-all; + margin-bottom: var(--spacing-sm); +} + +@media (min-width: 550px) { + .phpdocumentor .phpdocumentor-element__name { + font-size: var(--text-xl); + margin-bottom: var(--spacing-xs); + } +} + +@media (min-width: 1200px) { + .phpdocumentor .phpdocumentor-element__name { + margin-bottom: var(--spacing-md); + } +} + +.phpdocumentor-element__package, +.phpdocumentor-element__extends, +.phpdocumentor-element__implements { + display: block; + font-size: var(--text-xxs); + font-weight: normal; + opacity: .7; +} + +.phpdocumentor-element__package .phpdocumentor-breadcrumbs { + display: inline; +} +.phpdocumentor .phpdocumentor-signature { + display: block; + font-size: var(--text-sm); + border: 1px solid #f0f0f0; +} + +.phpdocumentor .phpdocumentor-signature.-deprecated .phpdocumentor-signature__name { + text-decoration: line-through; +} + +@media (min-width: 550px) { + .phpdocumentor .phpdocumentor-signature { + margin-left: calc(var(--spacing-xl) * -1); + width: calc(100% + var(--spacing-xl)); + } +} + +.phpdocumentor-table-of-contents { +} + +.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry { + margin-bottom: var(--spacing-xxs); + margin-left: 2rem; + display: flex; +} + +.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry > a { + flex: 0 1 auto; +} + +.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry > span { + flex: 1; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} + +.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry:after { + content: ''; + height: 12px; + width: 12px; + left: 16px; + position: absolute; +} +.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-private:after { + background: url('data:image/svg+xml;utf8,') no-repeat; +} +.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-protected:after { + left: 13px; + background: url('data:image/svg+xml;utf8,') no-repeat; +} + +.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry:before { + width: 1.25rem; + height: 1.25rem; + line-height: 1.25rem; + background: transparent url('data:image/svg+xml;utf8,') no-repeat center center; + content: ''; + position: absolute; + left: 0; + border-radius: 50%; + font-weight: 600; + color: white; + text-align: center; + font-size: .75rem; + margin-top: .2rem; +} + +.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-method:before { + content: 'M'; + color: ''; + background-image: url('data:image/svg+xml;utf8,'); +} + +.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-function:before { + content: 'M'; + color: ' 96'; + background-image: url('data:image/svg+xml;utf8,'); +} + +.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-property:before { + content: 'P' +} + +.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-constant:before { + content: 'C'; + background-color: transparent; + background-image: url('data:image/svg+xml;utf8,'); +} + +.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-class:before { + content: 'C' +} + +.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-interface:before { + content: 'I' +} + +.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-trait:before { + content: 'T' +} + +.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-namespace:before { + content: 'N' +} + +.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-package:before { + content: 'P' +} + +.phpdocumentor-table-of-contents .phpdocumentor-table-of-contents__entry.-enum:before { + content: 'E' +} + +.phpdocumentor-table-of-contents dd { + font-style: italic; + margin-left: 2rem; +} +.phpdocumentor-element-found-in { + display: none; +} + +@media (min-width: 550px) { + .phpdocumentor-element-found-in { + display: block; + font-size: var(--text-sm); + color: gray; + margin-bottom: 1rem; + } +} + +@media (min-width: 1200px) { + .phpdocumentor-element-found-in { + position: absolute; + top: var(--spacing-sm); + right: var(--spacing-sm); + font-size: var(--text-sm); + margin-bottom: 0; + } +} + +.phpdocumentor-element-found-in .phpdocumentor-element-found-in__source { + flex: 0 1 auto; + display: inline-flex; +} + +.phpdocumentor-element-found-in .phpdocumentor-element-found-in__source:after { + width: 1.25rem; + height: 1.25rem; + line-height: 1.25rem; + background: transparent url('data:image/svg+xml;utf8,') no-repeat center center; + content: ''; + left: 0; + border-radius: 50%; + font-weight: 600; + text-align: center; + font-size: .75rem; + margin-top: .2rem; +} +.phpdocumentor-class-graph { + width: 100%; height: 600px; border:1px solid black; overflow: hidden +} + +.phpdocumentor-class-graph__graph { + width: 100%; +} +.phpdocumentor-tag-list__definition { + display: flex; +} + +.phpdocumentor-tag-link { + margin-right: var(--spacing-sm); +} diff --git a/docs/files/src-filenotfoundexception.html b/docs/files/src-filenotfoundexception.html new file mode 100644 index 0000000..4aaebd2 --- /dev/null +++ b/docs/files/src-filenotfoundexception.html @@ -0,0 +1,292 @@ + + + + + Documentation + + + + + + + + + + + + + + + + + + + + + +
        +

        Documentation

        + + + + + +
        + +
        +
        + + + + +
        +
        +
          +
        + +
        +

        FileNotFoundException.php

        + + + + + + + +

        + Table of Contents + + +

        + + + + +

        + Classes + + +

        +
        +
        FileNotFoundException
        + + + + + + + + + + + + + +
        +
        +
        +
        +
        
        +        
        + +
        +
        + + + +
        +
        +
        + +
        + On this page + +
          +
        • Table Of Contents
        • +
        • + +
        • + + +
        +
        + +
        +
        +
        +
        +
        +

        Search results

        + +
        +
        +
          +
          +
          +
          +
          + + +
          + + + + + + + + diff --git a/docs/files/src-processenv.html b/docs/files/src-processenv.html new file mode 100644 index 0000000..d9a2c6d --- /dev/null +++ b/docs/files/src-processenv.html @@ -0,0 +1,292 @@ + + + + + Documentation + + + + + + + + + + + + + + + + + + + + + +
          +

          Documentation

          + + + + + +
          + +
          +
          + + + + +
          +
          +
            +
          + +
          +

          Processenv.php

          + + + + + + + +

          + Table of Contents + + +

          + + + + +

          + Classes + + +

          +
          +
          Processenv
          + + + + + + + + + + + + + +
          +
          +
          +
          +
          
          +        
          + +
          +
          + + + +
          +
          +
          + +
          + On this page + +
            +
          • Table Of Contents
          • +
          • + +
          • + + +
          +
          + +
          +
          +
          +
          +
          +

          Search results

          + +
          +
          +
            +
            +
            +
            +
            + + +
            + + + + + + + + diff --git a/docs/files/src-processenvoptions.html b/docs/files/src-processenvoptions.html new file mode 100644 index 0000000..019ad47 --- /dev/null +++ b/docs/files/src-processenvoptions.html @@ -0,0 +1,292 @@ + + + + + Documentation + + + + + + + + + + + + + + + + + + + + + +
            +

            Documentation

            + + + + + +
            + +
            +
            + + + + +
            +
            +
              +
            + +
            +

            ProcessenvOptions.php

            + + + + + + + +

            + Table of Contents + + +

            + + + + +

            + Classes + + +

            +
            +
            ProcessenvOptions
            + + + + + + + + + + + + + +
            +
            +
            +
            +
            
            +        
            + +
            +
            + + + +
            +
            +
            + +
            + On this page + +
              +
            • Table Of Contents
            • +
            • + +
            • + + +
            +
            + +
            +
            +
            +
            +
            +

            Search results

            + +
            +
            +
              +
              +
              +
              +
              + + +
              + + + + + + + + diff --git a/docs/graphs/classes.html b/docs/graphs/classes.html new file mode 100644 index 0000000..8ed0180 --- /dev/null +++ b/docs/graphs/classes.html @@ -0,0 +1,137 @@ + + + + + Documentation + + + + + + + + + +
              +

              Documentation

              + + + + + +
              + +
              +
              + + + + +
              +
              + +
              + +
              +
              +
              +
              +

              Search results

              + +
              +
              +
                +
                +
                +
                +
                + + +
                + + + + + + + + diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..e33bc59 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,174 @@ + + + + + Documentation + + + + + + + + + + + + + + + + + + + + + +
                +

                Documentation

                + + + + + +
                + +
                +
                + + + + +
                +
                +

                Documentation

                + + +

                + Table of Contents + + +

                + +

                + Packages + + +

                +
                +
                Application
                +
                + +

                + Namespaces + + +

                +
                +
                Nexus633
                +
                + + +
                +
                +
                +
                +
                +

                Search results

                + +
                +
                +
                  +
                  +
                  +
                  +
                  + + +
                  + + + + + + + + diff --git a/docs/indices/files.html b/docs/indices/files.html new file mode 100644 index 0000000..af81d9f --- /dev/null +++ b/docs/indices/files.html @@ -0,0 +1,151 @@ + + + + + Documentation + + + + + + + + + + + + + + + + + + + + + +
                  +

                  Documentation

                  + + + + + +
                  + +
                  +
                  + + + + +
                  +
                  + +

                  Files

                  +

                  F

                  + +

                  P

                  + +
                  +
                  +
                  +
                  +
                  +

                  Search results

                  + +
                  +
                  +
                    +
                    +
                    +
                    +
                    + + +
                    + + + + + + + + diff --git a/docs/js/search.js b/docs/js/search.js new file mode 100644 index 0000000..093d6d0 --- /dev/null +++ b/docs/js/search.js @@ -0,0 +1,173 @@ +// Search module for phpDocumentor +// +// This module is a wrapper around fuse.js that will use a given index and attach itself to a +// search form and to a search results pane identified by the following data attributes: +// +// 1. data-search-form +// 2. data-search-results +// +// The data-search-form is expected to have a single input element of type 'search' that will trigger searching for +// a series of results, were the data-search-results pane is expected to have a direct UL child that will be populated +// with rendered results. +// +// The search has various stages, upon loading this stage the data-search-form receives the CSS class +// 'phpdocumentor-search--enabled'; this indicates that JS is allowed and indices are being loaded. It is recommended +// to hide the form by default and show it when it receives this class to achieve progressive enhancement for this +// feature. +// +// After loading this module, it is expected to load a search index asynchronously, for example: +// +// +// +// In this script the generated index should attach itself to the search module using the `appendIndex` function. By +// doing it like this the page will continue loading, unhindered by the loading of the search. +// +// After the page has fully loaded, and all these deferred indexes loaded, the initialization of the search module will +// be called and the form will receive the class 'phpdocumentor-search--active', indicating search is ready. At this +// point, the input field will also have it's 'disabled' attribute removed. +var Search = (function () { + var fuse; + var index = []; + var options = { + shouldSort: true, + threshold: 0.6, + location: 0, + distance: 100, + maxPatternLength: 32, + minMatchCharLength: 1, + keys: [ + "fqsen", + "name", + "summary", + "url" + ] + }; + + // Credit David Walsh (https://davidwalsh.name/javascript-debounce-function) + // Returns a function, that, as long as it continues to be invoked, will not + // be triggered. The function will be called after it stops being called for + // N milliseconds. If `immediate` is passed, trigger the function on the + // leading edge, instead of the trailing. + function debounce(func, wait, immediate) { + var timeout; + + return function executedFunction() { + var context = this; + var args = arguments; + + var later = function () { + timeout = null; + if (!immediate) func.apply(context, args); + }; + + var callNow = immediate && !timeout; + clearTimeout(timeout); + timeout = setTimeout(later, wait); + if (callNow) func.apply(context, args); + }; + } + + function close() { + // Start scroll prevention: https://css-tricks.com/prevent-page-scrolling-when-a-modal-is-open/ + const scrollY = document.body.style.top; + document.body.style.position = ''; + document.body.style.top = ''; + window.scrollTo(0, parseInt(scrollY || '0') * -1); + // End scroll prevention + + var form = document.querySelector('[data-search-form]'); + var searchResults = document.querySelector('[data-search-results]'); + + form.classList.toggle('phpdocumentor-search--has-results', false); + searchResults.classList.add('phpdocumentor-search-results--hidden'); + var searchField = document.querySelector('[data-search-form] input[type="search"]'); + searchField.blur(); + } + + function search(event) { + // Start scroll prevention: https://css-tricks.com/prevent-page-scrolling-when-a-modal-is-open/ + document.body.style.position = 'fixed'; + document.body.style.top = `-${window.scrollY}px`; + // End scroll prevention + + // prevent enter's from autosubmitting + event.stopPropagation(); + + var form = document.querySelector('[data-search-form]'); + var searchResults = document.querySelector('[data-search-results]'); + var searchResultEntries = document.querySelector('[data-search-results] .phpdocumentor-search-results__entries'); + + searchResultEntries.innerHTML = ''; + + if (!event.target.value) { + close(); + return; + } + + form.classList.toggle('phpdocumentor-search--has-results', true); + searchResults.classList.remove('phpdocumentor-search-results--hidden'); + var results = fuse.search(event.target.value, {limit: 25}); + + results.forEach(function (result) { + var entry = document.createElement("li"); + entry.classList.add("phpdocumentor-search-results__entry"); + entry.innerHTML += '

                    ' + result.name + "

                    \n"; + entry.innerHTML += '' + result.fqsen + "\n"; + entry.innerHTML += '
                    ' + result.summary + '
                    '; + searchResultEntries.appendChild(entry) + }); + } + + function appendIndex(added) { + index = index.concat(added); + + // re-initialize search engine when appending an index after initialisation + if (typeof fuse !== 'undefined') { + fuse = new Fuse(index, options); + } + } + + function init() { + fuse = new Fuse(index, options); + + var form = document.querySelector('[data-search-form]'); + var searchField = document.querySelector('[data-search-form] input[type="search"]'); + + var closeButton = document.querySelector('.phpdocumentor-search-results__close'); + closeButton.addEventListener('click', function() { close() }.bind(this)); + + var searchResults = document.querySelector('[data-search-results]'); + searchResults.addEventListener('click', function() { close() }.bind(this)); + + form.classList.add('phpdocumentor-search--active'); + + searchField.setAttribute('placeholder', 'Search (Press "/" to focus)'); + searchField.removeAttribute('disabled'); + searchField.addEventListener('keyup', debounce(search, 300)); + + window.addEventListener('keyup', function (event) { + if (event.key === '/') { + searchField.focus(); + } + if (event.code === 'Escape') { + close(); + } + }.bind(this)); + } + + return { + appendIndex, + init + } +})(); + +window.addEventListener('DOMContentLoaded', function () { + var form = document.querySelector('[data-search-form]'); + + // When JS is supported; show search box. Must be before including the search for it to take effect immediately + form.classList.add('phpdocumentor-search--enabled'); +}); + +window.addEventListener('load', function () { + Search.init(); +}); diff --git a/docs/js/searchIndex.js b/docs/js/searchIndex.js new file mode 100644 index 0000000..2e811e7 --- /dev/null +++ b/docs/js/searchIndex.js @@ -0,0 +1,204 @@ +Search.appendIndex( + [ + { + "fqsen": "\\Nexus633\\Processenv\\FileNotFoundException", + "name": "FileNotFoundException", + "summary": "", + "url": "classes/Nexus633-Processenv-FileNotFoundException.html" + }, { + "fqsen": "\\Nexus633\\Processenv\\Processenv", + "name": "Processenv", + "summary": "", + "url": "classes/Nexus633-Processenv-Processenv.html" + }, { + "fqsen": "\\Nexus633\\Processenv\\Processenv\u003A\u003A__construct\u0028\u0029", + "name": "__construct", + "summary": "Option\u0020to\u0020add\u0020.env\u0020to\u0020global\u0020\u0024_ENV\u0020and\/or\u0020\u0024_SERVER", + "url": "classes/Nexus633-Processenv-Processenv.html#method___construct" + }, { + "fqsen": "\\Nexus633\\Processenv\\Processenv\u003A\u003Aload\u0028\u0029", + "name": "load", + "summary": "load\u0020and\u0020parse\u0020environment\u0020File\nconfigure\u0020the\u0020parser\u0020and\u0020initialize\u0020processenv\u0028\u0029", + "url": "classes/Nexus633-Processenv-Processenv.html#method_load" + }, { + "fqsen": "\\Nexus633\\Processenv\\Processenv\u003A\u003Aprocessenv\u0028\u0029", + "name": "processenv", + "summary": "get\u0020environment\u0020key", + "url": "classes/Nexus633-Processenv-Processenv.html#method_processenv" + }, { + "fqsen": "\\Nexus633\\Processenv\\Processenv\u003A\u003Aget\u0028\u0029", + "name": "get", + "summary": "get\u0020\u00B4.env\u00B4\u0020and\u0020\u00B4\u0024_ENV\u00B4\u0020value\u0020if\u0020exists\nelse\u0020get\u0020empty\u0020string", + "url": "classes/Nexus633-Processenv-Processenv.html#method_get" + }, { + "fqsen": "\\Nexus633\\Processenv\\Processenv\u003A\u003A__get\u0028\u0029", + "name": "__get", + "summary": "magic\u0020method\u0020to\u0020parse\u0020as\u0020object", + "url": "classes/Nexus633-Processenv-Processenv.html#method___get" + }, { + "fqsen": "\\Nexus633\\Processenv\\Processenv\u003A\u003AgetAll\u0028\u0029", + "name": "getAll", + "summary": "get\u0020all\u0020\u00B4.env\u00B4\u0020and\u0020\u00B4\u0024_ENV\u00B4\u0020values", + "url": "classes/Nexus633-Processenv-Processenv.html#method_getAll" + }, { + "fqsen": "\\Nexus633\\Processenv\\Processenv\u003A\u003AparseEnvironmentFile\u0028\u0029", + "name": "parseEnvironmentFile", + "summary": "parse\u0020.env\u0020file", + "url": "classes/Nexus633-Processenv-Processenv.html#method_parseEnvironmentFile" + }, { + "fqsen": "\\Nexus633\\Processenv\\Processenv\u003A\u003Aconfigure\u0028\u0029", + "name": "configure", + "summary": "Configure\u0020options", + "url": "classes/Nexus633-Processenv-Processenv.html#method_configure" + }, { + "fqsen": "\\Nexus633\\Processenv\\Processenv\u003A\u003AsetKeyValue\u0028\u0029", + "name": "setKeyValue", + "summary": "Parse\u0020\u0060.env\u0060\u0020file\u0020and\u0020set\u0020the\u0020key\u0020\u003D\u003E\u0020value\u0020pairs", + "url": "classes/Nexus633-Processenv-Processenv.html#method_setKeyValue" + }, { + "fqsen": "\\Nexus633\\Processenv\\Processenv\u003A\u003AremoveQuotationMarks\u0028\u0029", + "name": "removeQuotationMarks", + "summary": "remove\u0020quotation\u0020marks", + "url": "classes/Nexus633-Processenv-Processenv.html#method_removeQuotationMarks" + }, { + "fqsen": "\\Nexus633\\Processenv\\Processenv\u003A\u003AparseNestedStrings\u0028\u0029", + "name": "parseNestedStrings", + "summary": "Parse\u0020nested\u0020string\u0020in\u0020\u0060.env\u0060", + "url": "classes/Nexus633-Processenv-Processenv.html#method_parseNestedStrings" + }, { + "fqsen": "\\Nexus633\\Processenv\\Processenv\u003A\u003AparseObject\u0028\u0029", + "name": "parseObject", + "summary": "parse\u0020values\u0020to\u0020Object\u0020or\u0020Array", + "url": "classes/Nexus633-Processenv-Processenv.html#method_parseObject" + }, { + "fqsen": "\\Nexus633\\Processenv\\Processenv\u003A\u003AgetEnvironmentFileContent\u0028\u0029", + "name": "getEnvironmentFileContent", + "summary": "get\u0020.env\u0020file\u0020content", + "url": "classes/Nexus633-Processenv-Processenv.html#method_getEnvironmentFileContent" + }, { + "fqsen": "\\Nexus633\\Processenv\\Processenv\u003A\u003AfilterEmptyLinesAndCommentLines\u0028\u0029", + "name": "filterEmptyLinesAndCommentLines", + "summary": "filter\u0020line\u0020breaks\u0020from\u0020Array", + "url": "classes/Nexus633-Processenv-Processenv.html#method_filterEmptyLinesAndCommentLines" + }, { + "fqsen": "\\Nexus633\\Processenv\\Processenv\u003A\u003AfilterInlineComments\u0028\u0029", + "name": "filterInlineComments", + "summary": "filter\u0020inline\u0020comments\u0020after\u0020escaped\u0020hashtag", + "url": "classes/Nexus633-Processenv-Processenv.html#method_filterInlineComments" + }, { + "fqsen": "\\Nexus633\\Processenv\\Processenv\u003A\u003A\u0024options", + "name": "options", + "summary": "store\u0020options\u0020value", + "url": "classes/Nexus633-Processenv-Processenv.html#property_options" + }, { + "fqsen": "\\Nexus633\\Processenv\\Processenv\u003A\u003A\u0024env", + "name": "env", + "summary": "store\u0020the\u0020\u0060.env\u0060,\u0020\u0060\u0024_ENV\u0060\u0020array", + "url": "classes/Nexus633-Processenv-Processenv.html#property_env" + }, { + "fqsen": "\\Nexus633\\Processenv\\ProcessenvOptions", + "name": "ProcessenvOptions", + "summary": "", + "url": "classes/Nexus633-Processenv-ProcessenvOptions.html" + }, { + "fqsen": "\\Nexus633\\Processenv\\ProcessenvOptions\u003A\u003A__construct\u0028\u0029", + "name": "__construct", + "summary": "Option\u0020for\u0020Processenv\u0020class\nThere\u0020are\u0020also\u0020Pars\u0020options\u0020to\u0020configure\u0020the\u0020parser\u0020for\u0020Object\nand\u0020masked\u0020hashtags\u0020\u0028\\\\\u0023\u0029", + "url": "classes/Nexus633-Processenv-ProcessenvOptions.html#method___construct" + }, { + "fqsen": "\\Nexus633\\Processenv\\ProcessenvOptions\u003A\u003AisLocalFirst\u0028\u0029", + "name": "isLocalFirst", + "summary": "get\u0020local\u0020first\u0020option", + "url": "classes/Nexus633-Processenv-ProcessenvOptions.html#method_isLocalFirst" + }, { + "fqsen": "\\Nexus633\\Processenv\\ProcessenvOptions\u003A\u003AisExceptions\u0028\u0029", + "name": "isExceptions", + "summary": "get\u0020exceptions\u0020option", + "url": "classes/Nexus633-Processenv-ProcessenvOptions.html#method_isExceptions" + }, { + "fqsen": "\\Nexus633\\Processenv\\ProcessenvOptions\u003A\u003AisGlobalEnv\u0028\u0029", + "name": "isGlobalEnv", + "summary": "get\u0020glovalEnv\u0020option", + "url": "classes/Nexus633-Processenv-ProcessenvOptions.html#method_isGlobalEnv" + }, { + "fqsen": "\\Nexus633\\Processenv\\ProcessenvOptions\u003A\u003AisGlobalServer\u0028\u0029", + "name": "isGlobalServer", + "summary": "get\u0020globalServer\u0020option", + "url": "classes/Nexus633-Processenv-ProcessenvOptions.html#method_isGlobalServer" + }, { + "fqsen": "\\Nexus633\\Processenv\\ProcessenvOptions\u003A\u003AisGlobalKey\u0028\u0029", + "name": "isGlobalKey", + "summary": "get\u0020globalKey", + "url": "classes/Nexus633-Processenv-ProcessenvOptions.html#method_isGlobalKey" + }, { + "fqsen": "\\Nexus633\\Processenv\\ProcessenvOptions\u003A\u003AgetObjectParser\u0028\u0029", + "name": "getObjectParser", + "summary": "get\u0020objectParser\u0020option", + "url": "classes/Nexus633-Processenv-ProcessenvOptions.html#method_getObjectParser" + }, { + "fqsen": "\\Nexus633\\Processenv\\ProcessenvOptions\u003A\u003AgetReplacePattern\u0028\u0029", + "name": "getReplacePattern", + "summary": "get\u0020replacePattern\u0020option", + "url": "classes/Nexus633-Processenv-ProcessenvOptions.html#method_getReplacePattern" + }, { + "fqsen": "\\Nexus633\\Processenv\\ProcessenvOptions\u003A\u003APARSE_AS_STDCLASS", + "name": "PARSE_AS_STDCLASS", + "summary": "if\u0020this\u0020option\u0020is\u0020set,\u0020objects\u0020in\u0020the\u0020.env\u0020file\u0020will\u0020be\u0020converted\u0020to\u0020a\u0020StdClass.", + "url": "classes/Nexus633-Processenv-ProcessenvOptions.html#constant_PARSE_AS_STDCLASS" + }, { + "fqsen": "\\Nexus633\\Processenv\\ProcessenvOptions\u003A\u003APARSE_AS_ARRAY", + "name": "PARSE_AS_ARRAY", + "summary": "if\u0020this\u0020option\u0020is\u0020set,\u0020objects\u0020in\u0020the\u0020.env\u0020file\u0020will\u0020be\u0020converted\u0020into\u0020an\u0020array.", + "url": "classes/Nexus633-Processenv-ProcessenvOptions.html#constant_PARSE_AS_ARRAY" + }, { + "fqsen": "\\Nexus633\\Processenv\\ProcessenvOptions\u003A\u003A\u0024localFirst", + "name": "localFirst", + "summary": "", + "url": "classes/Nexus633-Processenv-ProcessenvOptions.html#property_localFirst" + }, { + "fqsen": "\\Nexus633\\Processenv\\ProcessenvOptions\u003A\u003A\u0024exceptions", + "name": "exceptions", + "summary": "", + "url": "classes/Nexus633-Processenv-ProcessenvOptions.html#property_exceptions" + }, { + "fqsen": "\\Nexus633\\Processenv\\ProcessenvOptions\u003A\u003A\u0024globalEnv", + "name": "globalEnv", + "summary": "", + "url": "classes/Nexus633-Processenv-ProcessenvOptions.html#property_globalEnv" + }, { + "fqsen": "\\Nexus633\\Processenv\\ProcessenvOptions\u003A\u003A\u0024globalServer", + "name": "globalServer", + "summary": "", + "url": "classes/Nexus633-Processenv-ProcessenvOptions.html#property_globalServer" + }, { + "fqsen": "\\Nexus633\\Processenv\\ProcessenvOptions\u003A\u003A\u0024globalKey", + "name": "globalKey", + "summary": "", + "url": "classes/Nexus633-Processenv-ProcessenvOptions.html#property_globalKey" + }, { + "fqsen": "\\Nexus633\\Processenv\\ProcessenvOptions\u003A\u003A\u0024objectParser", + "name": "objectParser", + "summary": "", + "url": "classes/Nexus633-Processenv-ProcessenvOptions.html#property_objectParser" + }, { + "fqsen": "\\Nexus633\\Processenv\\ProcessenvOptions\u003A\u003A\u0024replacePattern", + "name": "replacePattern", + "summary": "", + "url": "classes/Nexus633-Processenv-ProcessenvOptions.html#property_replacePattern" + }, { + "fqsen": "\\", + "name": "\\", + "summary": "", + "url": "namespaces/default.html" + }, { + "fqsen": "\\Nexus633\\Processenv", + "name": "Processenv", + "summary": "", + "url": "namespaces/nexus633-processenv.html" + }, { + "fqsen": "\\Nexus633", + "name": "Nexus633", + "summary": "", + "url": "namespaces/nexus633.html" + } ] +); diff --git a/docs/js/template.js b/docs/js/template.js new file mode 100644 index 0000000..4938329 --- /dev/null +++ b/docs/js/template.js @@ -0,0 +1,17 @@ +(function(){ + window.addEventListener('load', () => { + const el = document.querySelector('.phpdocumentor-on-this-page__content') + if (!el) { + return; + } + + const observer = new IntersectionObserver( + ([e]) => { + e.target.classList.toggle("-stuck", e.intersectionRatio < 1); + }, + {threshold: [1]} + ); + + observer.observe(el); + }) +})(); diff --git a/docs/namespaces/default.html b/docs/namespaces/default.html new file mode 100644 index 0000000..d903c90 --- /dev/null +++ b/docs/namespaces/default.html @@ -0,0 +1,285 @@ + + + + + Documentation + + + + + + + + + + + + + + + + + + + + + +
                    +

                    Documentation

                    + + + + + +
                    + +
                    +
                    + + + + +
                    +
                    +
                      +
                    + +
                    +

                    API Documentation

                    + + +

                    + Table of Contents + + +

                    + + +

                    + Namespaces + + +

                    +
                    +
                    Nexus633
                    +
                    + + + + + + + + + + + + + +
                    +
                    +
                    +
                    +
                    
                    +        
                    + +
                    +
                    + + + +
                    +
                    +
                    + +
                    + On this page + +
                      +
                    • Table Of Contents
                    • +
                    • +
                        +
                      +
                    • + + +
                    +
                    + +
                    +
                    +
                    +
                    +
                    +

                    Search results

                    + +
                    +
                    +
                      +
                      +
                      +
                      +
                      + + +
                      + + + + + + + + diff --git a/docs/namespaces/nexus633-processenv.html b/docs/namespaces/nexus633-processenv.html new file mode 100644 index 0000000..d211449 --- /dev/null +++ b/docs/namespaces/nexus633-processenv.html @@ -0,0 +1,286 @@ + + + + + Documentation + + + + + + + + + + + + + + + + + + + + + +
                      +

                      Documentation

                      + + + + + +
                      + +
                      +
                      + + + + +
                      +
                      + + +
                      +

                      Processenv

                      + + +

                      + Table of Contents + + +

                      + + + + +

                      + Classes + + +

                      +
                      +
                      FileNotFoundException
                      Processenv
                      ProcessenvOptions
                      + + + + + + + + + + + +
                      +
                      +
                      +
                      +
                      
                      +        
                      + +
                      +
                      + + + +
                      +
                      +
                      + +
                      + On this page + +
                        +
                      • Table Of Contents
                      • +
                      • + +
                      • + + +
                      +
                      + +
                      +
                      +
                      +
                      +
                      +

                      Search results

                      + +
                      +
                      +
                        +
                        +
                        +
                        +
                        + + +
                        + + + + + + + + diff --git a/docs/namespaces/nexus633.html b/docs/namespaces/nexus633.html new file mode 100644 index 0000000..7c12950 --- /dev/null +++ b/docs/namespaces/nexus633.html @@ -0,0 +1,285 @@ + + + + + Documentation + + + + + + + + + + + + + + + + + + + + + +
                        +

                        Documentation

                        + + + + + +
                        + +
                        +
                        + + + + +
                        +
                        +
                          +
                        + +
                        +

                        Nexus633

                        + + +

                        + Table of Contents + + +

                        + + +

                        + Namespaces + + +

                        +
                        +
                        Processenv
                        +
                        + + + + + + + + + + + + + +
                        +
                        +
                        +
                        +
                        
                        +        
                        + +
                        +
                        + + + +
                        +
                        +
                        + +
                        + On this page + +
                          +
                        • Table Of Contents
                        • +
                        • +
                            +
                          +
                        • + + +
                        +
                        + +
                        +
                        +
                        +
                        +
                        +

                        Search results

                        + +
                        +
                        +
                          +
                          +
                          +
                          +
                          + + +
                          + + + + + + + + diff --git a/docs/packages/Application.html b/docs/packages/Application.html new file mode 100644 index 0000000..9099475 --- /dev/null +++ b/docs/packages/Application.html @@ -0,0 +1,285 @@ + + + + + Documentation + + + + + + + + + + + + + + + + + + + + + +
                          +

                          Documentation

                          + + + + + +
                          + +
                          +
                          + + + + +
                          +
                          +
                            +
                          + +
                          +

                          Application

                          + + +

                          + Table of Contents + + +

                          + + + + +

                          + Classes + + +

                          +
                          +
                          FileNotFoundException
                          Processenv
                          ProcessenvOptions
                          + + + + + + + + + + + +
                          +
                          +
                          +
                          +
                          
                          +        
                          + +
                          +
                          + + + +
                          +
                          +
                          + +
                          + On this page + +
                            +
                          • Table Of Contents
                          • +
                          • + +
                          • + + +
                          +
                          + +
                          +
                          +
                          +
                          +
                          +

                          Search results

                          + +
                          +
                          +
                            +
                            +
                            +
                            +
                            + + +
                            + + + + + + + + diff --git a/docs/packages/default.html b/docs/packages/default.html new file mode 100644 index 0000000..694817e --- /dev/null +++ b/docs/packages/default.html @@ -0,0 +1,285 @@ + + + + + Documentation + + + + + + + + + + + + + + + + + + + + + +
                            +

                            Documentation

                            + + + + + +
                            + +
                            +
                            + + + + +
                            +
                            +
                              +
                            + +
                            +

                            API Documentation

                            + + +

                            + Table of Contents + + +

                            + +

                            + Packages + + +

                            +
                            +
                            Application
                            +
                            + + + + + + + + + + + + + + +
                            +
                            +
                            +
                            +
                            
                            +        
                            + +
                            +
                            + + + +
                            +
                            +
                            + +
                            + On this page + +
                              +
                            • Table Of Contents
                            • +
                            • +
                                +
                              +
                            • + + +
                            +
                            + +
                            +
                            +
                            +
                            +
                            +

                            Search results

                            + +
                            +
                            +
                              +
                              +
                              +
                              +
                              + + +
                              + + + + + + + + diff --git a/docs/reports/deprecated.html b/docs/reports/deprecated.html new file mode 100644 index 0000000..c4b8961 --- /dev/null +++ b/docs/reports/deprecated.html @@ -0,0 +1,153 @@ + + + + + Documentation » Deprecated elements + + + + + + + + + + + + + + + + + + + + + + +
                              +

                              Documentation

                              + + + + + +
                              + +
                              +
                              + + + + +
                              +
                              + + +
                              +

                              Deprecated

                              + + +
                              + No deprecated elements have been found in this project. +
                              +
                              +
                              +
                              +
                              +
                              +
                              +

                              Search results

                              + +
                              +
                              +
                                +
                                +
                                +
                                +
                                + + +
                                + + + + + + + + diff --git a/docs/reports/errors.html b/docs/reports/errors.html new file mode 100644 index 0000000..27fd587 --- /dev/null +++ b/docs/reports/errors.html @@ -0,0 +1,152 @@ + + + + + Documentation » Compilation errors + + + + + + + + + + + + + + + + + + + + + + +
                                +

                                Documentation

                                + + + + + +
                                + +
                                +
                                + + + + +
                                +
                                + + +
                                +

                                Errors

                                + + +
                                No errors have been found in this project.
                                + +
                                +
                                +
                                +
                                +
                                +
                                +

                                Search results

                                + +
                                +
                                +
                                  +
                                  +
                                  +
                                  +
                                  + + +
                                  + + + + + + + + diff --git a/docs/reports/markers.html b/docs/reports/markers.html new file mode 100644 index 0000000..0133a4d --- /dev/null +++ b/docs/reports/markers.html @@ -0,0 +1,153 @@ + + + + + Documentation » Markers + + + + + + + + + + + + + + + + + + + + + + +
                                  +

                                  Documentation

                                  + + + + + +
                                  + +
                                  +
                                  + + + + +
                                  +
                                  + + +
                                  +

                                  Markers

                                  + +
                                  + No markers have been found in this project. +
                                  + +
                                  +
                                  +
                                  +
                                  +
                                  +
                                  +

                                  Search results

                                  + +
                                  +
                                  +
                                    +
                                    +
                                    +
                                    +
                                    + + +
                                    + + + + + + + + diff --git a/src/Processenv.php b/src/Processenv.php index bbe3856..b29aa68 100644 --- a/src/Processenv.php +++ b/src/Processenv.php @@ -176,8 +176,8 @@ private function setKeyValue(array $content): array $val = $this->removeQuotationMarks($val); $key = $this->removeQuotationMarks($key); $val = $this->filterInlineComments($val); - $val = $this->parsNestedStrings($val, $tmp_env); - $val = $this->parsObject($val); + $val = $this->parseNestedStrings($val, $tmp_env); + $val = $this->parseObject($val); $tmp_env[$key] = $val; } } @@ -203,7 +203,7 @@ private function removeQuotationMarks($value): string /** * Parse nested string in `.env` */ - private function parsNestedStrings(string $value, array $tmp_array): string + private function parseNestedStrings(string $value, array $tmp_array): string { preg_match_all('/\${[A-Z_]+}/', $value, $match); if (count($match[0]) > 0) { @@ -220,9 +220,9 @@ private function parsNestedStrings(string $value, array $tmp_array): string } /** - * pars values to Object or Array + * parse values to Object or Array */ - private function parsObject(string $value): stdClass|string|array + private function parseObject(string $value): stdClass|string|array { $associative = $this->options->getObjectParser(); $parsedValue = json_decode($value, $associative);