├── .gitignore ├── 06e9ac4b9e0f4f24.version.shasum ├── README.md ├── composer.json ├── composer.lock ├── envkey-php.gif ├── example ├── .gitignore ├── composer.json ├── index.php └── src │ └── index.php ├── ext ├── envkey-source_2.4.2_darwin_amd64 │ ├── LICENSE │ ├── README.md │ ├── envkey-source │ └── envkeysource-version.txt ├── envkey-source_2.4.2_darwin_arm64 │ ├── LICENSE │ ├── README.md │ ├── envkey-source │ └── envkeysource-version.txt ├── envkey-source_2.4.2_freebsd_amd64 │ ├── LICENSE │ ├── README.md │ ├── envkey-source │ └── envkeysource-version.txt ├── envkey-source_2.4.2_freebsd_arm64 │ ├── LICENSE │ ├── README.md │ ├── envkey-source │ └── envkeysource-version.txt ├── envkey-source_2.4.2_linux_amd64 │ ├── LICENSE │ ├── README.md │ ├── envkey-source │ └── envkeysource-version.txt ├── envkey-source_2.4.2_linux_arm64 │ ├── LICENSE │ ├── README.md │ ├── envkey-source │ └── envkeysource-version.txt ├── envkey-source_2.4.2_windows_amd64 │ ├── LICENSE │ ├── README.md │ ├── envkey-source.exe │ └── envkeysource-version.txt └── envkey-source_2.4.2_windows_arm64 │ ├── LICENSE │ ├── README.md │ ├── envkey-source.exe │ └── envkeysource-version.txt ├── sdkphp-version.txt ├── src ├── Fetcher.php ├── Loader.php ├── auto.php └── constants.php └── tests └── EnvkeyTest.php /.gitignore: -------------------------------------------------------------------------------- 1 | /vendor/ 2 | .DS_Store 3 | -------------------------------------------------------------------------------- /06e9ac4b9e0f4f24.version.shasum: -------------------------------------------------------------------------------- 1 | 06e9ac4b9e0f4f24c9019a47c1d862de697b17a5268e9ea65d81ce96f77013d6 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # envkey-php 2 | 3 | Integrate [EnvKey](https://www.envkey.com) with your PHP projects to keep API keys, credentials, and other configuration securely and automatically in sync for developers and servers. 4 | 5 | ![envkey-php integration example](envkey-php.gif) 6 | 7 | This repo is mirrored in two locations: 8 | 9 | - [A subdirectory of EnvKey's v2 monorepo](https://github.com/envkey/envkey/tree/main/public/sdks/languages-and-frameworks/php). 10 | - [envkey-php package repo](https://github.com/envkey/envkey-php) 11 | 12 | ## Installation 13 | 14 | ```bash 15 | $ composer require envkey/envkey-php 16 | ``` 17 | 18 | ## Usage 19 | 20 | If you haven't already, download and install EnvKey from our [website](https://envkey.com), then create a new org. Next, follow the ~1 minute [integration quickstart](https://docs-v2.envkey.com/docs/integration-quickstart) to init an app with a `.envkey` file (for connecting development) or generate a server `ENVKEY` (for connecting a server). 21 | 22 | At the entry point of your application, be sure you're including the composer autoloader. 23 | 24 | ```php 25 | require_once 'vendor/autoload.php'; // Include the Composer autoloader 26 | ``` 27 | 28 | Now all your EnvKey variables will be available with `getenv('VARIABLE_NAME')`. 29 | 30 | ```php 31 | $stripe = new \Stripe\StripeClient(getenv('STRIPE_SECRET_KEY')); 32 | ``` 33 | 34 | ### Errors 35 | 36 | The package will throw an error if an `ENVKEY` is missing or invalid. 37 | 38 | ### Overriding Vars 39 | 40 | This package will not overwrite existing environment variables or additional variables set in the `.env` file you loaded your `ENVKEY` from. This can be convenient for customizing environments that otherwise share the same configuration. You can also use [branches or local overrides](https://docs-v2.envkey.com/docs/branches-and-local-overrides) for this purpose. 41 | 42 | ### PHP Request Model / Latency 43 | 44 | Unlike other EnvKey language libraries that expect a long-running server process, this library is designed for PHP's short-lived per-request processes. Instead of loading config from an EnvKey host on every request, which would add 100-500ms of latency (depending on location and connection speed), this library caches your encrypted config in RAM in a background process and keeps it up to date. After the first load of EnvKey on a server, subsequent requests will load config from this cache, with effectively zero latency (less than 1 millisecond). 45 | 46 | ### Working Offline 47 | 48 | As mentioned in the previous section, this package caches your encrypted config in RAM. Your config will still be available (though possibly not up-to-date) if you lose your internet connection. When the connection is reestablished, the latest config will be loaded immediately. 49 | 50 | ## envkey-source 51 | 52 | Using a language-specific library like this one is the easiest and fastest method of integrating with EnvKey. That said, the [envkey-source](https://docs-v2.envkey.com/docs/envkey-source) executable, which this library wraps, provides additional options and functionality when used directly from the command line. If you need additional flexibility and it works for your use case, consider using envkey-source directly. 53 | 54 | ## x509 error / ca-certificates 55 | 56 | On a stripped down OS like Alpine Linux, you may get an `x509: certificate signed by unknown authority` error when attempting to load your config. You can fix it by ensuring that the `ca-certificates` dependency is installed. On Alpine you'll want to run: 57 | 58 | ``` 59 | apk add --no-cache ca-certificates 60 | ``` 61 | 62 | ## Further Reading 63 | 64 | For more on EnvKey in general: 65 | 66 | Read the [docs](https://docs-v2.envkey.com). 67 | 68 | Read the [integration quickstart](https://docs-v2.envkey.com/docs/integration-quickstart.html). 69 | 70 | Read the [security and cryptography overview](https://docs-v2.envkey.com/docs/security). 71 | 72 | ## Need help? Have questions, feedback, or ideas? 73 | 74 | Post an [issue](https://github.com/envkey/envkey/issues), start a [discussion](https://github.com/envkey/envkey/dicussions), or email us: [support@envkey.com](mailto:support@envkey.com). 75 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "envkey/envkey-php", 3 | "version": "2.4.4", 4 | "description": "Keeps environment variables automatically in sync. Protects secrets with end-to-end encryption.", 5 | "keywords": [ 6 | "env", 7 | "dotenv", 8 | "environment variables", 9 | "secrets", 10 | "secrets management", 11 | "configuration", 12 | "configuration management", 13 | "security", 14 | "encryption", 15 | "end-to-end encryption" 16 | ], 17 | "license": "MIT", 18 | "authors": [ 19 | { 20 | "name": "EnvKey", 21 | "email": "support@envkey.com", 22 | "homepage": "https://envkey.com" 23 | } 24 | ], 25 | "require-dev": { 26 | "phpunit/phpunit": "^10.1" 27 | }, 28 | "autoload": { 29 | "files": [ 30 | "src/auto.php" 31 | ] 32 | }, 33 | "autoload-dev": { 34 | "psr-4": { 35 | "Envkey\\": "src/" 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /composer.lock: -------------------------------------------------------------------------------- 1 | { 2 | "_readme": [ 3 | "This file locks the dependencies of your project to a known state", 4 | "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", 5 | "This file is @generated automatically" 6 | ], 7 | "content-hash": "40a0c79fa94dc0bf71b18b35c8c57ae0", 8 | "packages": [], 9 | "packages-dev": [ 10 | { 11 | "name": "myclabs/deep-copy", 12 | "version": "1.11.1", 13 | "source": { 14 | "type": "git", 15 | "url": "https://github.com/myclabs/DeepCopy.git", 16 | "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" 17 | }, 18 | "dist": { 19 | "type": "zip", 20 | "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", 21 | "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", 22 | "shasum": "" 23 | }, 24 | "require": { 25 | "php": "^7.1 || ^8.0" 26 | }, 27 | "conflict": { 28 | "doctrine/collections": "<1.6.8", 29 | "doctrine/common": "<2.13.3 || >=3,<3.2.2" 30 | }, 31 | "require-dev": { 32 | "doctrine/collections": "^1.6.8", 33 | "doctrine/common": "^2.13.3 || ^3.2.2", 34 | "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" 35 | }, 36 | "type": "library", 37 | "autoload": { 38 | "files": [ 39 | "src/DeepCopy/deep_copy.php" 40 | ], 41 | "psr-4": { 42 | "DeepCopy\\": "src/DeepCopy/" 43 | } 44 | }, 45 | "notification-url": "https://packagist.org/downloads/", 46 | "license": [ 47 | "MIT" 48 | ], 49 | "description": "Create deep copies (clones) of your objects", 50 | "keywords": [ 51 | "clone", 52 | "copy", 53 | "duplicate", 54 | "object", 55 | "object graph" 56 | ], 57 | "support": { 58 | "issues": "https://github.com/myclabs/DeepCopy/issues", 59 | "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" 60 | }, 61 | "funding": [ 62 | { 63 | "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", 64 | "type": "tidelift" 65 | } 66 | ], 67 | "time": "2023-03-08T13:26:56+00:00" 68 | }, 69 | { 70 | "name": "nikic/php-parser", 71 | "version": "v4.17.1", 72 | "source": { 73 | "type": "git", 74 | "url": "https://github.com/nikic/PHP-Parser.git", 75 | "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d" 76 | }, 77 | "dist": { 78 | "type": "zip", 79 | "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", 80 | "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", 81 | "shasum": "" 82 | }, 83 | "require": { 84 | "ext-tokenizer": "*", 85 | "php": ">=7.0" 86 | }, 87 | "require-dev": { 88 | "ircmaxell/php-yacc": "^0.0.7", 89 | "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" 90 | }, 91 | "bin": [ 92 | "bin/php-parse" 93 | ], 94 | "type": "library", 95 | "extra": { 96 | "branch-alias": { 97 | "dev-master": "4.9-dev" 98 | } 99 | }, 100 | "autoload": { 101 | "psr-4": { 102 | "PhpParser\\": "lib/PhpParser" 103 | } 104 | }, 105 | "notification-url": "https://packagist.org/downloads/", 106 | "license": [ 107 | "BSD-3-Clause" 108 | ], 109 | "authors": [ 110 | { 111 | "name": "Nikita Popov" 112 | } 113 | ], 114 | "description": "A PHP parser written in PHP", 115 | "keywords": [ 116 | "parser", 117 | "php" 118 | ], 119 | "support": { 120 | "issues": "https://github.com/nikic/PHP-Parser/issues", 121 | "source": "https://github.com/nikic/PHP-Parser/tree/v4.17.1" 122 | }, 123 | "time": "2023-08-13T19:53:39+00:00" 124 | }, 125 | { 126 | "name": "phar-io/manifest", 127 | "version": "2.0.3", 128 | "source": { 129 | "type": "git", 130 | "url": "https://github.com/phar-io/manifest.git", 131 | "reference": "97803eca37d319dfa7826cc2437fc020857acb53" 132 | }, 133 | "dist": { 134 | "type": "zip", 135 | "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", 136 | "reference": "97803eca37d319dfa7826cc2437fc020857acb53", 137 | "shasum": "" 138 | }, 139 | "require": { 140 | "ext-dom": "*", 141 | "ext-phar": "*", 142 | "ext-xmlwriter": "*", 143 | "phar-io/version": "^3.0.1", 144 | "php": "^7.2 || ^8.0" 145 | }, 146 | "type": "library", 147 | "extra": { 148 | "branch-alias": { 149 | "dev-master": "2.0.x-dev" 150 | } 151 | }, 152 | "autoload": { 153 | "classmap": [ 154 | "src/" 155 | ] 156 | }, 157 | "notification-url": "https://packagist.org/downloads/", 158 | "license": [ 159 | "BSD-3-Clause" 160 | ], 161 | "authors": [ 162 | { 163 | "name": "Arne Blankerts", 164 | "email": "arne@blankerts.de", 165 | "role": "Developer" 166 | }, 167 | { 168 | "name": "Sebastian Heuer", 169 | "email": "sebastian@phpeople.de", 170 | "role": "Developer" 171 | }, 172 | { 173 | "name": "Sebastian Bergmann", 174 | "email": "sebastian@phpunit.de", 175 | "role": "Developer" 176 | } 177 | ], 178 | "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", 179 | "support": { 180 | "issues": "https://github.com/phar-io/manifest/issues", 181 | "source": "https://github.com/phar-io/manifest/tree/2.0.3" 182 | }, 183 | "time": "2021-07-20T11:28:43+00:00" 184 | }, 185 | { 186 | "name": "phar-io/version", 187 | "version": "3.2.1", 188 | "source": { 189 | "type": "git", 190 | "url": "https://github.com/phar-io/version.git", 191 | "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" 192 | }, 193 | "dist": { 194 | "type": "zip", 195 | "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", 196 | "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", 197 | "shasum": "" 198 | }, 199 | "require": { 200 | "php": "^7.2 || ^8.0" 201 | }, 202 | "type": "library", 203 | "autoload": { 204 | "classmap": [ 205 | "src/" 206 | ] 207 | }, 208 | "notification-url": "https://packagist.org/downloads/", 209 | "license": [ 210 | "BSD-3-Clause" 211 | ], 212 | "authors": [ 213 | { 214 | "name": "Arne Blankerts", 215 | "email": "arne@blankerts.de", 216 | "role": "Developer" 217 | }, 218 | { 219 | "name": "Sebastian Heuer", 220 | "email": "sebastian@phpeople.de", 221 | "role": "Developer" 222 | }, 223 | { 224 | "name": "Sebastian Bergmann", 225 | "email": "sebastian@phpunit.de", 226 | "role": "Developer" 227 | } 228 | ], 229 | "description": "Library for handling version information and constraints", 230 | "support": { 231 | "issues": "https://github.com/phar-io/version/issues", 232 | "source": "https://github.com/phar-io/version/tree/3.2.1" 233 | }, 234 | "time": "2022-02-21T01:04:05+00:00" 235 | }, 236 | { 237 | "name": "phpunit/php-code-coverage", 238 | "version": "10.1.7", 239 | "source": { 240 | "type": "git", 241 | "url": "https://github.com/sebastianbergmann/php-code-coverage.git", 242 | "reference": "355324ca4980b8916c18b9db29f3ef484078f26e" 243 | }, 244 | "dist": { 245 | "type": "zip", 246 | "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/355324ca4980b8916c18b9db29f3ef484078f26e", 247 | "reference": "355324ca4980b8916c18b9db29f3ef484078f26e", 248 | "shasum": "" 249 | }, 250 | "require": { 251 | "ext-dom": "*", 252 | "ext-libxml": "*", 253 | "ext-xmlwriter": "*", 254 | "nikic/php-parser": "^4.15", 255 | "php": ">=8.1", 256 | "phpunit/php-file-iterator": "^4.0", 257 | "phpunit/php-text-template": "^3.0", 258 | "sebastian/code-unit-reverse-lookup": "^3.0", 259 | "sebastian/complexity": "^3.0", 260 | "sebastian/environment": "^6.0", 261 | "sebastian/lines-of-code": "^2.0", 262 | "sebastian/version": "^4.0", 263 | "theseer/tokenizer": "^1.2.0" 264 | }, 265 | "require-dev": { 266 | "phpunit/phpunit": "^10.1" 267 | }, 268 | "suggest": { 269 | "ext-pcov": "PHP extension that provides line coverage", 270 | "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" 271 | }, 272 | "type": "library", 273 | "extra": { 274 | "branch-alias": { 275 | "dev-main": "10.1-dev" 276 | } 277 | }, 278 | "autoload": { 279 | "classmap": [ 280 | "src/" 281 | ] 282 | }, 283 | "notification-url": "https://packagist.org/downloads/", 284 | "license": [ 285 | "BSD-3-Clause" 286 | ], 287 | "authors": [ 288 | { 289 | "name": "Sebastian Bergmann", 290 | "email": "sebastian@phpunit.de", 291 | "role": "lead" 292 | } 293 | ], 294 | "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", 295 | "homepage": "https://github.com/sebastianbergmann/php-code-coverage", 296 | "keywords": [ 297 | "coverage", 298 | "testing", 299 | "xunit" 300 | ], 301 | "support": { 302 | "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", 303 | "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", 304 | "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.7" 305 | }, 306 | "funding": [ 307 | { 308 | "url": "https://github.com/sebastianbergmann", 309 | "type": "github" 310 | } 311 | ], 312 | "time": "2023-10-04T15:34:17+00:00" 313 | }, 314 | { 315 | "name": "phpunit/php-file-iterator", 316 | "version": "4.1.0", 317 | "source": { 318 | "type": "git", 319 | "url": "https://github.com/sebastianbergmann/php-file-iterator.git", 320 | "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c" 321 | }, 322 | "dist": { 323 | "type": "zip", 324 | "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a95037b6d9e608ba092da1b23931e537cadc3c3c", 325 | "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c", 326 | "shasum": "" 327 | }, 328 | "require": { 329 | "php": ">=8.1" 330 | }, 331 | "require-dev": { 332 | "phpunit/phpunit": "^10.0" 333 | }, 334 | "type": "library", 335 | "extra": { 336 | "branch-alias": { 337 | "dev-main": "4.0-dev" 338 | } 339 | }, 340 | "autoload": { 341 | "classmap": [ 342 | "src/" 343 | ] 344 | }, 345 | "notification-url": "https://packagist.org/downloads/", 346 | "license": [ 347 | "BSD-3-Clause" 348 | ], 349 | "authors": [ 350 | { 351 | "name": "Sebastian Bergmann", 352 | "email": "sebastian@phpunit.de", 353 | "role": "lead" 354 | } 355 | ], 356 | "description": "FilterIterator implementation that filters files based on a list of suffixes.", 357 | "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", 358 | "keywords": [ 359 | "filesystem", 360 | "iterator" 361 | ], 362 | "support": { 363 | "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", 364 | "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", 365 | "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/4.1.0" 366 | }, 367 | "funding": [ 368 | { 369 | "url": "https://github.com/sebastianbergmann", 370 | "type": "github" 371 | } 372 | ], 373 | "time": "2023-08-31T06:24:48+00:00" 374 | }, 375 | { 376 | "name": "phpunit/php-invoker", 377 | "version": "4.0.0", 378 | "source": { 379 | "type": "git", 380 | "url": "https://github.com/sebastianbergmann/php-invoker.git", 381 | "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7" 382 | }, 383 | "dist": { 384 | "type": "zip", 385 | "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7", 386 | "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7", 387 | "shasum": "" 388 | }, 389 | "require": { 390 | "php": ">=8.1" 391 | }, 392 | "require-dev": { 393 | "ext-pcntl": "*", 394 | "phpunit/phpunit": "^10.0" 395 | }, 396 | "suggest": { 397 | "ext-pcntl": "*" 398 | }, 399 | "type": "library", 400 | "extra": { 401 | "branch-alias": { 402 | "dev-main": "4.0-dev" 403 | } 404 | }, 405 | "autoload": { 406 | "classmap": [ 407 | "src/" 408 | ] 409 | }, 410 | "notification-url": "https://packagist.org/downloads/", 411 | "license": [ 412 | "BSD-3-Clause" 413 | ], 414 | "authors": [ 415 | { 416 | "name": "Sebastian Bergmann", 417 | "email": "sebastian@phpunit.de", 418 | "role": "lead" 419 | } 420 | ], 421 | "description": "Invoke callables with a timeout", 422 | "homepage": "https://github.com/sebastianbergmann/php-invoker/", 423 | "keywords": [ 424 | "process" 425 | ], 426 | "support": { 427 | "issues": "https://github.com/sebastianbergmann/php-invoker/issues", 428 | "source": "https://github.com/sebastianbergmann/php-invoker/tree/4.0.0" 429 | }, 430 | "funding": [ 431 | { 432 | "url": "https://github.com/sebastianbergmann", 433 | "type": "github" 434 | } 435 | ], 436 | "time": "2023-02-03T06:56:09+00:00" 437 | }, 438 | { 439 | "name": "phpunit/php-text-template", 440 | "version": "3.0.1", 441 | "source": { 442 | "type": "git", 443 | "url": "https://github.com/sebastianbergmann/php-text-template.git", 444 | "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748" 445 | }, 446 | "dist": { 447 | "type": "zip", 448 | "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/0c7b06ff49e3d5072f057eb1fa59258bf287a748", 449 | "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748", 450 | "shasum": "" 451 | }, 452 | "require": { 453 | "php": ">=8.1" 454 | }, 455 | "require-dev": { 456 | "phpunit/phpunit": "^10.0" 457 | }, 458 | "type": "library", 459 | "extra": { 460 | "branch-alias": { 461 | "dev-main": "3.0-dev" 462 | } 463 | }, 464 | "autoload": { 465 | "classmap": [ 466 | "src/" 467 | ] 468 | }, 469 | "notification-url": "https://packagist.org/downloads/", 470 | "license": [ 471 | "BSD-3-Clause" 472 | ], 473 | "authors": [ 474 | { 475 | "name": "Sebastian Bergmann", 476 | "email": "sebastian@phpunit.de", 477 | "role": "lead" 478 | } 479 | ], 480 | "description": "Simple template engine.", 481 | "homepage": "https://github.com/sebastianbergmann/php-text-template/", 482 | "keywords": [ 483 | "template" 484 | ], 485 | "support": { 486 | "issues": "https://github.com/sebastianbergmann/php-text-template/issues", 487 | "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", 488 | "source": "https://github.com/sebastianbergmann/php-text-template/tree/3.0.1" 489 | }, 490 | "funding": [ 491 | { 492 | "url": "https://github.com/sebastianbergmann", 493 | "type": "github" 494 | } 495 | ], 496 | "time": "2023-08-31T14:07:24+00:00" 497 | }, 498 | { 499 | "name": "phpunit/php-timer", 500 | "version": "6.0.0", 501 | "source": { 502 | "type": "git", 503 | "url": "https://github.com/sebastianbergmann/php-timer.git", 504 | "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d" 505 | }, 506 | "dist": { 507 | "type": "zip", 508 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/e2a2d67966e740530f4a3343fe2e030ffdc1161d", 509 | "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d", 510 | "shasum": "" 511 | }, 512 | "require": { 513 | "php": ">=8.1" 514 | }, 515 | "require-dev": { 516 | "phpunit/phpunit": "^10.0" 517 | }, 518 | "type": "library", 519 | "extra": { 520 | "branch-alias": { 521 | "dev-main": "6.0-dev" 522 | } 523 | }, 524 | "autoload": { 525 | "classmap": [ 526 | "src/" 527 | ] 528 | }, 529 | "notification-url": "https://packagist.org/downloads/", 530 | "license": [ 531 | "BSD-3-Clause" 532 | ], 533 | "authors": [ 534 | { 535 | "name": "Sebastian Bergmann", 536 | "email": "sebastian@phpunit.de", 537 | "role": "lead" 538 | } 539 | ], 540 | "description": "Utility class for timing", 541 | "homepage": "https://github.com/sebastianbergmann/php-timer/", 542 | "keywords": [ 543 | "timer" 544 | ], 545 | "support": { 546 | "issues": "https://github.com/sebastianbergmann/php-timer/issues", 547 | "source": "https://github.com/sebastianbergmann/php-timer/tree/6.0.0" 548 | }, 549 | "funding": [ 550 | { 551 | "url": "https://github.com/sebastianbergmann", 552 | "type": "github" 553 | } 554 | ], 555 | "time": "2023-02-03T06:57:52+00:00" 556 | }, 557 | { 558 | "name": "phpunit/phpunit", 559 | "version": "10.4.1", 560 | "source": { 561 | "type": "git", 562 | "url": "https://github.com/sebastianbergmann/phpunit.git", 563 | "reference": "62bd7af13d282deeb95650077d28ba3600ca321c" 564 | }, 565 | "dist": { 566 | "type": "zip", 567 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/62bd7af13d282deeb95650077d28ba3600ca321c", 568 | "reference": "62bd7af13d282deeb95650077d28ba3600ca321c", 569 | "shasum": "" 570 | }, 571 | "require": { 572 | "ext-dom": "*", 573 | "ext-json": "*", 574 | "ext-libxml": "*", 575 | "ext-mbstring": "*", 576 | "ext-xml": "*", 577 | "ext-xmlwriter": "*", 578 | "myclabs/deep-copy": "^1.10.1", 579 | "phar-io/manifest": "^2.0.3", 580 | "phar-io/version": "^3.0.2", 581 | "php": ">=8.1", 582 | "phpunit/php-code-coverage": "^10.1.5", 583 | "phpunit/php-file-iterator": "^4.0", 584 | "phpunit/php-invoker": "^4.0", 585 | "phpunit/php-text-template": "^3.0", 586 | "phpunit/php-timer": "^6.0", 587 | "sebastian/cli-parser": "^2.0", 588 | "sebastian/code-unit": "^2.0", 589 | "sebastian/comparator": "^5.0", 590 | "sebastian/diff": "^5.0", 591 | "sebastian/environment": "^6.0", 592 | "sebastian/exporter": "^5.1", 593 | "sebastian/global-state": "^6.0.1", 594 | "sebastian/object-enumerator": "^5.0", 595 | "sebastian/recursion-context": "^5.0", 596 | "sebastian/type": "^4.0", 597 | "sebastian/version": "^4.0" 598 | }, 599 | "suggest": { 600 | "ext-soap": "To be able to generate mocks based on WSDL files" 601 | }, 602 | "bin": [ 603 | "phpunit" 604 | ], 605 | "type": "library", 606 | "extra": { 607 | "branch-alias": { 608 | "dev-main": "10.4-dev" 609 | } 610 | }, 611 | "autoload": { 612 | "files": [ 613 | "src/Framework/Assert/Functions.php" 614 | ], 615 | "classmap": [ 616 | "src/" 617 | ] 618 | }, 619 | "notification-url": "https://packagist.org/downloads/", 620 | "license": [ 621 | "BSD-3-Clause" 622 | ], 623 | "authors": [ 624 | { 625 | "name": "Sebastian Bergmann", 626 | "email": "sebastian@phpunit.de", 627 | "role": "lead" 628 | } 629 | ], 630 | "description": "The PHP Unit Testing framework.", 631 | "homepage": "https://phpunit.de/", 632 | "keywords": [ 633 | "phpunit", 634 | "testing", 635 | "xunit" 636 | ], 637 | "support": { 638 | "issues": "https://github.com/sebastianbergmann/phpunit/issues", 639 | "security": "https://github.com/sebastianbergmann/phpunit/security/policy", 640 | "source": "https://github.com/sebastianbergmann/phpunit/tree/10.4.1" 641 | }, 642 | "funding": [ 643 | { 644 | "url": "https://phpunit.de/sponsors.html", 645 | "type": "custom" 646 | }, 647 | { 648 | "url": "https://github.com/sebastianbergmann", 649 | "type": "github" 650 | }, 651 | { 652 | "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", 653 | "type": "tidelift" 654 | } 655 | ], 656 | "time": "2023-10-08T05:01:11+00:00" 657 | }, 658 | { 659 | "name": "sebastian/cli-parser", 660 | "version": "2.0.0", 661 | "source": { 662 | "type": "git", 663 | "url": "https://github.com/sebastianbergmann/cli-parser.git", 664 | "reference": "efdc130dbbbb8ef0b545a994fd811725c5282cae" 665 | }, 666 | "dist": { 667 | "type": "zip", 668 | "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/efdc130dbbbb8ef0b545a994fd811725c5282cae", 669 | "reference": "efdc130dbbbb8ef0b545a994fd811725c5282cae", 670 | "shasum": "" 671 | }, 672 | "require": { 673 | "php": ">=8.1" 674 | }, 675 | "require-dev": { 676 | "phpunit/phpunit": "^10.0" 677 | }, 678 | "type": "library", 679 | "extra": { 680 | "branch-alias": { 681 | "dev-main": "2.0-dev" 682 | } 683 | }, 684 | "autoload": { 685 | "classmap": [ 686 | "src/" 687 | ] 688 | }, 689 | "notification-url": "https://packagist.org/downloads/", 690 | "license": [ 691 | "BSD-3-Clause" 692 | ], 693 | "authors": [ 694 | { 695 | "name": "Sebastian Bergmann", 696 | "email": "sebastian@phpunit.de", 697 | "role": "lead" 698 | } 699 | ], 700 | "description": "Library for parsing CLI options", 701 | "homepage": "https://github.com/sebastianbergmann/cli-parser", 702 | "support": { 703 | "issues": "https://github.com/sebastianbergmann/cli-parser/issues", 704 | "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.0" 705 | }, 706 | "funding": [ 707 | { 708 | "url": "https://github.com/sebastianbergmann", 709 | "type": "github" 710 | } 711 | ], 712 | "time": "2023-02-03T06:58:15+00:00" 713 | }, 714 | { 715 | "name": "sebastian/code-unit", 716 | "version": "2.0.0", 717 | "source": { 718 | "type": "git", 719 | "url": "https://github.com/sebastianbergmann/code-unit.git", 720 | "reference": "a81fee9eef0b7a76af11d121767abc44c104e503" 721 | }, 722 | "dist": { 723 | "type": "zip", 724 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/a81fee9eef0b7a76af11d121767abc44c104e503", 725 | "reference": "a81fee9eef0b7a76af11d121767abc44c104e503", 726 | "shasum": "" 727 | }, 728 | "require": { 729 | "php": ">=8.1" 730 | }, 731 | "require-dev": { 732 | "phpunit/phpunit": "^10.0" 733 | }, 734 | "type": "library", 735 | "extra": { 736 | "branch-alias": { 737 | "dev-main": "2.0-dev" 738 | } 739 | }, 740 | "autoload": { 741 | "classmap": [ 742 | "src/" 743 | ] 744 | }, 745 | "notification-url": "https://packagist.org/downloads/", 746 | "license": [ 747 | "BSD-3-Clause" 748 | ], 749 | "authors": [ 750 | { 751 | "name": "Sebastian Bergmann", 752 | "email": "sebastian@phpunit.de", 753 | "role": "lead" 754 | } 755 | ], 756 | "description": "Collection of value objects that represent the PHP code units", 757 | "homepage": "https://github.com/sebastianbergmann/code-unit", 758 | "support": { 759 | "issues": "https://github.com/sebastianbergmann/code-unit/issues", 760 | "source": "https://github.com/sebastianbergmann/code-unit/tree/2.0.0" 761 | }, 762 | "funding": [ 763 | { 764 | "url": "https://github.com/sebastianbergmann", 765 | "type": "github" 766 | } 767 | ], 768 | "time": "2023-02-03T06:58:43+00:00" 769 | }, 770 | { 771 | "name": "sebastian/code-unit-reverse-lookup", 772 | "version": "3.0.0", 773 | "source": { 774 | "type": "git", 775 | "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", 776 | "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d" 777 | }, 778 | "dist": { 779 | "type": "zip", 780 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/5e3a687f7d8ae33fb362c5c0743794bbb2420a1d", 781 | "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d", 782 | "shasum": "" 783 | }, 784 | "require": { 785 | "php": ">=8.1" 786 | }, 787 | "require-dev": { 788 | "phpunit/phpunit": "^10.0" 789 | }, 790 | "type": "library", 791 | "extra": { 792 | "branch-alias": { 793 | "dev-main": "3.0-dev" 794 | } 795 | }, 796 | "autoload": { 797 | "classmap": [ 798 | "src/" 799 | ] 800 | }, 801 | "notification-url": "https://packagist.org/downloads/", 802 | "license": [ 803 | "BSD-3-Clause" 804 | ], 805 | "authors": [ 806 | { 807 | "name": "Sebastian Bergmann", 808 | "email": "sebastian@phpunit.de" 809 | } 810 | ], 811 | "description": "Looks up which function or method a line of code belongs to", 812 | "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", 813 | "support": { 814 | "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", 815 | "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/3.0.0" 816 | }, 817 | "funding": [ 818 | { 819 | "url": "https://github.com/sebastianbergmann", 820 | "type": "github" 821 | } 822 | ], 823 | "time": "2023-02-03T06:59:15+00:00" 824 | }, 825 | { 826 | "name": "sebastian/comparator", 827 | "version": "5.0.1", 828 | "source": { 829 | "type": "git", 830 | "url": "https://github.com/sebastianbergmann/comparator.git", 831 | "reference": "2db5010a484d53ebf536087a70b4a5423c102372" 832 | }, 833 | "dist": { 834 | "type": "zip", 835 | "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2db5010a484d53ebf536087a70b4a5423c102372", 836 | "reference": "2db5010a484d53ebf536087a70b4a5423c102372", 837 | "shasum": "" 838 | }, 839 | "require": { 840 | "ext-dom": "*", 841 | "ext-mbstring": "*", 842 | "php": ">=8.1", 843 | "sebastian/diff": "^5.0", 844 | "sebastian/exporter": "^5.0" 845 | }, 846 | "require-dev": { 847 | "phpunit/phpunit": "^10.3" 848 | }, 849 | "type": "library", 850 | "extra": { 851 | "branch-alias": { 852 | "dev-main": "5.0-dev" 853 | } 854 | }, 855 | "autoload": { 856 | "classmap": [ 857 | "src/" 858 | ] 859 | }, 860 | "notification-url": "https://packagist.org/downloads/", 861 | "license": [ 862 | "BSD-3-Clause" 863 | ], 864 | "authors": [ 865 | { 866 | "name": "Sebastian Bergmann", 867 | "email": "sebastian@phpunit.de" 868 | }, 869 | { 870 | "name": "Jeff Welch", 871 | "email": "whatthejeff@gmail.com" 872 | }, 873 | { 874 | "name": "Volker Dusch", 875 | "email": "github@wallbash.com" 876 | }, 877 | { 878 | "name": "Bernhard Schussek", 879 | "email": "bschussek@2bepublished.at" 880 | } 881 | ], 882 | "description": "Provides the functionality to compare PHP values for equality", 883 | "homepage": "https://github.com/sebastianbergmann/comparator", 884 | "keywords": [ 885 | "comparator", 886 | "compare", 887 | "equality" 888 | ], 889 | "support": { 890 | "issues": "https://github.com/sebastianbergmann/comparator/issues", 891 | "security": "https://github.com/sebastianbergmann/comparator/security/policy", 892 | "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.1" 893 | }, 894 | "funding": [ 895 | { 896 | "url": "https://github.com/sebastianbergmann", 897 | "type": "github" 898 | } 899 | ], 900 | "time": "2023-08-14T13:18:12+00:00" 901 | }, 902 | { 903 | "name": "sebastian/complexity", 904 | "version": "3.1.0", 905 | "source": { 906 | "type": "git", 907 | "url": "https://github.com/sebastianbergmann/complexity.git", 908 | "reference": "68cfb347a44871f01e33ab0ef8215966432f6957" 909 | }, 910 | "dist": { 911 | "type": "zip", 912 | "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68cfb347a44871f01e33ab0ef8215966432f6957", 913 | "reference": "68cfb347a44871f01e33ab0ef8215966432f6957", 914 | "shasum": "" 915 | }, 916 | "require": { 917 | "nikic/php-parser": "^4.10", 918 | "php": ">=8.1" 919 | }, 920 | "require-dev": { 921 | "phpunit/phpunit": "^10.0" 922 | }, 923 | "type": "library", 924 | "extra": { 925 | "branch-alias": { 926 | "dev-main": "3.1-dev" 927 | } 928 | }, 929 | "autoload": { 930 | "classmap": [ 931 | "src/" 932 | ] 933 | }, 934 | "notification-url": "https://packagist.org/downloads/", 935 | "license": [ 936 | "BSD-3-Clause" 937 | ], 938 | "authors": [ 939 | { 940 | "name": "Sebastian Bergmann", 941 | "email": "sebastian@phpunit.de", 942 | "role": "lead" 943 | } 944 | ], 945 | "description": "Library for calculating the complexity of PHP code units", 946 | "homepage": "https://github.com/sebastianbergmann/complexity", 947 | "support": { 948 | "issues": "https://github.com/sebastianbergmann/complexity/issues", 949 | "security": "https://github.com/sebastianbergmann/complexity/security/policy", 950 | "source": "https://github.com/sebastianbergmann/complexity/tree/3.1.0" 951 | }, 952 | "funding": [ 953 | { 954 | "url": "https://github.com/sebastianbergmann", 955 | "type": "github" 956 | } 957 | ], 958 | "time": "2023-09-28T11:50:59+00:00" 959 | }, 960 | { 961 | "name": "sebastian/diff", 962 | "version": "5.0.3", 963 | "source": { 964 | "type": "git", 965 | "url": "https://github.com/sebastianbergmann/diff.git", 966 | "reference": "912dc2fbe3e3c1e7873313cc801b100b6c68c87b" 967 | }, 968 | "dist": { 969 | "type": "zip", 970 | "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/912dc2fbe3e3c1e7873313cc801b100b6c68c87b", 971 | "reference": "912dc2fbe3e3c1e7873313cc801b100b6c68c87b", 972 | "shasum": "" 973 | }, 974 | "require": { 975 | "php": ">=8.1" 976 | }, 977 | "require-dev": { 978 | "phpunit/phpunit": "^10.0", 979 | "symfony/process": "^4.2 || ^5" 980 | }, 981 | "type": "library", 982 | "extra": { 983 | "branch-alias": { 984 | "dev-main": "5.0-dev" 985 | } 986 | }, 987 | "autoload": { 988 | "classmap": [ 989 | "src/" 990 | ] 991 | }, 992 | "notification-url": "https://packagist.org/downloads/", 993 | "license": [ 994 | "BSD-3-Clause" 995 | ], 996 | "authors": [ 997 | { 998 | "name": "Sebastian Bergmann", 999 | "email": "sebastian@phpunit.de" 1000 | }, 1001 | { 1002 | "name": "Kore Nordmann", 1003 | "email": "mail@kore-nordmann.de" 1004 | } 1005 | ], 1006 | "description": "Diff implementation", 1007 | "homepage": "https://github.com/sebastianbergmann/diff", 1008 | "keywords": [ 1009 | "diff", 1010 | "udiff", 1011 | "unidiff", 1012 | "unified diff" 1013 | ], 1014 | "support": { 1015 | "issues": "https://github.com/sebastianbergmann/diff/issues", 1016 | "security": "https://github.com/sebastianbergmann/diff/security/policy", 1017 | "source": "https://github.com/sebastianbergmann/diff/tree/5.0.3" 1018 | }, 1019 | "funding": [ 1020 | { 1021 | "url": "https://github.com/sebastianbergmann", 1022 | "type": "github" 1023 | } 1024 | ], 1025 | "time": "2023-05-01T07:48:21+00:00" 1026 | }, 1027 | { 1028 | "name": "sebastian/environment", 1029 | "version": "6.0.1", 1030 | "source": { 1031 | "type": "git", 1032 | "url": "https://github.com/sebastianbergmann/environment.git", 1033 | "reference": "43c751b41d74f96cbbd4e07b7aec9675651e2951" 1034 | }, 1035 | "dist": { 1036 | "type": "zip", 1037 | "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/43c751b41d74f96cbbd4e07b7aec9675651e2951", 1038 | "reference": "43c751b41d74f96cbbd4e07b7aec9675651e2951", 1039 | "shasum": "" 1040 | }, 1041 | "require": { 1042 | "php": ">=8.1" 1043 | }, 1044 | "require-dev": { 1045 | "phpunit/phpunit": "^10.0" 1046 | }, 1047 | "suggest": { 1048 | "ext-posix": "*" 1049 | }, 1050 | "type": "library", 1051 | "extra": { 1052 | "branch-alias": { 1053 | "dev-main": "6.0-dev" 1054 | } 1055 | }, 1056 | "autoload": { 1057 | "classmap": [ 1058 | "src/" 1059 | ] 1060 | }, 1061 | "notification-url": "https://packagist.org/downloads/", 1062 | "license": [ 1063 | "BSD-3-Clause" 1064 | ], 1065 | "authors": [ 1066 | { 1067 | "name": "Sebastian Bergmann", 1068 | "email": "sebastian@phpunit.de" 1069 | } 1070 | ], 1071 | "description": "Provides functionality to handle HHVM/PHP environments", 1072 | "homepage": "https://github.com/sebastianbergmann/environment", 1073 | "keywords": [ 1074 | "Xdebug", 1075 | "environment", 1076 | "hhvm" 1077 | ], 1078 | "support": { 1079 | "issues": "https://github.com/sebastianbergmann/environment/issues", 1080 | "security": "https://github.com/sebastianbergmann/environment/security/policy", 1081 | "source": "https://github.com/sebastianbergmann/environment/tree/6.0.1" 1082 | }, 1083 | "funding": [ 1084 | { 1085 | "url": "https://github.com/sebastianbergmann", 1086 | "type": "github" 1087 | } 1088 | ], 1089 | "time": "2023-04-11T05:39:26+00:00" 1090 | }, 1091 | { 1092 | "name": "sebastian/exporter", 1093 | "version": "5.1.1", 1094 | "source": { 1095 | "type": "git", 1096 | "url": "https://github.com/sebastianbergmann/exporter.git", 1097 | "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc" 1098 | }, 1099 | "dist": { 1100 | "type": "zip", 1101 | "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/64f51654862e0f5e318db7e9dcc2292c63cdbddc", 1102 | "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc", 1103 | "shasum": "" 1104 | }, 1105 | "require": { 1106 | "ext-mbstring": "*", 1107 | "php": ">=8.1", 1108 | "sebastian/recursion-context": "^5.0" 1109 | }, 1110 | "require-dev": { 1111 | "phpunit/phpunit": "^10.0" 1112 | }, 1113 | "type": "library", 1114 | "extra": { 1115 | "branch-alias": { 1116 | "dev-main": "5.1-dev" 1117 | } 1118 | }, 1119 | "autoload": { 1120 | "classmap": [ 1121 | "src/" 1122 | ] 1123 | }, 1124 | "notification-url": "https://packagist.org/downloads/", 1125 | "license": [ 1126 | "BSD-3-Clause" 1127 | ], 1128 | "authors": [ 1129 | { 1130 | "name": "Sebastian Bergmann", 1131 | "email": "sebastian@phpunit.de" 1132 | }, 1133 | { 1134 | "name": "Jeff Welch", 1135 | "email": "whatthejeff@gmail.com" 1136 | }, 1137 | { 1138 | "name": "Volker Dusch", 1139 | "email": "github@wallbash.com" 1140 | }, 1141 | { 1142 | "name": "Adam Harvey", 1143 | "email": "aharvey@php.net" 1144 | }, 1145 | { 1146 | "name": "Bernhard Schussek", 1147 | "email": "bschussek@gmail.com" 1148 | } 1149 | ], 1150 | "description": "Provides the functionality to export PHP variables for visualization", 1151 | "homepage": "https://www.github.com/sebastianbergmann/exporter", 1152 | "keywords": [ 1153 | "export", 1154 | "exporter" 1155 | ], 1156 | "support": { 1157 | "issues": "https://github.com/sebastianbergmann/exporter/issues", 1158 | "security": "https://github.com/sebastianbergmann/exporter/security/policy", 1159 | "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.1" 1160 | }, 1161 | "funding": [ 1162 | { 1163 | "url": "https://github.com/sebastianbergmann", 1164 | "type": "github" 1165 | } 1166 | ], 1167 | "time": "2023-09-24T13:22:09+00:00" 1168 | }, 1169 | { 1170 | "name": "sebastian/global-state", 1171 | "version": "6.0.1", 1172 | "source": { 1173 | "type": "git", 1174 | "url": "https://github.com/sebastianbergmann/global-state.git", 1175 | "reference": "7ea9ead78f6d380d2a667864c132c2f7b83055e4" 1176 | }, 1177 | "dist": { 1178 | "type": "zip", 1179 | "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/7ea9ead78f6d380d2a667864c132c2f7b83055e4", 1180 | "reference": "7ea9ead78f6d380d2a667864c132c2f7b83055e4", 1181 | "shasum": "" 1182 | }, 1183 | "require": { 1184 | "php": ">=8.1", 1185 | "sebastian/object-reflector": "^3.0", 1186 | "sebastian/recursion-context": "^5.0" 1187 | }, 1188 | "require-dev": { 1189 | "ext-dom": "*", 1190 | "phpunit/phpunit": "^10.0" 1191 | }, 1192 | "type": "library", 1193 | "extra": { 1194 | "branch-alias": { 1195 | "dev-main": "6.0-dev" 1196 | } 1197 | }, 1198 | "autoload": { 1199 | "classmap": [ 1200 | "src/" 1201 | ] 1202 | }, 1203 | "notification-url": "https://packagist.org/downloads/", 1204 | "license": [ 1205 | "BSD-3-Clause" 1206 | ], 1207 | "authors": [ 1208 | { 1209 | "name": "Sebastian Bergmann", 1210 | "email": "sebastian@phpunit.de" 1211 | } 1212 | ], 1213 | "description": "Snapshotting of global state", 1214 | "homepage": "http://www.github.com/sebastianbergmann/global-state", 1215 | "keywords": [ 1216 | "global state" 1217 | ], 1218 | "support": { 1219 | "issues": "https://github.com/sebastianbergmann/global-state/issues", 1220 | "security": "https://github.com/sebastianbergmann/global-state/security/policy", 1221 | "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.1" 1222 | }, 1223 | "funding": [ 1224 | { 1225 | "url": "https://github.com/sebastianbergmann", 1226 | "type": "github" 1227 | } 1228 | ], 1229 | "time": "2023-07-19T07:19:23+00:00" 1230 | }, 1231 | { 1232 | "name": "sebastian/lines-of-code", 1233 | "version": "2.0.1", 1234 | "source": { 1235 | "type": "git", 1236 | "url": "https://github.com/sebastianbergmann/lines-of-code.git", 1237 | "reference": "649e40d279e243d985aa8fb6e74dd5bb28dc185d" 1238 | }, 1239 | "dist": { 1240 | "type": "zip", 1241 | "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/649e40d279e243d985aa8fb6e74dd5bb28dc185d", 1242 | "reference": "649e40d279e243d985aa8fb6e74dd5bb28dc185d", 1243 | "shasum": "" 1244 | }, 1245 | "require": { 1246 | "nikic/php-parser": "^4.10", 1247 | "php": ">=8.1" 1248 | }, 1249 | "require-dev": { 1250 | "phpunit/phpunit": "^10.0" 1251 | }, 1252 | "type": "library", 1253 | "extra": { 1254 | "branch-alias": { 1255 | "dev-main": "2.0-dev" 1256 | } 1257 | }, 1258 | "autoload": { 1259 | "classmap": [ 1260 | "src/" 1261 | ] 1262 | }, 1263 | "notification-url": "https://packagist.org/downloads/", 1264 | "license": [ 1265 | "BSD-3-Clause" 1266 | ], 1267 | "authors": [ 1268 | { 1269 | "name": "Sebastian Bergmann", 1270 | "email": "sebastian@phpunit.de", 1271 | "role": "lead" 1272 | } 1273 | ], 1274 | "description": "Library for counting the lines of code in PHP source code", 1275 | "homepage": "https://github.com/sebastianbergmann/lines-of-code", 1276 | "support": { 1277 | "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", 1278 | "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", 1279 | "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.1" 1280 | }, 1281 | "funding": [ 1282 | { 1283 | "url": "https://github.com/sebastianbergmann", 1284 | "type": "github" 1285 | } 1286 | ], 1287 | "time": "2023-08-31T09:25:50+00:00" 1288 | }, 1289 | { 1290 | "name": "sebastian/object-enumerator", 1291 | "version": "5.0.0", 1292 | "source": { 1293 | "type": "git", 1294 | "url": "https://github.com/sebastianbergmann/object-enumerator.git", 1295 | "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906" 1296 | }, 1297 | "dist": { 1298 | "type": "zip", 1299 | "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/202d0e344a580d7f7d04b3fafce6933e59dae906", 1300 | "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906", 1301 | "shasum": "" 1302 | }, 1303 | "require": { 1304 | "php": ">=8.1", 1305 | "sebastian/object-reflector": "^3.0", 1306 | "sebastian/recursion-context": "^5.0" 1307 | }, 1308 | "require-dev": { 1309 | "phpunit/phpunit": "^10.0" 1310 | }, 1311 | "type": "library", 1312 | "extra": { 1313 | "branch-alias": { 1314 | "dev-main": "5.0-dev" 1315 | } 1316 | }, 1317 | "autoload": { 1318 | "classmap": [ 1319 | "src/" 1320 | ] 1321 | }, 1322 | "notification-url": "https://packagist.org/downloads/", 1323 | "license": [ 1324 | "BSD-3-Clause" 1325 | ], 1326 | "authors": [ 1327 | { 1328 | "name": "Sebastian Bergmann", 1329 | "email": "sebastian@phpunit.de" 1330 | } 1331 | ], 1332 | "description": "Traverses array structures and object graphs to enumerate all referenced objects", 1333 | "homepage": "https://github.com/sebastianbergmann/object-enumerator/", 1334 | "support": { 1335 | "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", 1336 | "source": "https://github.com/sebastianbergmann/object-enumerator/tree/5.0.0" 1337 | }, 1338 | "funding": [ 1339 | { 1340 | "url": "https://github.com/sebastianbergmann", 1341 | "type": "github" 1342 | } 1343 | ], 1344 | "time": "2023-02-03T07:08:32+00:00" 1345 | }, 1346 | { 1347 | "name": "sebastian/object-reflector", 1348 | "version": "3.0.0", 1349 | "source": { 1350 | "type": "git", 1351 | "url": "https://github.com/sebastianbergmann/object-reflector.git", 1352 | "reference": "24ed13d98130f0e7122df55d06c5c4942a577957" 1353 | }, 1354 | "dist": { 1355 | "type": "zip", 1356 | "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/24ed13d98130f0e7122df55d06c5c4942a577957", 1357 | "reference": "24ed13d98130f0e7122df55d06c5c4942a577957", 1358 | "shasum": "" 1359 | }, 1360 | "require": { 1361 | "php": ">=8.1" 1362 | }, 1363 | "require-dev": { 1364 | "phpunit/phpunit": "^10.0" 1365 | }, 1366 | "type": "library", 1367 | "extra": { 1368 | "branch-alias": { 1369 | "dev-main": "3.0-dev" 1370 | } 1371 | }, 1372 | "autoload": { 1373 | "classmap": [ 1374 | "src/" 1375 | ] 1376 | }, 1377 | "notification-url": "https://packagist.org/downloads/", 1378 | "license": [ 1379 | "BSD-3-Clause" 1380 | ], 1381 | "authors": [ 1382 | { 1383 | "name": "Sebastian Bergmann", 1384 | "email": "sebastian@phpunit.de" 1385 | } 1386 | ], 1387 | "description": "Allows reflection of object attributes, including inherited and non-public ones", 1388 | "homepage": "https://github.com/sebastianbergmann/object-reflector/", 1389 | "support": { 1390 | "issues": "https://github.com/sebastianbergmann/object-reflector/issues", 1391 | "source": "https://github.com/sebastianbergmann/object-reflector/tree/3.0.0" 1392 | }, 1393 | "funding": [ 1394 | { 1395 | "url": "https://github.com/sebastianbergmann", 1396 | "type": "github" 1397 | } 1398 | ], 1399 | "time": "2023-02-03T07:06:18+00:00" 1400 | }, 1401 | { 1402 | "name": "sebastian/recursion-context", 1403 | "version": "5.0.0", 1404 | "source": { 1405 | "type": "git", 1406 | "url": "https://github.com/sebastianbergmann/recursion-context.git", 1407 | "reference": "05909fb5bc7df4c52992396d0116aed689f93712" 1408 | }, 1409 | "dist": { 1410 | "type": "zip", 1411 | "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/05909fb5bc7df4c52992396d0116aed689f93712", 1412 | "reference": "05909fb5bc7df4c52992396d0116aed689f93712", 1413 | "shasum": "" 1414 | }, 1415 | "require": { 1416 | "php": ">=8.1" 1417 | }, 1418 | "require-dev": { 1419 | "phpunit/phpunit": "^10.0" 1420 | }, 1421 | "type": "library", 1422 | "extra": { 1423 | "branch-alias": { 1424 | "dev-main": "5.0-dev" 1425 | } 1426 | }, 1427 | "autoload": { 1428 | "classmap": [ 1429 | "src/" 1430 | ] 1431 | }, 1432 | "notification-url": "https://packagist.org/downloads/", 1433 | "license": [ 1434 | "BSD-3-Clause" 1435 | ], 1436 | "authors": [ 1437 | { 1438 | "name": "Sebastian Bergmann", 1439 | "email": "sebastian@phpunit.de" 1440 | }, 1441 | { 1442 | "name": "Jeff Welch", 1443 | "email": "whatthejeff@gmail.com" 1444 | }, 1445 | { 1446 | "name": "Adam Harvey", 1447 | "email": "aharvey@php.net" 1448 | } 1449 | ], 1450 | "description": "Provides functionality to recursively process PHP variables", 1451 | "homepage": "https://github.com/sebastianbergmann/recursion-context", 1452 | "support": { 1453 | "issues": "https://github.com/sebastianbergmann/recursion-context/issues", 1454 | "source": "https://github.com/sebastianbergmann/recursion-context/tree/5.0.0" 1455 | }, 1456 | "funding": [ 1457 | { 1458 | "url": "https://github.com/sebastianbergmann", 1459 | "type": "github" 1460 | } 1461 | ], 1462 | "time": "2023-02-03T07:05:40+00:00" 1463 | }, 1464 | { 1465 | "name": "sebastian/type", 1466 | "version": "4.0.0", 1467 | "source": { 1468 | "type": "git", 1469 | "url": "https://github.com/sebastianbergmann/type.git", 1470 | "reference": "462699a16464c3944eefc02ebdd77882bd3925bf" 1471 | }, 1472 | "dist": { 1473 | "type": "zip", 1474 | "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/462699a16464c3944eefc02ebdd77882bd3925bf", 1475 | "reference": "462699a16464c3944eefc02ebdd77882bd3925bf", 1476 | "shasum": "" 1477 | }, 1478 | "require": { 1479 | "php": ">=8.1" 1480 | }, 1481 | "require-dev": { 1482 | "phpunit/phpunit": "^10.0" 1483 | }, 1484 | "type": "library", 1485 | "extra": { 1486 | "branch-alias": { 1487 | "dev-main": "4.0-dev" 1488 | } 1489 | }, 1490 | "autoload": { 1491 | "classmap": [ 1492 | "src/" 1493 | ] 1494 | }, 1495 | "notification-url": "https://packagist.org/downloads/", 1496 | "license": [ 1497 | "BSD-3-Clause" 1498 | ], 1499 | "authors": [ 1500 | { 1501 | "name": "Sebastian Bergmann", 1502 | "email": "sebastian@phpunit.de", 1503 | "role": "lead" 1504 | } 1505 | ], 1506 | "description": "Collection of value objects that represent the types of the PHP type system", 1507 | "homepage": "https://github.com/sebastianbergmann/type", 1508 | "support": { 1509 | "issues": "https://github.com/sebastianbergmann/type/issues", 1510 | "source": "https://github.com/sebastianbergmann/type/tree/4.0.0" 1511 | }, 1512 | "funding": [ 1513 | { 1514 | "url": "https://github.com/sebastianbergmann", 1515 | "type": "github" 1516 | } 1517 | ], 1518 | "time": "2023-02-03T07:10:45+00:00" 1519 | }, 1520 | { 1521 | "name": "sebastian/version", 1522 | "version": "4.0.1", 1523 | "source": { 1524 | "type": "git", 1525 | "url": "https://github.com/sebastianbergmann/version.git", 1526 | "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17" 1527 | }, 1528 | "dist": { 1529 | "type": "zip", 1530 | "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c51fa83a5d8f43f1402e3f32a005e6262244ef17", 1531 | "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17", 1532 | "shasum": "" 1533 | }, 1534 | "require": { 1535 | "php": ">=8.1" 1536 | }, 1537 | "type": "library", 1538 | "extra": { 1539 | "branch-alias": { 1540 | "dev-main": "4.0-dev" 1541 | } 1542 | }, 1543 | "autoload": { 1544 | "classmap": [ 1545 | "src/" 1546 | ] 1547 | }, 1548 | "notification-url": "https://packagist.org/downloads/", 1549 | "license": [ 1550 | "BSD-3-Clause" 1551 | ], 1552 | "authors": [ 1553 | { 1554 | "name": "Sebastian Bergmann", 1555 | "email": "sebastian@phpunit.de", 1556 | "role": "lead" 1557 | } 1558 | ], 1559 | "description": "Library that helps with managing the version number of Git-hosted PHP projects", 1560 | "homepage": "https://github.com/sebastianbergmann/version", 1561 | "support": { 1562 | "issues": "https://github.com/sebastianbergmann/version/issues", 1563 | "source": "https://github.com/sebastianbergmann/version/tree/4.0.1" 1564 | }, 1565 | "funding": [ 1566 | { 1567 | "url": "https://github.com/sebastianbergmann", 1568 | "type": "github" 1569 | } 1570 | ], 1571 | "time": "2023-02-07T11:34:05+00:00" 1572 | }, 1573 | { 1574 | "name": "theseer/tokenizer", 1575 | "version": "1.2.1", 1576 | "source": { 1577 | "type": "git", 1578 | "url": "https://github.com/theseer/tokenizer.git", 1579 | "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" 1580 | }, 1581 | "dist": { 1582 | "type": "zip", 1583 | "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", 1584 | "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", 1585 | "shasum": "" 1586 | }, 1587 | "require": { 1588 | "ext-dom": "*", 1589 | "ext-tokenizer": "*", 1590 | "ext-xmlwriter": "*", 1591 | "php": "^7.2 || ^8.0" 1592 | }, 1593 | "type": "library", 1594 | "autoload": { 1595 | "classmap": [ 1596 | "src/" 1597 | ] 1598 | }, 1599 | "notification-url": "https://packagist.org/downloads/", 1600 | "license": [ 1601 | "BSD-3-Clause" 1602 | ], 1603 | "authors": [ 1604 | { 1605 | "name": "Arne Blankerts", 1606 | "email": "arne@blankerts.de", 1607 | "role": "Developer" 1608 | } 1609 | ], 1610 | "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", 1611 | "support": { 1612 | "issues": "https://github.com/theseer/tokenizer/issues", 1613 | "source": "https://github.com/theseer/tokenizer/tree/1.2.1" 1614 | }, 1615 | "funding": [ 1616 | { 1617 | "url": "https://github.com/theseer", 1618 | "type": "github" 1619 | } 1620 | ], 1621 | "time": "2021-07-28T10:34:58+00:00" 1622 | } 1623 | ], 1624 | "aliases": [], 1625 | "minimum-stability": "stable", 1626 | "stability-flags": [], 1627 | "prefer-stable": false, 1628 | "prefer-lowest": false, 1629 | "platform": [], 1630 | "platform-dev": [], 1631 | "plugin-api-version": "2.3.0" 1632 | } 1633 | -------------------------------------------------------------------------------- /envkey-php.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/envkey/envkey-php/fe151c66d7fea7b6d087d9305880cdaeef348632/envkey-php.gif -------------------------------------------------------------------------------- /example/.gitignore: -------------------------------------------------------------------------------- 1 | /vendor/ -------------------------------------------------------------------------------- /example/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "envkey/envkey-example", 3 | "description": "An example on how to use EnvKey with php.", 4 | "license" : "MIT", 5 | "authors" : [ 6 | { 7 | "name": "EnvKey", 8 | "email": "support@envkey.com", 9 | "homepage": "https://envkey.com" 10 | } 11 | ], 12 | "require": { 13 | "envkey/envkey-php": "^2.4" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /example/index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /example/src/index.php: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /ext/envkey-source_2.4.2_darwin_amd64/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright © 2023 Envkey Inc. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /ext/envkey-source_2.4.2_darwin_amd64/README.md: -------------------------------------------------------------------------------- 1 | # envkey-source 2 | 3 | Integrate [EnvKey](https://www.envkey.com) with any language, either in development or on a server, by making your configuration available through the shell as environment variables. 4 | 5 | [Read the docs.](https://docs-v2.envkey.com/docs/envkey-source) 6 | -------------------------------------------------------------------------------- /ext/envkey-source_2.4.2_darwin_amd64/envkey-source: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/envkey/envkey-php/fe151c66d7fea7b6d087d9305880cdaeef348632/ext/envkey-source_2.4.2_darwin_amd64/envkey-source -------------------------------------------------------------------------------- /ext/envkey-source_2.4.2_darwin_amd64/envkeysource-version.txt: -------------------------------------------------------------------------------- 1 | 2.4.2 2 | -------------------------------------------------------------------------------- /ext/envkey-source_2.4.2_darwin_arm64/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright © 2023 Envkey Inc. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /ext/envkey-source_2.4.2_darwin_arm64/README.md: -------------------------------------------------------------------------------- 1 | # envkey-source 2 | 3 | Integrate [EnvKey](https://www.envkey.com) with any language, either in development or on a server, by making your configuration available through the shell as environment variables. 4 | 5 | [Read the docs.](https://docs-v2.envkey.com/docs/envkey-source) 6 | -------------------------------------------------------------------------------- /ext/envkey-source_2.4.2_darwin_arm64/envkey-source: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/envkey/envkey-php/fe151c66d7fea7b6d087d9305880cdaeef348632/ext/envkey-source_2.4.2_darwin_arm64/envkey-source -------------------------------------------------------------------------------- /ext/envkey-source_2.4.2_darwin_arm64/envkeysource-version.txt: -------------------------------------------------------------------------------- 1 | 2.4.2 2 | -------------------------------------------------------------------------------- /ext/envkey-source_2.4.2_freebsd_amd64/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright © 2023 Envkey Inc. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /ext/envkey-source_2.4.2_freebsd_amd64/README.md: -------------------------------------------------------------------------------- 1 | # envkey-source 2 | 3 | Integrate [EnvKey](https://www.envkey.com) with any language, either in development or on a server, by making your configuration available through the shell as environment variables. 4 | 5 | [Read the docs.](https://docs-v2.envkey.com/docs/envkey-source) 6 | -------------------------------------------------------------------------------- /ext/envkey-source_2.4.2_freebsd_amd64/envkey-source: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/envkey/envkey-php/fe151c66d7fea7b6d087d9305880cdaeef348632/ext/envkey-source_2.4.2_freebsd_amd64/envkey-source -------------------------------------------------------------------------------- /ext/envkey-source_2.4.2_freebsd_amd64/envkeysource-version.txt: -------------------------------------------------------------------------------- 1 | 2.4.2 2 | -------------------------------------------------------------------------------- /ext/envkey-source_2.4.2_freebsd_arm64/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright © 2023 Envkey Inc. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /ext/envkey-source_2.4.2_freebsd_arm64/README.md: -------------------------------------------------------------------------------- 1 | # envkey-source 2 | 3 | Integrate [EnvKey](https://www.envkey.com) with any language, either in development or on a server, by making your configuration available through the shell as environment variables. 4 | 5 | [Read the docs.](https://docs-v2.envkey.com/docs/envkey-source) 6 | -------------------------------------------------------------------------------- /ext/envkey-source_2.4.2_freebsd_arm64/envkey-source: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/envkey/envkey-php/fe151c66d7fea7b6d087d9305880cdaeef348632/ext/envkey-source_2.4.2_freebsd_arm64/envkey-source -------------------------------------------------------------------------------- /ext/envkey-source_2.4.2_freebsd_arm64/envkeysource-version.txt: -------------------------------------------------------------------------------- 1 | 2.4.2 2 | -------------------------------------------------------------------------------- /ext/envkey-source_2.4.2_linux_amd64/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright © 2023 Envkey Inc. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /ext/envkey-source_2.4.2_linux_amd64/README.md: -------------------------------------------------------------------------------- 1 | # envkey-source 2 | 3 | Integrate [EnvKey](https://www.envkey.com) with any language, either in development or on a server, by making your configuration available through the shell as environment variables. 4 | 5 | [Read the docs.](https://docs-v2.envkey.com/docs/envkey-source) 6 | -------------------------------------------------------------------------------- /ext/envkey-source_2.4.2_linux_amd64/envkey-source: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/envkey/envkey-php/fe151c66d7fea7b6d087d9305880cdaeef348632/ext/envkey-source_2.4.2_linux_amd64/envkey-source -------------------------------------------------------------------------------- /ext/envkey-source_2.4.2_linux_amd64/envkeysource-version.txt: -------------------------------------------------------------------------------- 1 | 2.4.2 2 | -------------------------------------------------------------------------------- /ext/envkey-source_2.4.2_linux_arm64/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright © 2023 Envkey Inc. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /ext/envkey-source_2.4.2_linux_arm64/README.md: -------------------------------------------------------------------------------- 1 | # envkey-source 2 | 3 | Integrate [EnvKey](https://www.envkey.com) with any language, either in development or on a server, by making your configuration available through the shell as environment variables. 4 | 5 | [Read the docs.](https://docs-v2.envkey.com/docs/envkey-source) 6 | -------------------------------------------------------------------------------- /ext/envkey-source_2.4.2_linux_arm64/envkey-source: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/envkey/envkey-php/fe151c66d7fea7b6d087d9305880cdaeef348632/ext/envkey-source_2.4.2_linux_arm64/envkey-source -------------------------------------------------------------------------------- /ext/envkey-source_2.4.2_linux_arm64/envkeysource-version.txt: -------------------------------------------------------------------------------- 1 | 2.4.2 2 | -------------------------------------------------------------------------------- /ext/envkey-source_2.4.2_windows_amd64/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright © 2023 Envkey Inc. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /ext/envkey-source_2.4.2_windows_amd64/README.md: -------------------------------------------------------------------------------- 1 | # envkey-source 2 | 3 | Integrate [EnvKey](https://www.envkey.com) with any language, either in development or on a server, by making your configuration available through the shell as environment variables. 4 | 5 | [Read the docs.](https://docs-v2.envkey.com/docs/envkey-source) 6 | -------------------------------------------------------------------------------- /ext/envkey-source_2.4.2_windows_amd64/envkey-source.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/envkey/envkey-php/fe151c66d7fea7b6d087d9305880cdaeef348632/ext/envkey-source_2.4.2_windows_amd64/envkey-source.exe -------------------------------------------------------------------------------- /ext/envkey-source_2.4.2_windows_amd64/envkeysource-version.txt: -------------------------------------------------------------------------------- 1 | 2.4.2 2 | -------------------------------------------------------------------------------- /ext/envkey-source_2.4.2_windows_arm64/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright © 2023 Envkey Inc. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /ext/envkey-source_2.4.2_windows_arm64/README.md: -------------------------------------------------------------------------------- 1 | # envkey-source 2 | 3 | Integrate [EnvKey](https://www.envkey.com) with any language, either in development or on a server, by making your configuration available through the shell as environment variables. 4 | 5 | [Read the docs.](https://docs-v2.envkey.com/docs/envkey-source) 6 | -------------------------------------------------------------------------------- /ext/envkey-source_2.4.2_windows_arm64/envkey-source.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/envkey/envkey-php/fe151c66d7fea7b6d087d9305880cdaeef348632/ext/envkey-source_2.4.2_windows_arm64/envkey-source.exe -------------------------------------------------------------------------------- /ext/envkey-source_2.4.2_windows_arm64/envkeysource-version.txt: -------------------------------------------------------------------------------- 1 | 2.4.2 2 | -------------------------------------------------------------------------------- /sdkphp-version.txt: -------------------------------------------------------------------------------- 1 | 2.4.4 2 | -------------------------------------------------------------------------------- /src/Fetcher.php: -------------------------------------------------------------------------------- 1 | $v) { 26 | if (!getenv($k) && getenv($k) !== '') { 27 | putenv("{$k}={$v}"); 28 | } 29 | } 30 | } catch (\Exception $e) { 31 | $error_msg = $e->getMessage(); 32 | 33 | $err = str_replace("echo 'error: ", '', $error_msg); 34 | $err = str_replace('; false', '', $err); 35 | $err = str_replace('error:', '', $err); 36 | 37 | error_log($err); 38 | throw new \Exception($err); 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /src/auto.php: -------------------------------------------------------------------------------- 1 | clearEnv(); 16 | } 17 | 18 | protected function tearDown(): void 19 | { 20 | $this->clearEnv(); 21 | } 22 | 23 | private function clearEnv() 24 | { 25 | putenv('ENVKEY'); 26 | putenv('TEST'); 27 | putenv('TEST_2'); 28 | } 29 | 30 | public function testLoadAndDecryptEnvironment() 31 | { 32 | putenv('ENVKEY=' . self::$VALID_ENVKEY); 33 | \Envkey\Loader::load(); 34 | $this->assertEquals('it', getenv('TEST')); 35 | $this->assertEquals('works!', getenv('TEST_2')); 36 | } 37 | 38 | public function testRaiseErrorWithInvalidEnvKey() 39 | { 40 | $invalidKeys = [self::$INVALID_ENVKEY, self::$INVALID_ENVKEY2, self::$INVALID_ENVKEY3]; 41 | 42 | foreach ($invalidKeys as $invalidKey) { 43 | putenv('ENVKEY=' . $invalidKey); 44 | $this->expectException(Exception::class); 45 | $this->expectExceptionMessage("ENVKEY invalid. Couldn't load vars."); 46 | \Envkey\Loader::load(); 47 | } 48 | } 49 | 50 | public function testNotOverwriteExistingEnvironmentVariables() 51 | { 52 | putenv('ENVKEY=' . self::$VALID_ENVKEY); 53 | putenv('TEST=otherthing'); 54 | \Envkey\Loader::load(); 55 | $this->assertEquals('otherthing', getenv('TEST')); 56 | $this->assertEquals('works!', getenv('TEST_2')); 57 | } 58 | 59 | public function testNotOverwriteExistingEnvironmentVariablesWithFalsyValue() 60 | { 61 | putenv('ENVKEY=' . self::$VALID_ENVKEY); 62 | putenv('TEST='); 63 | \Envkey\Loader::load(); 64 | $this->assertEquals('', getenv('TEST')); 65 | $this->assertEquals('works!', getenv('TEST_2')); 66 | } 67 | } --------------------------------------------------------------------------------