Commit e1558792c2033dbff1cd690db250a089bf89ea4a
1 parent
d11ff394
Exists in
master
common(v1.0.0 build 2)
1. A 添加短信发送消息功能
Showing
15 changed files
with
2308 additions
and
24 deletions
Show diff stats
common/config/params.php
@@ -3,13 +3,5 @@ return [ | @@ -3,13 +3,5 @@ return [ | ||
3 | 'adminEmail' => 'admin@example.com', | 3 | 'adminEmail' => 'admin@example.com', |
4 | 'supportEmail' => 'support@example.com', | 4 | 'supportEmail' => 'support@example.com', |
5 | 'user.passwordResetTokenExpire' => 3600, | 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 | ]; |
@@ -0,0 +1,91 @@ | @@ -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 | \ No newline at end of file | 92 | \ No newline at end of file |
@@ -0,0 +1,17 @@ | @@ -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 |
@@ -0,0 +1,130 @@ | @@ -0,0 +1,130 @@ | ||
1 | +  | ||
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 | +[](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>* |
@@ -0,0 +1,36 @@ | @@ -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 | +} |
@@ -0,0 +1,1235 @@ | @@ -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 | +} |
@@ -0,0 +1,19 @@ | @@ -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 @@ | @@ -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 @@ | @@ -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 | \ No newline at end of file | 114 | \ No newline at end of file |
vendor/clagiordano/weblibs-configmanager/testsdata/sample_config_data.php
0 → 100644
@@ -0,0 +1,23 @@ | @@ -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,4 +11,9 @@ return array( | ||
11 | 'a0edc8309cc5e1d60e3047b5df6b7052' => $vendorDir . '/guzzlehttp/psr7/src/functions_include.php', | 11 | 'a0edc8309cc5e1d60e3047b5df6b7052' => $vendorDir . '/guzzlehttp/psr7/src/functions_include.php', |
12 | '2c102faa651ef8ea5874edb585946bce' => $vendorDir . '/swiftmailer/swiftmailer/lib/swift_required.php', | 12 | '2c102faa651ef8ea5874edb585946bce' => $vendorDir . '/swiftmailer/swiftmailer/lib/swift_required.php', |
13 | '180092cfc969a12e06f2132a203a3184' => $vendorDir . '/codeception/verify/src/Codeception/function.php', | 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,10 +30,15 @@ return array( | ||
30 | 'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'), | 30 | 'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'), |
31 | 'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-message/src'), | 31 | 'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-message/src'), |
32 | 'PhpAmqpLib\\' => array($vendorDir . '/php-amqplib/php-amqplib/PhpAmqpLib'), | 32 | 'PhpAmqpLib\\' => array($vendorDir . '/php-amqplib/php-amqplib/PhpAmqpLib'), |
33 | - 'GuzzleHttp\\Psr7\\' => array($vendorDir . '/guzzlehttp/psr7/src'), | ||
34 | 'Faker\\' => array($vendorDir . '/fzaninotto/faker/src/Faker'), | 33 | 'Faker\\' => array($vendorDir . '/fzaninotto/faker/src/Faker'), |
35 | 'Doctrine\\Instantiator\\' => array($vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator'), | 34 | 'Doctrine\\Instantiator\\' => array($vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator'), |
36 | 'DeepCopy\\' => array($vendorDir . '/myclabs/deep-copy/src/DeepCopy'), | 35 | 'DeepCopy\\' => array($vendorDir . '/myclabs/deep-copy/src/DeepCopy'), |
37 | 'Codeception\\Extension\\' => array($vendorDir . '/codeception/base/ext'), | 36 | 'Codeception\\Extension\\' => array($vendorDir . '/codeception/base/ext'), |
38 | 'Codeception\\' => array($vendorDir . '/codeception/base/src/Codeception'), | 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 +9,13 @@ class ComposerStaticInit7e2bca6a7ad2fb4481bca401a2f2aefe | ||
9 | public static $files = array ( | 9 | public static $files = array ( |
10 | '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php', | 10 | '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php', |
11 | '2cffec82183ee1cea088009cef9a6fc3' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier.composer.php', | 11 | '2cffec82183ee1cea088009cef9a6fc3' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier.composer.php', |
12 | - 'a0edc8309cc5e1d60e3047b5df6b7052' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/functions_include.php', | ||
13 | '2c102faa651ef8ea5874edb585946bce' => __DIR__ . '/..' . '/swiftmailer/swiftmailer/lib/swift_required.php', | 12 | '2c102faa651ef8ea5874edb585946bce' => __DIR__ . '/..' . '/swiftmailer/swiftmailer/lib/swift_required.php', |
14 | '180092cfc969a12e06f2132a203a3184' => __DIR__ . '/..' . '/codeception/verify/src/Codeception/function.php', | 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 | public static $prefixLengthsPsr4 = array ( | 21 | public static $prefixLengthsPsr4 = array ( |
@@ -33,14 +37,15 @@ class ComposerStaticInit7e2bca6a7ad2fb4481bca401a2f2aefe | @@ -33,14 +37,15 @@ class ComposerStaticInit7e2bca6a7ad2fb4481bca401a2f2aefe | ||
33 | array ( | 37 | array ( |
34 | 'mdm\\admin\\' => 10, | 38 | 'mdm\\admin\\' => 10, |
35 | ), | 39 | ), |
36 | - 'c' => | ||
37 | - array ( | ||
38 | - 'cebe\\markdown\\' => 14, | ||
39 | - ), | ||
40 | 'W' => | 40 | 'W' => |
41 | array ( | 41 | array ( |
42 | 'Webmozart\\Assert\\' => 17, | 42 | 'Webmozart\\Assert\\' => 17, |
43 | ), | 43 | ), |
44 | + 'c' => | ||
45 | + array ( | ||
46 | + 'cebe\\markdown\\' => 14, | ||
47 | + 'clagiordano\\weblibs\\configmanager\\' => 34, | ||
48 | + ), | ||
44 | 'S' => | 49 | 'S' => |
45 | array ( | 50 | array ( |
46 | 'Symfony\\Polyfill\\Mbstring\\' => 26, | 51 | 'Symfony\\Polyfill\\Mbstring\\' => 26, |
@@ -60,10 +65,7 @@ class ComposerStaticInit7e2bca6a7ad2fb4481bca401a2f2aefe | @@ -60,10 +65,7 @@ class ComposerStaticInit7e2bca6a7ad2fb4481bca401a2f2aefe | ||
60 | 'Psr\\Http\\Message\\' => 17, | 65 | 'Psr\\Http\\Message\\' => 17, |
61 | 'PhpAmqpLib\\' => 11, | 66 | 'PhpAmqpLib\\' => 11, |
62 | ), | 67 | ), |
63 | - 'G' => | ||
64 | - array ( | ||
65 | - 'GuzzleHttp\\Psr7\\' => 16, | ||
66 | - ), | 68 | + |
67 | 'F' => | 69 | 'F' => |
68 | array ( | 70 | array ( |
69 | 'Faker\\' => 6, | 71 | 'Faker\\' => 6, |
@@ -78,6 +80,17 @@ class ComposerStaticInit7e2bca6a7ad2fb4481bca401a2f2aefe | @@ -78,6 +80,17 @@ class ComposerStaticInit7e2bca6a7ad2fb4481bca401a2f2aefe | ||
78 | 'Codeception\\Extension\\' => 22, | 80 | 'Codeception\\Extension\\' => 22, |
79 | 'Codeception\\' => 12, | 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 | public static $prefixDirsPsr4 = array ( | 96 | public static $prefixDirsPsr4 = array ( |
@@ -179,10 +192,7 @@ class ComposerStaticInit7e2bca6a7ad2fb4481bca401a2f2aefe | @@ -179,10 +192,7 @@ class ComposerStaticInit7e2bca6a7ad2fb4481bca401a2f2aefe | ||
179 | array ( | 192 | array ( |
180 | 0 => __DIR__ . '/..' . '/php-amqplib/php-amqplib/PhpAmqpLib', | 193 | 0 => __DIR__ . '/..' . '/php-amqplib/php-amqplib/PhpAmqpLib', |
181 | ), | 194 | ), |
182 | - 'GuzzleHttp\\Psr7\\' => | ||
183 | - array ( | ||
184 | - 0 => __DIR__ . '/..' . '/guzzlehttp/psr7/src', | ||
185 | - ), | 195 | + |
186 | 'Faker\\' => | 196 | 'Faker\\' => |
187 | array ( | 197 | array ( |
188 | 0 => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker', | 198 | 0 => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker', |
@@ -203,6 +213,30 @@ class ComposerStaticInit7e2bca6a7ad2fb4481bca401a2f2aefe | @@ -203,6 +213,30 @@ class ComposerStaticInit7e2bca6a7ad2fb4481bca401a2f2aefe | ||
203 | array ( | 213 | array ( |
204 | 0 => __DIR__ . '/..' . '/codeception/base/src/Codeception', | 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 | public static $prefixesPsr0 = array ( | 242 | public static $prefixesPsr0 = array ( |
vendor/composer/installed.json
@@ -649,7 +649,133 @@ | @@ -649,7 +649,133 @@ | ||
649 | "fixtures" | 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 | "name": "myclabs/deep-copy", | 780 | "name": "myclabs/deep-copy", |
655 | "version": "1.6.1", | 781 | "version": "1.6.1", |
@@ -3134,5 +3260,313 @@ | @@ -3134,5 +3260,313 @@ | ||
3134 | "swiftmailer", | 3260 | "swiftmailer", |
3135 | "yii2" | 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 | ] |