Commit e1558792c2033dbff1cd690db250a089bf89ea4a

Authored by xu
1 parent d11ff394
Exists in master

common(v1.0.0 build 2)

1. A 添加短信发送消息功能
common/config/params.php
... ... @@ -3,13 +3,5 @@ return [
3 3 'adminEmail' => 'admin@example.com',
4 4 'supportEmail' => 'support@example.com',
5 5 'user.passwordResetTokenExpire' => 3600,
6   - 'UPGRADE_FILE_FROM' => 'FROM_OSS',
7   - 'ossOptions' => [
8   - 'accessKeyId' => '',
9   - 'accessKeySecret' => '',
10   - 'endpoint' => '',
11   - 'bucket' => '',
12   - 'url' => '',
13   - 'styleUrl' => ''
14   - ],
  6 + 'VERSION' => 'v1.0.0 build 2'
15 7 ];
... ...
domain/system/SmsMessage.php 0 → 100644
... ... @@ -0,0 +1,91 @@
  1 +<?php
  2 +
  3 +namespace domain\system;
  4 +
  5 +use Yii;
  6 +use AlibabaCloud\Client\AlibabaCloud;
  7 +use AlibabaCloud\Client\Exception\ClientException;
  8 +use AlibabaCloud\Client\Exception\ServerException;
  9 +use common\helpers\Log as AppLog;
  10 +
  11 +/**
  12 + * 基于阿里大鱼的短信通知
  13 + * Class SmsMessage
  14 + *
  15 + */
  16 +class SmsMessage
  17 +{
  18 + /**
  19 + * @param string $mobile
  20 + * @param string $signName
  21 + * @param string $templateCode
  22 + * @param array $templateParam
  23 + * @return array
  24 + */
  25 + private function send(string $mobile, string $signName, string $templateCode, array $templateParam)
  26 + {
  27 + try {
  28 + AlibabaCloud::accessKeyClient(Yii::$app->params['sms']["smsKey"], Yii::$app->params['sms']["smsSecret"])->asDefaultClient();
  29 +
  30 + $query = [
  31 + 'PhoneNumbers' => $mobile,
  32 + 'SignName' => $signName,
  33 + 'TemplateCode' => $templateCode,
  34 + ];
  35 + if ($templateParam) {
  36 + $query['TemplateParam'] = json_encode($templateParam);
  37 + }
  38 +
  39 + $result = AlibabaCloud::rpc()
  40 + ->regionId("cn-hongkong") // 指定请求的区域,不指定则使用客户端区域、默认区域
  41 + ->product('Dysmsapi') // 指定产品
  42 + ->version('2017-05-25') // 指定产品版本
  43 + ->action('SendSms') // 指定产品接口
  44 + ->method('POST') // 指定请求方式
  45 + ->options([
  46 + 'query' => $query,
  47 + ])
  48 + ->request(); // 发起请求并返回结果对象,请求需要放在设置的最后面
  49 +
  50 + $result = $result->toArray();
  51 +
  52 + AppLog::DEBUG('短信发送结果:' . '<pre>' . print_r($result, 1) . '</pre>');
  53 +
  54 + return $result;
  55 +
  56 + } catch (ClientException $exception) {
  57 + AppLog::DEBUG('短信发送出错:' . $exception->getErrorMessage());
  58 + } catch (ServerException $exception) {
  59 + AppLog::DEBUG('短信发送出错:' . $exception->getErrorMessage());
  60 + }
  61 + }
  62 +
  63 + /**
  64 + * 手机验证码
  65 + * 模版内容: 验证码${code},您正在注册成为新用户,感谢您的支持!
  66 + * 申请说明: 用户注册验证码
  67 + * 模版CODE: SMS_179880510
  68 + * @param $phone
  69 + * @param $code
  70 + * @param $signName
  71 + * @return mixed
  72 + */
  73 + public function sendRegCode($phone, $code, $signName = '科技')
  74 + {
  75 + //$this->send($phone, $signName, "SMS_179880510", ["code" => $code]);
  76 + return true;
  77 + }
  78 +
  79 + /**
  80 + * 登录验证码
  81 + * 模版内容: 模版CODE: SMS_180755775
  82 + * 模版内容: 尊敬的用户,您的登录码为:${code},请勿泄漏于他人!
  83 + * @param $phone
  84 + * @return mixed
  85 + */
  86 + public function sendLoginCode($phone, $code, $signName = '科技')
  87 + {
  88 + //$this->send($phone, $signName, "SMS_180755775", ["code" => $code]);
  89 + return true;
  90 + }
  91 +}
0 92 \ No newline at end of file
... ...
vendor/clagiordano/weblibs-configmanager/.gitignore 0 → 100644
... ... @@ -0,0 +1,2 @@
  1 +composer.phar
  2 +vendor
... ...
vendor/clagiordano/weblibs-configmanager/.travis.yml 0 → 100644
... ... @@ -0,0 +1,17 @@
  1 +language: php
  2 +
  3 +php:
  4 + - 5.4
  5 + - 5.5
  6 + - 5.6
  7 + - 7.0
  8 + - 7.1
  9 + - 7.2
  10 + - 7.3
  11 + - hhvm
  12 +
  13 +before_script:
  14 + - travis_retry composer self-update
  15 + - travis_retry composer update --prefer-source --no-interaction --dev
  16 +
  17 +script: phpunit
... ...
vendor/clagiordano/weblibs-configmanager/README.md 0 → 100644
... ... @@ -0,0 +1,130 @@
  1 +![BuildStatus](https://travis-ci.org/clagiordano/weblibs-configmanager.svg?branch=master) ![License](https://img.shields.io/github/license/clagiordano/weblibs-configmanager.svg)
  2 +
  3 +# weblibs-configmanager
  4 +weblibs-configmanager is a tool library for easily read and access to php config array file and direct read/write configuration file / object.
  5 +
  6 +[![SensioLabsInsight](https://insight.sensiolabs.com/projects/54c4e80c-ff15-4235-8bec-a4c71bbe3ba5/big.png)](https://insight.sensiolabs.com/projects/54c4e80c-ff15-4235-8bec-a4c71bbe3ba5)
  7 +
  8 +## Why use weblibs-configmanager ?
  9 +The purpose of this project is to propose a simple and lightweight library to manage php hierarchical configuration files.
  10 +
  11 +## Installation
  12 +The recommended way to install weblibs-configmanager is through [Composer](https://getcomposer.org).
  13 +```bash
  14 +composer require clagiordano/weblibs-configmanager
  15 +```
  16 +
  17 +## Usage examples
  18 +
  19 +### Write a sample config file like this
  20 +```
  21 +<?php
  22 +
  23 +return array (
  24 + 'app' => 'app_name',
  25 + 'db' =>
  26 + array (
  27 + 'host' => 'localhost',
  28 + 'user' => 'sample_user',
  29 + 'pass' => 'sample_pass',
  30 + 'port' => 3306,
  31 + ),
  32 + 'other' =>
  33 + array (
  34 + 'multi' =>
  35 + array (
  36 + 'deep' =>
  37 + array (
  38 + 'nested' => 'config_value',
  39 + ),
  40 + ),
  41 + ),
  42 +);
  43 +
  44 +```
  45 +
  46 +### Instance ConfigManager object
  47 +
  48 +```php
  49 +use clagiordano\weblibs\configmanager\ConfigManager;
  50 +
  51 +/**
  52 + * Instance object to read argument file
  53 + */
  54 +$config = new ConfigManager("configfile.php");
  55 +```
  56 +
  57 +### Check if a value exists into config file
  58 +
  59 +```php
  60 +/**
  61 + * Check if a value exists into config file
  62 + */
  63 +$value = $config->existValue('app');
  64 +```
  65 +
  66 +### Read a simple element from config file
  67 +
  68 +```php
  69 +/**
  70 + * Read a simple element from config file
  71 + */
  72 +$value = $config->getValue('app');
  73 +```
  74 +
  75 +### Access to a nested element from config
  76 +
  77 +```php
  78 +/**
  79 + * Access to a nested element from config
  80 + */
  81 +$nestedValue = $config->getValue('other.multi.deep.nested');
  82 +```
  83 +
  84 +### Change config value at runtime
  85 +
  86 +```php
  87 +/**
  88 + * Change config value at runtime
  89 + */
  90 +$this->config->setValue('other.multi.deep.nested', "SUPERNESTED");
  91 +```
  92 +
  93 +### Save config file with original name (OVERWRITE)
  94 +
  95 +```php
  96 +/**
  97 + * Save config file with original name (OVERWRITE)
  98 + */
  99 +$this->config->saveConfigFile();
  100 +```
  101 +
  102 +### Or save config file with a different name
  103 +
  104 +```php
  105 +/**
  106 + * Save config file with original name (OVERWRITE)
  107 + */
  108 +$this->config->saveConfigFile('/new/file/name/or/path/test.php');
  109 +```
  110 +
  111 +### Optionally you can also reload config file from disk after save
  112 +
  113 +```php
  114 +/**
  115 + * Optionally you can also reload config file from disk after save
  116 + */
  117 +$this->config->saveConfigFile('/new/file/name/or/path/test.php', true);
  118 +```
  119 +
  120 +### Load another configuration file without reinstance ConfigManager
  121 +
  122 +```php
  123 +/**
  124 + * Load another configuration file without reinstance ConfigManager
  125 + */
  126 +$this->config->loadConfig('another_config_file.php');
  127 +```
  128 +
  129 +## Legal
  130 +*Copyright (C) Claudio Giordano <claudio.giordano@autistici.org>*
... ...
vendor/clagiordano/weblibs-configmanager/composer.json 0 → 100644
... ... @@ -0,0 +1,36 @@
  1 +{
  2 + "name": "clagiordano/weblibs-configmanager",
  3 + "description": "weblibs-configmanager is a tool library for easily read and access to php config array file and direct read/write configuration file / object",
  4 + "type": "library",
  5 + "license": "LGPL-3.0-or-later",
  6 + "keywords": ["clagiordano", "weblibs", "configuration", "manager", "tool"],
  7 + "authors": [
  8 + {
  9 + "name": "Claudio Giordano",
  10 + "email": "claudio.giordano@autistici.org",
  11 + "role": "Developer"
  12 + }
  13 + ],
  14 + "autoload": {
  15 + "psr-4": {
  16 + "clagiordano\\weblibs\\configmanager\\": "src/"
  17 + }
  18 + },
  19 + "require": {
  20 + "php": ">=5.4"
  21 + },
  22 + "require-dev": {
  23 + "phpunit/phpunit": "^4.8",
  24 + "clagiordano/phpunit-result-printer": "^1"
  25 + },
  26 + "autoload-dev": {
  27 + "psr-4": {
  28 + "clagiordano\\weblibs\\configmanager\\tests\\": "tests/",
  29 + "clagiordano\\weblibs\\configmanager\\testdata\\": "testdata/"
  30 + }
  31 + },
  32 + "scripts": {
  33 + "test": "./vendor/bin/phpunit --no-coverage",
  34 + "coverage": "./vendor/bin/phpunit"
  35 + }
  36 +}
... ...
vendor/clagiordano/weblibs-configmanager/composer.lock 0 → 100644
... ... @@ -0,0 +1,1235 @@
  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": "4891effe3d8ee390aa06d5a8dd37fb9c",
  8 + "packages": [],
  9 + "packages-dev": [
  10 + {
  11 + "name": "clagiordano/phpunit-result-printer",
  12 + "version": "v1.0.4",
  13 + "source": {
  14 + "type": "git",
  15 + "url": "https://github.com/clagiordano/phpunit-result-printer.git",
  16 + "reference": "b4351f747af7964bcdb1cc0d1aa9fe007022b3ac"
  17 + },
  18 + "dist": {
  19 + "type": "zip",
  20 + "url": "https://api.github.com/repos/clagiordano/phpunit-result-printer/zipball/b4351f747af7964bcdb1cc0d1aa9fe007022b3ac",
  21 + "reference": "b4351f747af7964bcdb1cc0d1aa9fe007022b3ac",
  22 + "shasum": ""
  23 + },
  24 + "require": {
  25 + "phpunit/phpunit": "4.8.*"
  26 + },
  27 + "type": "library",
  28 + "autoload": {
  29 + "psr-4": {
  30 + "clagiordano\\PhpunitResultPrinter\\": "src/"
  31 + }
  32 + },
  33 + "notification-url": "https://packagist.org/downloads/",
  34 + "license": [
  35 + "MIT"
  36 + ],
  37 + "description": "Phpunit custom result printer class",
  38 + "time": "2019-07-16T10:33:26+00:00"
  39 + },
  40 + {
  41 + "name": "doctrine/instantiator",
  42 + "version": "1.2.0",
  43 + "source": {
  44 + "type": "git",
  45 + "url": "https://github.com/doctrine/instantiator.git",
  46 + "reference": "a2c590166b2133a4633738648b6b064edae0814a"
  47 + },
  48 + "dist": {
  49 + "type": "zip",
  50 + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/a2c590166b2133a4633738648b6b064edae0814a",
  51 + "reference": "a2c590166b2133a4633738648b6b064edae0814a",
  52 + "shasum": ""
  53 + },
  54 + "require": {
  55 + "php": "^7.1"
  56 + },
  57 + "require-dev": {
  58 + "doctrine/coding-standard": "^6.0",
  59 + "ext-pdo": "*",
  60 + "ext-phar": "*",
  61 + "phpbench/phpbench": "^0.13",
  62 + "phpstan/phpstan-phpunit": "^0.11",
  63 + "phpstan/phpstan-shim": "^0.11",
  64 + "phpunit/phpunit": "^7.0"
  65 + },
  66 + "type": "library",
  67 + "extra": {
  68 + "branch-alias": {
  69 + "dev-master": "1.2.x-dev"
  70 + }
  71 + },
  72 + "autoload": {
  73 + "psr-4": {
  74 + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
  75 + }
  76 + },
  77 + "notification-url": "https://packagist.org/downloads/",
  78 + "license": [
  79 + "MIT"
  80 + ],
  81 + "authors": [
  82 + {
  83 + "name": "Marco Pivetta",
  84 + "email": "ocramius@gmail.com",
  85 + "homepage": "http://ocramius.github.com/"
  86 + }
  87 + ],
  88 + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
  89 + "homepage": "https://www.doctrine-project.org/projects/instantiator.html",
  90 + "keywords": [
  91 + "constructor",
  92 + "instantiate"
  93 + ],
  94 + "time": "2019-03-17T17:37:11+00:00"
  95 + },
  96 + {
  97 + "name": "phpdocumentor/reflection-common",
  98 + "version": "2.0.0",
  99 + "source": {
  100 + "type": "git",
  101 + "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
  102 + "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a"
  103 + },
  104 + "dist": {
  105 + "type": "zip",
  106 + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/63a995caa1ca9e5590304cd845c15ad6d482a62a",
  107 + "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a",
  108 + "shasum": ""
  109 + },
  110 + "require": {
  111 + "php": ">=7.1"
  112 + },
  113 + "require-dev": {
  114 + "phpunit/phpunit": "~6"
  115 + },
  116 + "type": "library",
  117 + "extra": {
  118 + "branch-alias": {
  119 + "dev-master": "2.x-dev"
  120 + }
  121 + },
  122 + "autoload": {
  123 + "psr-4": {
  124 + "phpDocumentor\\Reflection\\": "src/"
  125 + }
  126 + },
  127 + "notification-url": "https://packagist.org/downloads/",
  128 + "license": [
  129 + "MIT"
  130 + ],
  131 + "authors": [
  132 + {
  133 + "name": "Jaap van Otterdijk",
  134 + "email": "opensource@ijaap.nl"
  135 + }
  136 + ],
  137 + "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
  138 + "homepage": "http://www.phpdoc.org",
  139 + "keywords": [
  140 + "FQSEN",
  141 + "phpDocumentor",
  142 + "phpdoc",
  143 + "reflection",
  144 + "static analysis"
  145 + ],
  146 + "time": "2018-08-07T13:53:10+00:00"
  147 + },
  148 + {
  149 + "name": "phpdocumentor/reflection-docblock",
  150 + "version": "4.3.2",
  151 + "source": {
  152 + "type": "git",
  153 + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
  154 + "reference": "b83ff7cfcfee7827e1e78b637a5904fe6a96698e"
  155 + },
  156 + "dist": {
  157 + "type": "zip",
  158 + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/b83ff7cfcfee7827e1e78b637a5904fe6a96698e",
  159 + "reference": "b83ff7cfcfee7827e1e78b637a5904fe6a96698e",
  160 + "shasum": ""
  161 + },
  162 + "require": {
  163 + "php": "^7.0",
  164 + "phpdocumentor/reflection-common": "^1.0.0 || ^2.0.0",
  165 + "phpdocumentor/type-resolver": "~0.4 || ^1.0.0",
  166 + "webmozart/assert": "^1.0"
  167 + },
  168 + "require-dev": {
  169 + "doctrine/instantiator": "^1.0.5",
  170 + "mockery/mockery": "^1.0",
  171 + "phpunit/phpunit": "^6.4"
  172 + },
  173 + "type": "library",
  174 + "extra": {
  175 + "branch-alias": {
  176 + "dev-master": "4.x-dev"
  177 + }
  178 + },
  179 + "autoload": {
  180 + "psr-4": {
  181 + "phpDocumentor\\Reflection\\": [
  182 + "src/"
  183 + ]
  184 + }
  185 + },
  186 + "notification-url": "https://packagist.org/downloads/",
  187 + "license": [
  188 + "MIT"
  189 + ],
  190 + "authors": [
  191 + {
  192 + "name": "Mike van Riel",
  193 + "email": "me@mikevanriel.com"
  194 + }
  195 + ],
  196 + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
  197 + "time": "2019-09-12T14:27:41+00:00"
  198 + },
  199 + {
  200 + "name": "phpdocumentor/type-resolver",
  201 + "version": "1.0.1",
  202 + "source": {
  203 + "type": "git",
  204 + "url": "https://github.com/phpDocumentor/TypeResolver.git",
  205 + "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9"
  206 + },
  207 + "dist": {
  208 + "type": "zip",
  209 + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/2e32a6d48972b2c1976ed5d8967145b6cec4a4a9",
  210 + "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9",
  211 + "shasum": ""
  212 + },
  213 + "require": {
  214 + "php": "^7.1",
  215 + "phpdocumentor/reflection-common": "^2.0"
  216 + },
  217 + "require-dev": {
  218 + "ext-tokenizer": "^7.1",
  219 + "mockery/mockery": "~1",
  220 + "phpunit/phpunit": "^7.0"
  221 + },
  222 + "type": "library",
  223 + "extra": {
  224 + "branch-alias": {
  225 + "dev-master": "1.x-dev"
  226 + }
  227 + },
  228 + "autoload": {
  229 + "psr-4": {
  230 + "phpDocumentor\\Reflection\\": "src"
  231 + }
  232 + },
  233 + "notification-url": "https://packagist.org/downloads/",
  234 + "license": [
  235 + "MIT"
  236 + ],
  237 + "authors": [
  238 + {
  239 + "name": "Mike van Riel",
  240 + "email": "me@mikevanriel.com"
  241 + }
  242 + ],
  243 + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
  244 + "time": "2019-08-22T18:11:29+00:00"
  245 + },
  246 + {
  247 + "name": "phpspec/prophecy",
  248 + "version": "1.8.1",
  249 + "source": {
  250 + "type": "git",
  251 + "url": "https://github.com/phpspec/prophecy.git",
  252 + "reference": "1927e75f4ed19131ec9bcc3b002e07fb1173ee76"
  253 + },
  254 + "dist": {
  255 + "type": "zip",
  256 + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/1927e75f4ed19131ec9bcc3b002e07fb1173ee76",
  257 + "reference": "1927e75f4ed19131ec9bcc3b002e07fb1173ee76",
  258 + "shasum": ""
  259 + },
  260 + "require": {
  261 + "doctrine/instantiator": "^1.0.2",
  262 + "php": "^5.3|^7.0",
  263 + "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0",
  264 + "sebastian/comparator": "^1.1|^2.0|^3.0",
  265 + "sebastian/recursion-context": "^1.0|^2.0|^3.0"
  266 + },
  267 + "require-dev": {
  268 + "phpspec/phpspec": "^2.5|^3.2",
  269 + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1"
  270 + },
  271 + "type": "library",
  272 + "extra": {
  273 + "branch-alias": {
  274 + "dev-master": "1.8.x-dev"
  275 + }
  276 + },
  277 + "autoload": {
  278 + "psr-4": {
  279 + "Prophecy\\": "src/Prophecy"
  280 + }
  281 + },
  282 + "notification-url": "https://packagist.org/downloads/",
  283 + "license": [
  284 + "MIT"
  285 + ],
  286 + "authors": [
  287 + {
  288 + "name": "Konstantin Kudryashov",
  289 + "email": "ever.zet@gmail.com",
  290 + "homepage": "http://everzet.com"
  291 + },
  292 + {
  293 + "name": "Marcello Duarte",
  294 + "email": "marcello.duarte@gmail.com"
  295 + }
  296 + ],
  297 + "description": "Highly opinionated mocking framework for PHP 5.3+",
  298 + "homepage": "https://github.com/phpspec/prophecy",
  299 + "keywords": [
  300 + "Double",
  301 + "Dummy",
  302 + "fake",
  303 + "mock",
  304 + "spy",
  305 + "stub"
  306 + ],
  307 + "time": "2019-06-13T12:50:23+00:00"
  308 + },
  309 + {
  310 + "name": "phpunit/php-code-coverage",
  311 + "version": "2.2.4",
  312 + "source": {
  313 + "type": "git",
  314 + "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
  315 + "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979"
  316 + },
  317 + "dist": {
  318 + "type": "zip",
  319 + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/eabf68b476ac7d0f73793aada060f1c1a9bf8979",
  320 + "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979",
  321 + "shasum": ""
  322 + },
  323 + "require": {
  324 + "php": ">=5.3.3",
  325 + "phpunit/php-file-iterator": "~1.3",
  326 + "phpunit/php-text-template": "~1.2",
  327 + "phpunit/php-token-stream": "~1.3",
  328 + "sebastian/environment": "^1.3.2",
  329 + "sebastian/version": "~1.0"
  330 + },
  331 + "require-dev": {
  332 + "ext-xdebug": ">=2.1.4",
  333 + "phpunit/phpunit": "~4"
  334 + },
  335 + "suggest": {
  336 + "ext-dom": "*",
  337 + "ext-xdebug": ">=2.2.1",
  338 + "ext-xmlwriter": "*"
  339 + },
  340 + "type": "library",
  341 + "extra": {
  342 + "branch-alias": {
  343 + "dev-master": "2.2.x-dev"
  344 + }
  345 + },
  346 + "autoload": {
  347 + "classmap": [
  348 + "src/"
  349 + ]
  350 + },
  351 + "notification-url": "https://packagist.org/downloads/",
  352 + "license": [
  353 + "BSD-3-Clause"
  354 + ],
  355 + "authors": [
  356 + {
  357 + "name": "Sebastian Bergmann",
  358 + "email": "sb@sebastian-bergmann.de",
  359 + "role": "lead"
  360 + }
  361 + ],
  362 + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
  363 + "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
  364 + "keywords": [
  365 + "coverage",
  366 + "testing",
  367 + "xunit"
  368 + ],
  369 + "time": "2015-10-06T15:47:00+00:00"
  370 + },
  371 + {
  372 + "name": "phpunit/php-file-iterator",
  373 + "version": "1.4.5",
  374 + "source": {
  375 + "type": "git",
  376 + "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
  377 + "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4"
  378 + },
  379 + "dist": {
  380 + "type": "zip",
  381 + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4",
  382 + "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4",
  383 + "shasum": ""
  384 + },
  385 + "require": {
  386 + "php": ">=5.3.3"
  387 + },
  388 + "type": "library",
  389 + "extra": {
  390 + "branch-alias": {
  391 + "dev-master": "1.4.x-dev"
  392 + }
  393 + },
  394 + "autoload": {
  395 + "classmap": [
  396 + "src/"
  397 + ]
  398 + },
  399 + "notification-url": "https://packagist.org/downloads/",
  400 + "license": [
  401 + "BSD-3-Clause"
  402 + ],
  403 + "authors": [
  404 + {
  405 + "name": "Sebastian Bergmann",
  406 + "email": "sb@sebastian-bergmann.de",
  407 + "role": "lead"
  408 + }
  409 + ],
  410 + "description": "FilterIterator implementation that filters files based on a list of suffixes.",
  411 + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
  412 + "keywords": [
  413 + "filesystem",
  414 + "iterator"
  415 + ],
  416 + "time": "2017-11-27T13:52:08+00:00"
  417 + },
  418 + {
  419 + "name": "phpunit/php-text-template",
  420 + "version": "1.2.1",
  421 + "source": {
  422 + "type": "git",
  423 + "url": "https://github.com/sebastianbergmann/php-text-template.git",
  424 + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
  425 + },
  426 + "dist": {
  427 + "type": "zip",
  428 + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
  429 + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
  430 + "shasum": ""
  431 + },
  432 + "require": {
  433 + "php": ">=5.3.3"
  434 + },
  435 + "type": "library",
  436 + "autoload": {
  437 + "classmap": [
  438 + "src/"
  439 + ]
  440 + },
  441 + "notification-url": "https://packagist.org/downloads/",
  442 + "license": [
  443 + "BSD-3-Clause"
  444 + ],
  445 + "authors": [
  446 + {
  447 + "name": "Sebastian Bergmann",
  448 + "email": "sebastian@phpunit.de",
  449 + "role": "lead"
  450 + }
  451 + ],
  452 + "description": "Simple template engine.",
  453 + "homepage": "https://github.com/sebastianbergmann/php-text-template/",
  454 + "keywords": [
  455 + "template"
  456 + ],
  457 + "time": "2015-06-21T13:50:34+00:00"
  458 + },
  459 + {
  460 + "name": "phpunit/php-timer",
  461 + "version": "1.0.9",
  462 + "source": {
  463 + "type": "git",
  464 + "url": "https://github.com/sebastianbergmann/php-timer.git",
  465 + "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f"
  466 + },
  467 + "dist": {
  468 + "type": "zip",
  469 + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
  470 + "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
  471 + "shasum": ""
  472 + },
  473 + "require": {
  474 + "php": "^5.3.3 || ^7.0"
  475 + },
  476 + "require-dev": {
  477 + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
  478 + },
  479 + "type": "library",
  480 + "extra": {
  481 + "branch-alias": {
  482 + "dev-master": "1.0-dev"
  483 + }
  484 + },
  485 + "autoload": {
  486 + "classmap": [
  487 + "src/"
  488 + ]
  489 + },
  490 + "notification-url": "https://packagist.org/downloads/",
  491 + "license": [
  492 + "BSD-3-Clause"
  493 + ],
  494 + "authors": [
  495 + {
  496 + "name": "Sebastian Bergmann",
  497 + "email": "sb@sebastian-bergmann.de",
  498 + "role": "lead"
  499 + }
  500 + ],
  501 + "description": "Utility class for timing",
  502 + "homepage": "https://github.com/sebastianbergmann/php-timer/",
  503 + "keywords": [
  504 + "timer"
  505 + ],
  506 + "time": "2017-02-26T11:10:40+00:00"
  507 + },
  508 + {
  509 + "name": "phpunit/php-token-stream",
  510 + "version": "1.4.12",
  511 + "source": {
  512 + "type": "git",
  513 + "url": "https://github.com/sebastianbergmann/php-token-stream.git",
  514 + "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16"
  515 + },
  516 + "dist": {
  517 + "type": "zip",
  518 + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/1ce90ba27c42e4e44e6d8458241466380b51fa16",
  519 + "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16",
  520 + "shasum": ""
  521 + },
  522 + "require": {
  523 + "ext-tokenizer": "*",
  524 + "php": ">=5.3.3"
  525 + },
  526 + "require-dev": {
  527 + "phpunit/phpunit": "~4.2"
  528 + },
  529 + "type": "library",
  530 + "extra": {
  531 + "branch-alias": {
  532 + "dev-master": "1.4-dev"
  533 + }
  534 + },
  535 + "autoload": {
  536 + "classmap": [
  537 + "src/"
  538 + ]
  539 + },
  540 + "notification-url": "https://packagist.org/downloads/",
  541 + "license": [
  542 + "BSD-3-Clause"
  543 + ],
  544 + "authors": [
  545 + {
  546 + "name": "Sebastian Bergmann",
  547 + "email": "sebastian@phpunit.de"
  548 + }
  549 + ],
  550 + "description": "Wrapper around PHP's tokenizer extension.",
  551 + "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
  552 + "keywords": [
  553 + "tokenizer"
  554 + ],
  555 + "time": "2017-12-04T08:55:13+00:00"
  556 + },
  557 + {
  558 + "name": "phpunit/phpunit",
  559 + "version": "4.8.36",
  560 + "source": {
  561 + "type": "git",
  562 + "url": "https://github.com/sebastianbergmann/phpunit.git",
  563 + "reference": "46023de9a91eec7dfb06cc56cb4e260017298517"
  564 + },
  565 + "dist": {
  566 + "type": "zip",
  567 + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/46023de9a91eec7dfb06cc56cb4e260017298517",
  568 + "reference": "46023de9a91eec7dfb06cc56cb4e260017298517",
  569 + "shasum": ""
  570 + },
  571 + "require": {
  572 + "ext-dom": "*",
  573 + "ext-json": "*",
  574 + "ext-pcre": "*",
  575 + "ext-reflection": "*",
  576 + "ext-spl": "*",
  577 + "php": ">=5.3.3",
  578 + "phpspec/prophecy": "^1.3.1",
  579 + "phpunit/php-code-coverage": "~2.1",
  580 + "phpunit/php-file-iterator": "~1.4",
  581 + "phpunit/php-text-template": "~1.2",
  582 + "phpunit/php-timer": "^1.0.6",
  583 + "phpunit/phpunit-mock-objects": "~2.3",
  584 + "sebastian/comparator": "~1.2.2",
  585 + "sebastian/diff": "~1.2",
  586 + "sebastian/environment": "~1.3",
  587 + "sebastian/exporter": "~1.2",
  588 + "sebastian/global-state": "~1.0",
  589 + "sebastian/version": "~1.0",
  590 + "symfony/yaml": "~2.1|~3.0"
  591 + },
  592 + "suggest": {
  593 + "phpunit/php-invoker": "~1.1"
  594 + },
  595 + "bin": [
  596 + "phpunit"
  597 + ],
  598 + "type": "library",
  599 + "extra": {
  600 + "branch-alias": {
  601 + "dev-master": "4.8.x-dev"
  602 + }
  603 + },
  604 + "autoload": {
  605 + "classmap": [
  606 + "src/"
  607 + ]
  608 + },
  609 + "notification-url": "https://packagist.org/downloads/",
  610 + "license": [
  611 + "BSD-3-Clause"
  612 + ],
  613 + "authors": [
  614 + {
  615 + "name": "Sebastian Bergmann",
  616 + "email": "sebastian@phpunit.de",
  617 + "role": "lead"
  618 + }
  619 + ],
  620 + "description": "The PHP Unit Testing framework.",
  621 + "homepage": "https://phpunit.de/",
  622 + "keywords": [
  623 + "phpunit",
  624 + "testing",
  625 + "xunit"
  626 + ],
  627 + "time": "2017-06-21T08:07:12+00:00"
  628 + },
  629 + {
  630 + "name": "phpunit/phpunit-mock-objects",
  631 + "version": "2.3.8",
  632 + "source": {
  633 + "type": "git",
  634 + "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
  635 + "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983"
  636 + },
  637 + "dist": {
  638 + "type": "zip",
  639 + "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/ac8e7a3db35738d56ee9a76e78a4e03d97628983",
  640 + "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983",
  641 + "shasum": ""
  642 + },
  643 + "require": {
  644 + "doctrine/instantiator": "^1.0.2",
  645 + "php": ">=5.3.3",
  646 + "phpunit/php-text-template": "~1.2",
  647 + "sebastian/exporter": "~1.2"
  648 + },
  649 + "require-dev": {
  650 + "phpunit/phpunit": "~4.4"
  651 + },
  652 + "suggest": {
  653 + "ext-soap": "*"
  654 + },
  655 + "type": "library",
  656 + "extra": {
  657 + "branch-alias": {
  658 + "dev-master": "2.3.x-dev"
  659 + }
  660 + },
  661 + "autoload": {
  662 + "classmap": [
  663 + "src/"
  664 + ]
  665 + },
  666 + "notification-url": "https://packagist.org/downloads/",
  667 + "license": [
  668 + "BSD-3-Clause"
  669 + ],
  670 + "authors": [
  671 + {
  672 + "name": "Sebastian Bergmann",
  673 + "email": "sb@sebastian-bergmann.de",
  674 + "role": "lead"
  675 + }
  676 + ],
  677 + "description": "Mock Object library for PHPUnit",
  678 + "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
  679 + "keywords": [
  680 + "mock",
  681 + "xunit"
  682 + ],
  683 + "abandoned": true,
  684 + "time": "2015-10-02T06:51:40+00:00"
  685 + },
  686 + {
  687 + "name": "sebastian/comparator",
  688 + "version": "1.2.4",
  689 + "source": {
  690 + "type": "git",
  691 + "url": "https://github.com/sebastianbergmann/comparator.git",
  692 + "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be"
  693 + },
  694 + "dist": {
  695 + "type": "zip",
  696 + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be",
  697 + "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be",
  698 + "shasum": ""
  699 + },
  700 + "require": {
  701 + "php": ">=5.3.3",
  702 + "sebastian/diff": "~1.2",
  703 + "sebastian/exporter": "~1.2 || ~2.0"
  704 + },
  705 + "require-dev": {
  706 + "phpunit/phpunit": "~4.4"
  707 + },
  708 + "type": "library",
  709 + "extra": {
  710 + "branch-alias": {
  711 + "dev-master": "1.2.x-dev"
  712 + }
  713 + },
  714 + "autoload": {
  715 + "classmap": [
  716 + "src/"
  717 + ]
  718 + },
  719 + "notification-url": "https://packagist.org/downloads/",
  720 + "license": [
  721 + "BSD-3-Clause"
  722 + ],
  723 + "authors": [
  724 + {
  725 + "name": "Jeff Welch",
  726 + "email": "whatthejeff@gmail.com"
  727 + },
  728 + {
  729 + "name": "Volker Dusch",
  730 + "email": "github@wallbash.com"
  731 + },
  732 + {
  733 + "name": "Bernhard Schussek",
  734 + "email": "bschussek@2bepublished.at"
  735 + },
  736 + {
  737 + "name": "Sebastian Bergmann",
  738 + "email": "sebastian@phpunit.de"
  739 + }
  740 + ],
  741 + "description": "Provides the functionality to compare PHP values for equality",
  742 + "homepage": "http://www.github.com/sebastianbergmann/comparator",
  743 + "keywords": [
  744 + "comparator",
  745 + "compare",
  746 + "equality"
  747 + ],
  748 + "time": "2017-01-29T09:50:25+00:00"
  749 + },
  750 + {
  751 + "name": "sebastian/diff",
  752 + "version": "1.4.3",
  753 + "source": {
  754 + "type": "git",
  755 + "url": "https://github.com/sebastianbergmann/diff.git",
  756 + "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4"
  757 + },
  758 + "dist": {
  759 + "type": "zip",
  760 + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4",
  761 + "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4",
  762 + "shasum": ""
  763 + },
  764 + "require": {
  765 + "php": "^5.3.3 || ^7.0"
  766 + },
  767 + "require-dev": {
  768 + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
  769 + },
  770 + "type": "library",
  771 + "extra": {
  772 + "branch-alias": {
  773 + "dev-master": "1.4-dev"
  774 + }
  775 + },
  776 + "autoload": {
  777 + "classmap": [
  778 + "src/"
  779 + ]
  780 + },
  781 + "notification-url": "https://packagist.org/downloads/",
  782 + "license": [
  783 + "BSD-3-Clause"
  784 + ],
  785 + "authors": [
  786 + {
  787 + "name": "Kore Nordmann",
  788 + "email": "mail@kore-nordmann.de"
  789 + },
  790 + {
  791 + "name": "Sebastian Bergmann",
  792 + "email": "sebastian@phpunit.de"
  793 + }
  794 + ],
  795 + "description": "Diff implementation",
  796 + "homepage": "https://github.com/sebastianbergmann/diff",
  797 + "keywords": [
  798 + "diff"
  799 + ],
  800 + "time": "2017-05-22T07:24:03+00:00"
  801 + },
  802 + {
  803 + "name": "sebastian/environment",
  804 + "version": "1.3.8",
  805 + "source": {
  806 + "type": "git",
  807 + "url": "https://github.com/sebastianbergmann/environment.git",
  808 + "reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea"
  809 + },
  810 + "dist": {
  811 + "type": "zip",
  812 + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/be2c607e43ce4c89ecd60e75c6a85c126e754aea",
  813 + "reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea",
  814 + "shasum": ""
  815 + },
  816 + "require": {
  817 + "php": "^5.3.3 || ^7.0"
  818 + },
  819 + "require-dev": {
  820 + "phpunit/phpunit": "^4.8 || ^5.0"
  821 + },
  822 + "type": "library",
  823 + "extra": {
  824 + "branch-alias": {
  825 + "dev-master": "1.3.x-dev"
  826 + }
  827 + },
  828 + "autoload": {
  829 + "classmap": [
  830 + "src/"
  831 + ]
  832 + },
  833 + "notification-url": "https://packagist.org/downloads/",
  834 + "license": [
  835 + "BSD-3-Clause"
  836 + ],
  837 + "authors": [
  838 + {
  839 + "name": "Sebastian Bergmann",
  840 + "email": "sebastian@phpunit.de"
  841 + }
  842 + ],
  843 + "description": "Provides functionality to handle HHVM/PHP environments",
  844 + "homepage": "http://www.github.com/sebastianbergmann/environment",
  845 + "keywords": [
  846 + "Xdebug",
  847 + "environment",
  848 + "hhvm"
  849 + ],
  850 + "time": "2016-08-18T05:49:44+00:00"
  851 + },
  852 + {
  853 + "name": "sebastian/exporter",
  854 + "version": "1.2.2",
  855 + "source": {
  856 + "type": "git",
  857 + "url": "https://github.com/sebastianbergmann/exporter.git",
  858 + "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4"
  859 + },
  860 + "dist": {
  861 + "type": "zip",
  862 + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/42c4c2eec485ee3e159ec9884f95b431287edde4",
  863 + "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4",
  864 + "shasum": ""
  865 + },
  866 + "require": {
  867 + "php": ">=5.3.3",
  868 + "sebastian/recursion-context": "~1.0"
  869 + },
  870 + "require-dev": {
  871 + "ext-mbstring": "*",
  872 + "phpunit/phpunit": "~4.4"
  873 + },
  874 + "type": "library",
  875 + "extra": {
  876 + "branch-alias": {
  877 + "dev-master": "1.3.x-dev"
  878 + }
  879 + },
  880 + "autoload": {
  881 + "classmap": [
  882 + "src/"
  883 + ]
  884 + },
  885 + "notification-url": "https://packagist.org/downloads/",
  886 + "license": [
  887 + "BSD-3-Clause"
  888 + ],
  889 + "authors": [
  890 + {
  891 + "name": "Jeff Welch",
  892 + "email": "whatthejeff@gmail.com"
  893 + },
  894 + {
  895 + "name": "Volker Dusch",
  896 + "email": "github@wallbash.com"
  897 + },
  898 + {
  899 + "name": "Bernhard Schussek",
  900 + "email": "bschussek@2bepublished.at"
  901 + },
  902 + {
  903 + "name": "Sebastian Bergmann",
  904 + "email": "sebastian@phpunit.de"
  905 + },
  906 + {
  907 + "name": "Adam Harvey",
  908 + "email": "aharvey@php.net"
  909 + }
  910 + ],
  911 + "description": "Provides the functionality to export PHP variables for visualization",
  912 + "homepage": "http://www.github.com/sebastianbergmann/exporter",
  913 + "keywords": [
  914 + "export",
  915 + "exporter"
  916 + ],
  917 + "time": "2016-06-17T09:04:28+00:00"
  918 + },
  919 + {
  920 + "name": "sebastian/global-state",
  921 + "version": "1.1.1",
  922 + "source": {
  923 + "type": "git",
  924 + "url": "https://github.com/sebastianbergmann/global-state.git",
  925 + "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4"
  926 + },
  927 + "dist": {
  928 + "type": "zip",
  929 + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4",
  930 + "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4",
  931 + "shasum": ""
  932 + },
  933 + "require": {
  934 + "php": ">=5.3.3"
  935 + },
  936 + "require-dev": {
  937 + "phpunit/phpunit": "~4.2"
  938 + },
  939 + "suggest": {
  940 + "ext-uopz": "*"
  941 + },
  942 + "type": "library",
  943 + "extra": {
  944 + "branch-alias": {
  945 + "dev-master": "1.0-dev"
  946 + }
  947 + },
  948 + "autoload": {
  949 + "classmap": [
  950 + "src/"
  951 + ]
  952 + },
  953 + "notification-url": "https://packagist.org/downloads/",
  954 + "license": [
  955 + "BSD-3-Clause"
  956 + ],
  957 + "authors": [
  958 + {
  959 + "name": "Sebastian Bergmann",
  960 + "email": "sebastian@phpunit.de"
  961 + }
  962 + ],
  963 + "description": "Snapshotting of global state",
  964 + "homepage": "http://www.github.com/sebastianbergmann/global-state",
  965 + "keywords": [
  966 + "global state"
  967 + ],
  968 + "time": "2015-10-12T03:26:01+00:00"
  969 + },
  970 + {
  971 + "name": "sebastian/recursion-context",
  972 + "version": "1.0.5",
  973 + "source": {
  974 + "type": "git",
  975 + "url": "https://github.com/sebastianbergmann/recursion-context.git",
  976 + "reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7"
  977 + },
  978 + "dist": {
  979 + "type": "zip",
  980 + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/b19cc3298482a335a95f3016d2f8a6950f0fbcd7",
  981 + "reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7",
  982 + "shasum": ""
  983 + },
  984 + "require": {
  985 + "php": ">=5.3.3"
  986 + },
  987 + "require-dev": {
  988 + "phpunit/phpunit": "~4.4"
  989 + },
  990 + "type": "library",
  991 + "extra": {
  992 + "branch-alias": {
  993 + "dev-master": "1.0.x-dev"
  994 + }
  995 + },
  996 + "autoload": {
  997 + "classmap": [
  998 + "src/"
  999 + ]
  1000 + },
  1001 + "notification-url": "https://packagist.org/downloads/",
  1002 + "license": [
  1003 + "BSD-3-Clause"
  1004 + ],
  1005 + "authors": [
  1006 + {
  1007 + "name": "Jeff Welch",
  1008 + "email": "whatthejeff@gmail.com"
  1009 + },
  1010 + {
  1011 + "name": "Sebastian Bergmann",
  1012 + "email": "sebastian@phpunit.de"
  1013 + },
  1014 + {
  1015 + "name": "Adam Harvey",
  1016 + "email": "aharvey@php.net"
  1017 + }
  1018 + ],
  1019 + "description": "Provides functionality to recursively process PHP variables",
  1020 + "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
  1021 + "time": "2016-10-03T07:41:43+00:00"
  1022 + },
  1023 + {
  1024 + "name": "sebastian/version",
  1025 + "version": "1.0.6",
  1026 + "source": {
  1027 + "type": "git",
  1028 + "url": "https://github.com/sebastianbergmann/version.git",
  1029 + "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6"
  1030 + },
  1031 + "dist": {
  1032 + "type": "zip",
  1033 + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
  1034 + "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
  1035 + "shasum": ""
  1036 + },
  1037 + "type": "library",
  1038 + "autoload": {
  1039 + "classmap": [
  1040 + "src/"
  1041 + ]
  1042 + },
  1043 + "notification-url": "https://packagist.org/downloads/",
  1044 + "license": [
  1045 + "BSD-3-Clause"
  1046 + ],
  1047 + "authors": [
  1048 + {
  1049 + "name": "Sebastian Bergmann",
  1050 + "email": "sebastian@phpunit.de",
  1051 + "role": "lead"
  1052 + }
  1053 + ],
  1054 + "description": "Library that helps with managing the version number of Git-hosted PHP projects",
  1055 + "homepage": "https://github.com/sebastianbergmann/version",
  1056 + "time": "2015-06-21T13:59:46+00:00"
  1057 + },
  1058 + {
  1059 + "name": "symfony/polyfill-ctype",
  1060 + "version": "v1.12.0",
  1061 + "source": {
  1062 + "type": "git",
  1063 + "url": "https://github.com/symfony/polyfill-ctype.git",
  1064 + "reference": "550ebaac289296ce228a706d0867afc34687e3f4"
  1065 + },
  1066 + "dist": {
  1067 + "type": "zip",
  1068 + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/550ebaac289296ce228a706d0867afc34687e3f4",
  1069 + "reference": "550ebaac289296ce228a706d0867afc34687e3f4",
  1070 + "shasum": ""
  1071 + },
  1072 + "require": {
  1073 + "php": ">=5.3.3"
  1074 + },
  1075 + "suggest": {
  1076 + "ext-ctype": "For best performance"
  1077 + },
  1078 + "type": "library",
  1079 + "extra": {
  1080 + "branch-alias": {
  1081 + "dev-master": "1.12-dev"
  1082 + }
  1083 + },
  1084 + "autoload": {
  1085 + "psr-4": {
  1086 + "Symfony\\Polyfill\\Ctype\\": ""
  1087 + },
  1088 + "files": [
  1089 + "bootstrap.php"
  1090 + ]
  1091 + },
  1092 + "notification-url": "https://packagist.org/downloads/",
  1093 + "license": [
  1094 + "MIT"
  1095 + ],
  1096 + "authors": [
  1097 + {
  1098 + "name": "Gert de Pagter",
  1099 + "email": "BackEndTea@gmail.com"
  1100 + },
  1101 + {
  1102 + "name": "Symfony Community",
  1103 + "homepage": "https://symfony.com/contributors"
  1104 + }
  1105 + ],
  1106 + "description": "Symfony polyfill for ctype functions",
  1107 + "homepage": "https://symfony.com",
  1108 + "keywords": [
  1109 + "compatibility",
  1110 + "ctype",
  1111 + "polyfill",
  1112 + "portable"
  1113 + ],
  1114 + "time": "2019-08-06T08:03:45+00:00"
  1115 + },
  1116 + {
  1117 + "name": "symfony/yaml",
  1118 + "version": "v3.4.31",
  1119 + "source": {
  1120 + "type": "git",
  1121 + "url": "https://github.com/symfony/yaml.git",
  1122 + "reference": "3dc414b7db30695bae671a1d86013d03f4ae9834"
  1123 + },
  1124 + "dist": {
  1125 + "type": "zip",
  1126 + "url": "https://api.github.com/repos/symfony/yaml/zipball/3dc414b7db30695bae671a1d86013d03f4ae9834",
  1127 + "reference": "3dc414b7db30695bae671a1d86013d03f4ae9834",
  1128 + "shasum": ""
  1129 + },
  1130 + "require": {
  1131 + "php": "^5.5.9|>=7.0.8",
  1132 + "symfony/polyfill-ctype": "~1.8"
  1133 + },
  1134 + "conflict": {
  1135 + "symfony/console": "<3.4"
  1136 + },
  1137 + "require-dev": {
  1138 + "symfony/console": "~3.4|~4.0"
  1139 + },
  1140 + "suggest": {
  1141 + "symfony/console": "For validating YAML files using the lint command"
  1142 + },
  1143 + "type": "library",
  1144 + "extra": {
  1145 + "branch-alias": {
  1146 + "dev-master": "3.4-dev"
  1147 + }
  1148 + },
  1149 + "autoload": {
  1150 + "psr-4": {
  1151 + "Symfony\\Component\\Yaml\\": ""
  1152 + },
  1153 + "exclude-from-classmap": [
  1154 + "/Tests/"
  1155 + ]
  1156 + },
  1157 + "notification-url": "https://packagist.org/downloads/",
  1158 + "license": [
  1159 + "MIT"
  1160 + ],
  1161 + "authors": [
  1162 + {
  1163 + "name": "Fabien Potencier",
  1164 + "email": "fabien@symfony.com"
  1165 + },
  1166 + {
  1167 + "name": "Symfony Community",
  1168 + "homepage": "https://symfony.com/contributors"
  1169 + }
  1170 + ],
  1171 + "description": "Symfony Yaml Component",
  1172 + "homepage": "https://symfony.com",
  1173 + "time": "2019-08-20T13:31:17+00:00"
  1174 + },
  1175 + {
  1176 + "name": "webmozart/assert",
  1177 + "version": "1.5.0",
  1178 + "source": {
  1179 + "type": "git",
  1180 + "url": "https://github.com/webmozart/assert.git",
  1181 + "reference": "88e6d84706d09a236046d686bbea96f07b3a34f4"
  1182 + },
  1183 + "dist": {
  1184 + "type": "zip",
  1185 + "url": "https://api.github.com/repos/webmozart/assert/zipball/88e6d84706d09a236046d686bbea96f07b3a34f4",
  1186 + "reference": "88e6d84706d09a236046d686bbea96f07b3a34f4",
  1187 + "shasum": ""
  1188 + },
  1189 + "require": {
  1190 + "php": "^5.3.3 || ^7.0",
  1191 + "symfony/polyfill-ctype": "^1.8"
  1192 + },
  1193 + "require-dev": {
  1194 + "phpunit/phpunit": "^4.8.36 || ^7.5.13"
  1195 + },
  1196 + "type": "library",
  1197 + "extra": {
  1198 + "branch-alias": {
  1199 + "dev-master": "1.3-dev"
  1200 + }
  1201 + },
  1202 + "autoload": {
  1203 + "psr-4": {
  1204 + "Webmozart\\Assert\\": "src/"
  1205 + }
  1206 + },
  1207 + "notification-url": "https://packagist.org/downloads/",
  1208 + "license": [
  1209 + "MIT"
  1210 + ],
  1211 + "authors": [
  1212 + {
  1213 + "name": "Bernhard Schussek",
  1214 + "email": "bschussek@gmail.com"
  1215 + }
  1216 + ],
  1217 + "description": "Assertions to validate method input/output with nice error messages.",
  1218 + "keywords": [
  1219 + "assert",
  1220 + "check",
  1221 + "validate"
  1222 + ],
  1223 + "time": "2019-08-24T08:43:50+00:00"
  1224 + }
  1225 + ],
  1226 + "aliases": [],
  1227 + "minimum-stability": "stable",
  1228 + "stability-flags": [],
  1229 + "prefer-stable": false,
  1230 + "prefer-lowest": false,
  1231 + "platform": {
  1232 + "php": ">=5.4"
  1233 + },
  1234 + "platform-dev": []
  1235 +}
... ...
vendor/clagiordano/weblibs-configmanager/phpunit.xml 0 → 100644
... ... @@ -0,0 +1,19 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<phpunit backupGlobals="false"
  3 + backupStaticAttributes="false"
  4 + bootstrap="vendor/autoload.php"
  5 + colors="true"
  6 + convertErrorsToExceptions="true"
  7 + convertNoticesToExceptions="true"
  8 + convertWarningsToExceptions="true"
  9 + processIsolation="false"
  10 + stopOnFailure="false"
  11 + verbose="true"
  12 + printerClass="clagiordano\PhpunitResultPrinter\ResultPrinter"
  13 + >
  14 + <testsuites>
  15 + <testsuite name="Package Test Suite">
  16 + <directory suffix=".php">./tests/</directory>
  17 + </testsuite>
  18 + </testsuites>
  19 +</phpunit>
... ...
vendor/clagiordano/weblibs-configmanager/src/ConfigManager.php 0 → 100644
... ... @@ -0,0 +1,148 @@
  1 +<?php
  2 +
  3 +namespace clagiordano\weblibs\configmanager;
  4 +
  5 +/**
  6 + * Class ConfigManager, class for easily read and access to php config array file.
  7 + * @package clagiordano\weblibs\configmanager
  8 + */
  9 +class ConfigManager
  10 +{
  11 + /** @var array $configData */
  12 + private $configData = null;
  13 + /** @var string $configFilePath */
  14 + private $configFilePath = null;
  15 +
  16 + /**
  17 + * Create config object, optionally automatic load config
  18 + * from argument $configFilePath
  19 + *
  20 + * @param string $configFilePath
  21 + * @return ConfigManager
  22 + */
  23 + public function __construct($configFilePath = null)
  24 + {
  25 + return $this->loadConfig($configFilePath);
  26 + }
  27 +
  28 + /**
  29 + * Load config data from file and store it into internal property
  30 + *
  31 + * @param null|string $configFilePath
  32 + *
  33 + * @return ConfigManager
  34 + */
  35 + public function loadConfig($configFilePath = null)
  36 + {
  37 + if (!is_null($configFilePath)) {
  38 + $this->configFilePath = $configFilePath;
  39 +
  40 + if (file_exists($configFilePath)) {
  41 + $this->configData = require $configFilePath;
  42 + }
  43 + }
  44 +
  45 + return $this;
  46 + }
  47 +
  48 + /**
  49 + * Prepare and write config file on disk
  50 + *
  51 + * @param null|string $configFilePath
  52 + * @param bool $autoReloadConfig
  53 + *
  54 + * @return ConfigManager
  55 + * @throws \RuntimeException
  56 + */
  57 + public function saveConfigFile($configFilePath = null, $autoReloadConfig = false)
  58 + {
  59 + if (is_null($configFilePath)) {
  60 + $configFilePath = $this->configFilePath;
  61 + }
  62 +
  63 + $configFileContent = "<?php\n\n";
  64 + $configFileContent .= "return ";
  65 + $configFileContent .= var_export($this->configData, true);
  66 + $configFileContent .= ";\n\n";
  67 +
  68 + try {
  69 + file_put_contents($configFilePath, $configFileContent);
  70 + } catch (\Exception $exc) {
  71 + throw new \RuntimeException(
  72 + __METHOD__ . ": Failed to write config file to path '{$configFilePath}'"
  73 + );
  74 + }
  75 +
  76 + if ($autoReloadConfig) {
  77 + $this->loadConfig($configFilePath);
  78 + }
  79 +
  80 + return $this;
  81 + }
  82 +
  83 + /**
  84 + * Get value pointer from config for get/set value
  85 + *
  86 + * @param string $configPath
  87 + *
  88 + * @return mixed
  89 + */
  90 + private function & getValuePointer($configPath)
  91 + {
  92 + $configData =& $this->configData;
  93 + $parts = explode('.', $configPath);
  94 + $length = count($parts);
  95 +
  96 + for ($i = 0; $i < $length; $i++) {
  97 + if (!isset($configData[ $parts[ $i ] ])) {
  98 + $configData[ $parts[ $i ] ] = ($i === $length) ? [] : null;
  99 + }
  100 + $configData = &$configData[ $parts[ $i ] ];
  101 + }
  102 +
  103 + return $configData;
  104 + }
  105 +
  106 + /**
  107 + * Get value from config data throught keyValue path
  108 + *
  109 + * @param string $configPath
  110 + * @param mixed $defaultValue
  111 + *
  112 + * @return mixed
  113 + */
  114 + public function getValue($configPath, $defaultValue = null)
  115 + {
  116 + $stored = $this->getValuePointer($configPath);
  117 +
  118 + return is_null($stored) ? $defaultValue : $stored;
  119 + }
  120 +
  121 + /**
  122 + * Check if exist required config for keyValue
  123 + *
  124 + * @param string $keyValue
  125 + *
  126 + * @return mixed
  127 + */
  128 + public function existValue($keyValue)
  129 + {
  130 + return !is_null($this->getValue($keyValue));
  131 + }
  132 +
  133 + /**
  134 + * Set value in config path
  135 + *
  136 + * @param string $configPath
  137 + * @param mixed $newValue
  138 + *
  139 + * @return ConfigManager
  140 + */
  141 + public function setValue($configPath, $newValue)
  142 + {
  143 + $configData = &$this->getValuePointer($configPath);
  144 + $configData = $newValue;
  145 +
  146 + return $this;
  147 + }
  148 +}
... ...
vendor/clagiordano/weblibs-configmanager/tests/ConfigManagerTest.php 0 → 100644
... ... @@ -0,0 +1,113 @@
  1 +<?php
  2 +
  3 +namespace clagiordano\weblibs\configmanager\tests;
  4 +
  5 +use clagiordano\weblibs\configmanager\ConfigManager;
  6 +
  7 +/**
  8 + * Class ConfigManagerTest
  9 + * @package clagiordano\weblibs\configmanager\tests
  10 + */
  11 +class ConfigManagerTest extends \PHPUnit_Framework_TestCase
  12 +{
  13 + /** @var ConfigManager $config */
  14 + private $config = null;
  15 + private $configFile = 'testsdata/sample_config_data.php';
  16 +
  17 + public function setUp()
  18 + {
  19 + $this->config = new ConfigManager("TestConfigData.php");
  20 + $this->assertInstanceOf('clagiordano\weblibs\configmanager\ConfigManager', $this->config);
  21 +
  22 + $this->assertFileExists($this->configFile);
  23 + $this->config->loadConfig($this->configFile);
  24 + }
  25 +
  26 + public function testBasicUsage()
  27 + {
  28 + $this->assertNotNull(
  29 + $this->config->getValue('app')
  30 + );
  31 + }
  32 +
  33 + public function testFastUsage()
  34 + {
  35 + $this->assertNotNull(
  36 + $this->config->getValue('app')
  37 + );
  38 + }
  39 +
  40 + public function testFastInvalidKey()
  41 + {
  42 + $this->assertNull(
  43 + $this->config->getValue('invalidKey')
  44 + );
  45 + }
  46 +
  47 + public function testFastInvalidKeyWithDefault()
  48 + {
  49 + $this->assertEquals(
  50 + $this->config->getValue('invalidKey', 'defaultValue'),
  51 + 'defaultValue'
  52 + );
  53 + }
  54 +
  55 + public function testFastNestedConfig()
  56 + {
  57 + $this->assertNotNull(
  58 + $this->config->getValue('other.multi.deep.nested')
  59 + );
  60 + }
  61 +
  62 + public function testCheckExistConfig()
  63 + {
  64 + $this->assertTrue(
  65 + $this->config->existValue('other.multi.deep.nested')
  66 + );
  67 + }
  68 +
  69 + public function testCheckNotExistConfig()
  70 + {
  71 + $this->assertFalse(
  72 + $this->config->existValue('invalid.config.path')
  73 + );
  74 + }
  75 +
  76 + public function testSetValue()
  77 + {
  78 + $this->config->setValue('other.multi.deep.nested', __FUNCTION__);
  79 +
  80 + $this->assertEquals(
  81 + $this->config->getValue('other.multi.deep.nested'),
  82 + __FUNCTION__
  83 + );
  84 + }
  85 +
  86 + public function testFailedSaveConfig()
  87 + {
  88 + $this->setExpectedException('Exception');
  89 + $this->config->saveConfigFile('/invalid/path');
  90 + }
  91 +
  92 + public function testSuccessSaveConfigOnTempAndReload()
  93 + {
  94 + $this->config->setValue('other.multi.deep.nested', "SUPERNESTED");
  95 + $this->config->saveConfigFile("/tmp/testconfig.php", true);
  96 +
  97 + $this->assertEquals(
  98 + $this->config->getValue('other.multi.deep.nested'),
  99 + "SUPERNESTED"
  100 + );
  101 + }
  102 +
  103 + public function testOverwriteSameConfigFile()
  104 + {
  105 + $this->config->saveConfigFile();
  106 + }
  107 +
  108 + public function testFailWriteConfig()
  109 + {
  110 + $this->setExpectedException('\RuntimeException');
  111 + $this->config->saveConfigFile('/invalid/path/test.php');
  112 + }
  113 +}
0 114 \ No newline at end of file
... ...
vendor/clagiordano/weblibs-configmanager/testsdata/sample_config_data.php 0 → 100644
... ... @@ -0,0 +1,23 @@
  1 +<?php
  2 +
  3 +return array (
  4 + 'app' => 'app_name',
  5 + 'db' =>
  6 + array (
  7 + 'host' => 'localhost',
  8 + 'user' => 'sample_user',
  9 + 'pass' => 'sample_pass',
  10 + 'port' => 3306,
  11 + ),
  12 + 'other' =>
  13 + array (
  14 + 'multi' =>
  15 + array (
  16 + 'deep' =>
  17 + array (
  18 + 'nested' => 'config_value',
  19 + ),
  20 + ),
  21 + ),
  22 +);
  23 +
... ...
vendor/composer/autoload_files.php
... ... @@ -11,4 +11,9 @@ return array(
11 11 'a0edc8309cc5e1d60e3047b5df6b7052' => $vendorDir . '/guzzlehttp/psr7/src/functions_include.php',
12 12 '2c102faa651ef8ea5874edb585946bce' => $vendorDir . '/swiftmailer/swiftmailer/lib/swift_required.php',
13 13 '180092cfc969a12e06f2132a203a3184' => $vendorDir . '/codeception/verify/src/Codeception/function.php',
  14 + 'c964ee0ededf28c96ebd9db5099ef910' => $vendorDir . '/guzzlehttp/promises/src/functions_include.php',
  15 + '37a3dc5111fe8f707ab4c132ef1dbc62' => $vendorDir . '/guzzlehttp/guzzle/src/functions_include.php',
  16 +
  17 + 'd767e4fc2dc52fe66584ab8c6684783e' => $vendorDir . '/adbario/php-dot-notation/src/helpers.php',
  18 + '66453932bc1be9fb2f910a27947d11b6' => $vendorDir . '/alibabacloud/client/src/Functions.php',
14 19 );
... ...
vendor/composer/autoload_psr4.php
... ... @@ -30,10 +30,15 @@ return array(
30 30 'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'),
31 31 'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-message/src'),
32 32 'PhpAmqpLib\\' => array($vendorDir . '/php-amqplib/php-amqplib/PhpAmqpLib'),
33   - 'GuzzleHttp\\Psr7\\' => array($vendorDir . '/guzzlehttp/psr7/src'),
34 33 'Faker\\' => array($vendorDir . '/fzaninotto/faker/src/Faker'),
35 34 'Doctrine\\Instantiator\\' => array($vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator'),
36 35 'DeepCopy\\' => array($vendorDir . '/myclabs/deep-copy/src/DeepCopy'),
37 36 'Codeception\\Extension\\' => array($vendorDir . '/codeception/base/ext'),
38 37 'Codeception\\' => array($vendorDir . '/codeception/base/src/Codeception'),
  38 + 'AlibabaCloud\\Client\\' => array($vendorDir . '/alibabacloud/client/src'),
  39 + 'clagiordano\\weblibs\\configmanager\\' => array($vendorDir . '/clagiordano/weblibs-configmanager/src'),
  40 + 'GuzzleHttp\\Psr7\\' => array($vendorDir . '/guzzlehttp/psr7/src'),
  41 + 'GuzzleHttp\\Promise\\' => array($vendorDir . '/guzzlehttp/promises/src'),
  42 + 'GuzzleHttp\\' => array($vendorDir . '/guzzlehttp/guzzle/src'),
  43 + 'Adbar\\' => array($vendorDir . '/adbario/php-dot-notation/src'),
39 44 );
... ...
vendor/composer/autoload_static.php
... ... @@ -9,9 +9,13 @@ class ComposerStaticInit7e2bca6a7ad2fb4481bca401a2f2aefe
9 9 public static $files = array (
10 10 '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
11 11 '2cffec82183ee1cea088009cef9a6fc3' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier.composer.php',
12   - 'a0edc8309cc5e1d60e3047b5df6b7052' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/functions_include.php',
13 12 '2c102faa651ef8ea5874edb585946bce' => __DIR__ . '/..' . '/swiftmailer/swiftmailer/lib/swift_required.php',
14 13 '180092cfc969a12e06f2132a203a3184' => __DIR__ . '/..' . '/codeception/verify/src/Codeception/function.php',
  14 + '66453932bc1be9fb2f910a27947d11b6' => __DIR__ . '/..' . '/alibabacloud/client/src/Functions.php',
  15 + 'a0edc8309cc5e1d60e3047b5df6b7052' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/functions_include.php',
  16 + 'c964ee0ededf28c96ebd9db5099ef910' => __DIR__ . '/..' . '/guzzlehttp/promises/src/functions_include.php',
  17 + '37a3dc5111fe8f707ab4c132ef1dbc62' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/functions_include.php',
  18 + 'd767e4fc2dc52fe66584ab8c6684783e' => __DIR__ . '/..' . '/adbario/php-dot-notation/src/helpers.php',
15 19 );
16 20  
17 21 public static $prefixLengthsPsr4 = array (
... ... @@ -33,14 +37,15 @@ class ComposerStaticInit7e2bca6a7ad2fb4481bca401a2f2aefe
33 37 array (
34 38 'mdm\\admin\\' => 10,
35 39 ),
36   - 'c' =>
37   - array (
38   - 'cebe\\markdown\\' => 14,
39   - ),
40 40 'W' =>
41 41 array (
42 42 'Webmozart\\Assert\\' => 17,
43 43 ),
  44 + 'c' =>
  45 + array (
  46 + 'cebe\\markdown\\' => 14,
  47 + 'clagiordano\\weblibs\\configmanager\\' => 34,
  48 + ),
44 49 'S' =>
45 50 array (
46 51 'Symfony\\Polyfill\\Mbstring\\' => 26,
... ... @@ -60,10 +65,7 @@ class ComposerStaticInit7e2bca6a7ad2fb4481bca401a2f2aefe
60 65 'Psr\\Http\\Message\\' => 17,
61 66 'PhpAmqpLib\\' => 11,
62 67 ),
63   - 'G' =>
64   - array (
65   - 'GuzzleHttp\\Psr7\\' => 16,
66   - ),
  68 +
67 69 'F' =>
68 70 array (
69 71 'Faker\\' => 6,
... ... @@ -78,6 +80,17 @@ class ComposerStaticInit7e2bca6a7ad2fb4481bca401a2f2aefe
78 80 'Codeception\\Extension\\' => 22,
79 81 'Codeception\\' => 12,
80 82 ),
  83 + 'A' =>
  84 + array (
  85 + 'AlibabaCloud\\Client\\' => 20,
  86 + 'Adbar\\' => 6,
  87 + ),
  88 + 'G' =>
  89 + array (
  90 + 'GuzzleHttp\\Psr7\\' => 16,
  91 + 'GuzzleHttp\\Promise\\' => 19,
  92 + 'GuzzleHttp\\' => 11,
  93 + ),
81 94 );
82 95  
83 96 public static $prefixDirsPsr4 = array (
... ... @@ -179,10 +192,7 @@ class ComposerStaticInit7e2bca6a7ad2fb4481bca401a2f2aefe
179 192 array (
180 193 0 => __DIR__ . '/..' . '/php-amqplib/php-amqplib/PhpAmqpLib',
181 194 ),
182   - 'GuzzleHttp\\Psr7\\' =>
183   - array (
184   - 0 => __DIR__ . '/..' . '/guzzlehttp/psr7/src',
185   - ),
  195 +
186 196 'Faker\\' =>
187 197 array (
188 198 0 => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker',
... ... @@ -203,6 +213,30 @@ class ComposerStaticInit7e2bca6a7ad2fb4481bca401a2f2aefe
203 213 array (
204 214 0 => __DIR__ . '/..' . '/codeception/base/src/Codeception',
205 215 ),
  216 + 'AlibabaCloud\\Client\\' =>
  217 + array (
  218 + 0 => __DIR__ . '/..' . '/alibabacloud/client/src',
  219 + ),
  220 + 'clagiordano\\weblibs\\configmanager\\' =>
  221 + array (
  222 + 0 => __DIR__ . '/..' . '/clagiordano/weblibs-configmanager/src',
  223 + ),
  224 + 'GuzzleHttp\\Psr7\\' =>
  225 + array (
  226 + 0 => __DIR__ . '/..' . '/guzzlehttp/psr7/src',
  227 + ),
  228 + 'GuzzleHttp\\Promise\\' =>
  229 + array (
  230 + 0 => __DIR__ . '/..' . '/guzzlehttp/promises/src',
  231 + ),
  232 + 'GuzzleHttp\\' =>
  233 + array (
  234 + 0 => __DIR__ . '/..' . '/guzzlehttp/guzzle/src',
  235 + ),
  236 + 'Adbar\\' =>
  237 + array (
  238 + 0 => __DIR__ . '/..' . '/adbario/php-dot-notation/src',
  239 + ),
206 240 );
207 241  
208 242 public static $prefixesPsr0 = array (
... ...
vendor/composer/installed.json
... ... @@ -649,7 +649,133 @@
649 649 "fixtures"
650 650 ]
651 651 },
652   -
  652 + {
  653 + "name": "guzzlehttp/psr7",
  654 + "version": "1.4.2",
  655 + "version_normalized": "1.4.2.0",
  656 + "source": {
  657 + "type": "git",
  658 + "url": "https://github.com/guzzle/psr7.git",
  659 + "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c"
  660 + },
  661 + "dist": {
  662 + "type": "zip",
  663 + "url": "https://api.github.com/repos/guzzle/psr7/zipball/f5b8a8512e2b58b0071a7280e39f14f72e05d87c",
  664 + "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c",
  665 + "shasum": ""
  666 + },
  667 + "require": {
  668 + "php": ">=5.4.0",
  669 + "psr/http-message": "~1.0"
  670 + },
  671 + "provide": {
  672 + "psr/http-message-implementation": "1.0"
  673 + },
  674 + "require-dev": {
  675 + "phpunit/phpunit": "~4.0"
  676 + },
  677 + "time": "2017-03-20T17:10:46+00:00",
  678 + "type": "library",
  679 + "extra": {
  680 + "branch-alias": {
  681 + "dev-master": "1.4-dev"
  682 + }
  683 + },
  684 + "installation-source": "dist",
  685 + "autoload": {
  686 + "psr-4": {
  687 + "GuzzleHttp\\Psr7\\": "src/"
  688 + },
  689 + "files": [
  690 + "src/functions_include.php"
  691 + ]
  692 + },
  693 + "notification-url": "https://packagist.org/downloads/",
  694 + "license": [
  695 + "MIT"
  696 + ],
  697 + "authors": [
  698 + {
  699 + "name": "Michael Dowling",
  700 + "email": "mtdowling@gmail.com",
  701 + "homepage": "https://github.com/mtdowling"
  702 + },
  703 + {
  704 + "name": "Tobias Schultze",
  705 + "homepage": "https://github.com/Tobion"
  706 + }
  707 + ],
  708 + "description": "PSR-7 message implementation that also provides common utility methods",
  709 + "keywords": [
  710 + "http",
  711 + "message",
  712 + "request",
  713 + "response",
  714 + "stream",
  715 + "uri",
  716 + "url"
  717 + ]
  718 + },
  719 + {
  720 + "name": "mdmsoft/yii2-admin",
  721 + "version": "2.9",
  722 + "version_normalized": "2.9.0.0",
  723 + "source": {
  724 + "type": "git",
  725 + "url": "https://github.com/mdmsoft/yii2-admin.git",
  726 + "reference": "59e65542b1dc1abcf14c62588ea4ae128e08036c"
  727 + },
  728 + "dist": {
  729 + "type": "zip",
  730 + "url": "https://api.github.com/repos/mdmsoft/yii2-admin/zipball/59e65542b1dc1abcf14c62588ea4ae128e08036c",
  731 + "reference": "59e65542b1dc1abcf14c62588ea4ae128e08036c",
  732 + "shasum": ""
  733 + },
  734 + "require": {
  735 + "yiisoft/yii2": "~2.0.7"
  736 + },
  737 + "require-dev": {
  738 + "yiisoft/yii2-codeception": "~2.0"
  739 + },
  740 + "suggest": {
  741 + "yiisoft/yii2-bootstrap": "Used when using layout 'left-menu', 'right-menu' or 'top-menu'"
  742 + },
  743 + "time": "2018-11-12T12:35:44+00:00",
  744 + "type": "yii2-extension",
  745 + "extra": {
  746 + "branch-alias": {
  747 + "dev-1.0.master": "1.0.x-dev",
  748 + "dev-master": "2.x-dev"
  749 + },
  750 + "asset-installer-paths": {
  751 + "npm-asset-library": "vendor/npm",
  752 + "bower-asset-library": "vendor/bower"
  753 + }
  754 + },
  755 + "installation-source": "dist",
  756 + "autoload": {
  757 + "psr-4": {
  758 + "mdm\\admin\\": ""
  759 + }
  760 + },
  761 + "notification-url": "https://packagist.org/downloads/",
  762 + "license": [
  763 + "BSD-3-Clause"
  764 + ],
  765 + "authors": [
  766 + {
  767 + "name": "Misbahul Munir",
  768 + "email": "misbahuldmunir@gmail.com"
  769 + }
  770 + ],
  771 + "description": "RBAC Auth manager for Yii2 ",
  772 + "keywords": [
  773 + "admin",
  774 + "auth",
  775 + "rbac",
  776 + "yii"
  777 + ]
  778 + },
653 779 {
654 780 "name": "myclabs/deep-copy",
655 781 "version": "1.6.1",
... ... @@ -3134,5 +3260,313 @@
3134 3260 "swiftmailer",
3135 3261 "yii2"
3136 3262 ]
  3263 + },
  3264 + {
  3265 + "name": "adbario/php-dot-notation",
  3266 + "version": "2.2.0",
  3267 + "version_normalized": "2.2.0.0",
  3268 + "source": {
  3269 + "type": "git",
  3270 + "url": "https://github.com/adbario/php-dot-notation.git",
  3271 + "reference": "eee4fc81296531e6aafba4c2bbccfc5adab1676e"
  3272 + },
  3273 + "dist": {
  3274 + "type": "zip",
  3275 + "url": "https://api.github.com/repos/adbario/php-dot-notation/zipball/eee4fc81296531e6aafba4c2bbccfc5adab1676e",
  3276 + "reference": "eee4fc81296531e6aafba4c2bbccfc5adab1676e",
  3277 + "shasum": ""
  3278 + },
  3279 + "require": {
  3280 + "ext-json": "*",
  3281 + "php": ">=5.5"
  3282 + },
  3283 + "require-dev": {
  3284 + "phpunit/phpunit": "^4.0|^5.0|^6.0",
  3285 + "squizlabs/php_codesniffer": "^3.0"
  3286 + },
  3287 + "time": "2019-01-01T23:59:15+00:00",
  3288 + "type": "library",
  3289 + "installation-source": "dist",
  3290 + "autoload": {
  3291 + "files": [
  3292 + "src/helpers.php"
  3293 + ],
  3294 + "psr-4": {
  3295 + "Adbar\\": "src"
  3296 + }
  3297 + },
  3298 + "notification-url": "https://packagist.org/downloads/",
  3299 + "license": [
  3300 + "MIT"
  3301 + ],
  3302 + "authors": [
  3303 + {
  3304 + "name": "Riku Särkinen",
  3305 + "email": "riku@adbar.io"
  3306 + }
  3307 + ],
  3308 + "description": "PHP dot notation access to arrays",
  3309 + "homepage": "https://github.com/adbario/php-dot-notation",
  3310 + "keywords": [
  3311 + "ArrayAccess",
  3312 + "dotnotation"
  3313 + ]
  3314 + },
  3315 + {
  3316 + "name": "alibabacloud/client",
  3317 + "version": "1.1.1",
  3318 + "version_normalized": "1.1.1.0",
  3319 + "source": {
  3320 + "type": "git",
  3321 + "url": "https://github.com/aliyun/openapi-sdk-php-client.git",
  3322 + "reference": "5687188544773b5496c4c2baabba4ca0862576e5"
  3323 + },
  3324 + "dist": {
  3325 + "type": "zip",
  3326 + "url": "https://api.github.com/repos/aliyun/openapi-sdk-php-client/zipball/5687188544773b5496c4c2baabba4ca0862576e5",
  3327 + "reference": "5687188544773b5496c4c2baabba4ca0862576e5",
  3328 + "shasum": ""
  3329 + },
  3330 + "require": {
  3331 + "adbario/php-dot-notation": "^2.2",
  3332 + "clagiordano/weblibs-configmanager": "^1.0",
  3333 + "danielstjules/stringy": "^3.1",
  3334 + "ext-curl": "*",
  3335 + "ext-json": "*",
  3336 + "ext-libxml": "*",
  3337 + "ext-mbstring": "*",
  3338 + "ext-openssl": "*",
  3339 + "ext-simplexml": "*",
  3340 + "ext-xmlwriter": "*",
  3341 + "guzzlehttp/guzzle": "^6.3",
  3342 + "mtdowling/jmespath.php": "^2.4",
  3343 + "php": ">=5.5"
  3344 + },
  3345 + "require-dev": {
  3346 + "composer/composer": "^1.8",
  3347 + "drupal/coder": "^8.3",
  3348 + "ext-dom": "*",
  3349 + "ext-pcre": "*",
  3350 + "ext-sockets": "*",
  3351 + "ext-spl": "*",
  3352 + "league/climate": "^3.2.4",
  3353 + "mikey179/vfsstream": "^1.6",
  3354 + "monolog/monolog": "^1.24",
  3355 + "phpunit/phpunit": "^4.8.35|^5.4.3",
  3356 + "psr/cache": "^1.0",
  3357 + "symfony/dotenv": "^3.4",
  3358 + "symfony/var-dumper": "^3.4"
  3359 + },
  3360 + "suggest": {
  3361 + "ext-sockets": "To use client-side monitoring"
  3362 + },
  3363 + "time": "2019-04-02T15:21:13+00:00",
  3364 + "type": "library",
  3365 + "extra": {
  3366 + "branch-alias": {
  3367 + "dev-master": "1.0-dev"
  3368 + }
  3369 + },
  3370 + "installation-source": "dist",
  3371 + "autoload": {
  3372 + "psr-4": {
  3373 + "AlibabaCloud\\Client\\": "src"
  3374 + },
  3375 + "files": [
  3376 + "src/Functions.php"
  3377 + ]
  3378 + },
  3379 + "notification-url": "https://packagist.org/downloads/",
  3380 + "license": [
  3381 + "Apache-2.0"
  3382 + ],
  3383 + "authors": [
  3384 + {
  3385 + "name": "Alibaba Cloud SDK",
  3386 + "email": "sdk-team@alibabacloud.com",
  3387 + "homepage": "http://www.alibabacloud.com"
  3388 + }
  3389 + ],
  3390 + "description": "Alibaba Cloud Client for PHP - Use Alibaba Cloud in your PHP project",
  3391 + "homepage": "https://www.alibabacloud.com/",
  3392 + "keywords": [
  3393 + "alibaba",
  3394 + "alibabacloud",
  3395 + "aliyun",
  3396 + "client",
  3397 + "cloud",
  3398 + "library",
  3399 + "sdk",
  3400 + "tool"
  3401 + ]
  3402 + },
  3403 + {
  3404 + "name": "clagiordano/weblibs-configmanager",
  3405 + "version": "v1.0.6",
  3406 + "version_normalized": "1.0.6.0",
  3407 + "source": {
  3408 + "type": "git",
  3409 + "url": "https://github.com/clagiordano/weblibs-configmanager.git",
  3410 + "reference": "d1869310b9f57812581ff56cf4b456cbcc0d0516"
  3411 + },
  3412 + "dist": {
  3413 + "type": "zip",
  3414 + "url": "https://api.github.com/repos/clagiordano/weblibs-configmanager/zipball/d1869310b9f57812581ff56cf4b456cbcc0d0516",
  3415 + "reference": "d1869310b9f57812581ff56cf4b456cbcc0d0516",
  3416 + "shasum": ""
  3417 + },
  3418 + "require": {
  3419 + "php": ">=5.4"
  3420 + },
  3421 + "require-dev": {
  3422 + "phpunit/phpunit": "*"
  3423 + },
  3424 + "time": "2016-08-23T19:11:20+00:00",
  3425 + "type": "library",
  3426 + "installation-source": "dist",
  3427 + "autoload": {
  3428 + "psr-4": {
  3429 + "clagiordano\\weblibs\\configmanager\\": "src/"
  3430 + }
  3431 + },
  3432 + "notification-url": "https://packagist.org/downloads/",
  3433 + "license": [
  3434 + "LGPL-3.0"
  3435 + ],
  3436 + "authors": [
  3437 + {
  3438 + "name": "Claudio Giordano",
  3439 + "email": "claudio.giordano@autistici.org",
  3440 + "role": "Developer"
  3441 + }
  3442 + ],
  3443 + "description": "weblibs-configmanager is a tool library for easily read and access to php config array file and direct read/write configuration file / object",
  3444 + "keywords": [
  3445 + "clagiordano",
  3446 + "configuration",
  3447 + "manager",
  3448 + "tool",
  3449 + "weblibs"
  3450 + ]
  3451 + },
  3452 + {
  3453 + "name": "guzzlehttp/promises",
  3454 + "version": "v1.3.1",
  3455 + "version_normalized": "1.3.1.0",
  3456 + "source": {
  3457 + "type": "git",
  3458 + "url": "https://github.com/guzzle/promises.git",
  3459 + "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646"
  3460 + },
  3461 + "dist": {
  3462 + "type": "zip",
  3463 + "url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646",
  3464 + "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646",
  3465 + "shasum": ""
  3466 + },
  3467 + "require": {
  3468 + "php": ">=5.5.0"
  3469 + },
  3470 + "require-dev": {
  3471 + "phpunit/phpunit": "^4.0"
  3472 + },
  3473 + "time": "2016-12-20T10:07:11+00:00",
  3474 + "type": "library",
  3475 + "extra": {
  3476 + "branch-alias": {
  3477 + "dev-master": "1.4-dev"
  3478 + }
  3479 + },
  3480 + "installation-source": "dist",
  3481 + "autoload": {
  3482 + "psr-4": {
  3483 + "GuzzleHttp\\Promise\\": "src/"
  3484 + },
  3485 + "files": [
  3486 + "src/functions_include.php"
  3487 + ]
  3488 + },
  3489 + "notification-url": "https://packagist.org/downloads/",
  3490 + "license": [
  3491 + "MIT"
  3492 + ],
  3493 + "authors": [
  3494 + {
  3495 + "name": "Michael Dowling",
  3496 + "email": "mtdowling@gmail.com",
  3497 + "homepage": "https://github.com/mtdowling"
  3498 + }
  3499 + ],
  3500 + "description": "Guzzle promises library",
  3501 + "keywords": [
  3502 + "promise"
  3503 + ]
  3504 + },
  3505 + {
  3506 + "name": "guzzlehttp/guzzle",
  3507 + "version": "6.3.3",
  3508 + "version_normalized": "6.3.3.0",
  3509 + "source": {
  3510 + "type": "git",
  3511 + "url": "https://github.com/guzzle/guzzle.git",
  3512 + "reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba"
  3513 + },
  3514 + "dist": {
  3515 + "type": "zip",
  3516 + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/407b0cb880ace85c9b63c5f9551db498cb2d50ba",
  3517 + "reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba",
  3518 + "shasum": ""
  3519 + },
  3520 + "require": {
  3521 + "guzzlehttp/promises": "^1.0",
  3522 + "guzzlehttp/psr7": "^1.4",
  3523 + "php": ">=5.5"
  3524 + },
  3525 + "require-dev": {
  3526 + "ext-curl": "*",
  3527 + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0",
  3528 + "psr/log": "^1.0"
  3529 + },
  3530 + "suggest": {
  3531 + "psr/log": "Required for using the Log middleware"
  3532 + },
  3533 + "time": "2018-04-22T15:46:56+00:00",
  3534 + "type": "library",
  3535 + "extra": {
  3536 + "branch-alias": {
  3537 + "dev-master": "6.3-dev"
  3538 + }
  3539 + },
  3540 + "installation-source": "dist",
  3541 + "autoload": {
  3542 + "files": [
  3543 + "src/functions_include.php"
  3544 + ],
  3545 + "psr-4": {
  3546 + "GuzzleHttp\\": "src/"
  3547 + }
  3548 + },
  3549 + "notification-url": "https://packagist.org/downloads/",
  3550 + "license": [
  3551 + "MIT"
  3552 + ],
  3553 + "authors": [
  3554 + {
  3555 + "name": "Michael Dowling",
  3556 + "email": "mtdowling@gmail.com",
  3557 + "homepage": "https://github.com/mtdowling"
  3558 + }
  3559 + ],
  3560 + "description": "Guzzle is a PHP HTTP client library",
  3561 + "homepage": "http://guzzlephp.org/",
  3562 + "keywords": [
  3563 + "client",
  3564 + "curl",
  3565 + "framework",
  3566 + "http",
  3567 + "http client",
  3568 + "rest",
  3569 + "web service"
  3570 + ]
3137 3571 }
3138 3572 ]
... ...