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 | 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 | ]; | ... | ... |
... | ... | @@ -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 | ... | ... |
... | ... | @@ -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 @@ |
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 @@ |
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 @@ |
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 @@ |
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 | ] | ... | ... |