├── .gitignore
├── .scrutinizer.yml
├── .travis.yml
├── AssetBundle.php
├── CHANGELOG.md
├── CdnFreeAssetBundle.php
├── CdnProAssetBundle.php
├── FA.php
├── FAB.php
├── FAL.php
├── FAR.php
├── FAS.php
├── FontAwesome.php
├── LICENSE
├── NpmFreeAssetBundle.php
├── NpmProAssetBundle.php
├── README.md
├── bin
├── .gitignore
└── convertNames.sh
├── cdn
└── AssetBundle.php
├── component
├── Icon.php
├── Stack.php
└── UnorderedList.php
├── composer.json
├── composer.lock
├── phpunit.xml.dist
└── tests
└── unit
├── .gitignore
├── TestCase.php
├── bootstrap.php
├── config
├── .gitignore
└── main.php
├── fontawesome
└── MainTest.php
└── runtime
├── .gitignore
└── assets
└── .gitignore
/.gitignore:
--------------------------------------------------------------------------------
1 | /.idea
2 | /vendor
3 | /coverage
4 | /node_modules
5 | /package.json
6 | /package.lock
7 | /yarn.lock
8 |
--------------------------------------------------------------------------------
/.scrutinizer.yml:
--------------------------------------------------------------------------------
1 | build:
2 | environment:
3 | php:
4 | version: 7.1
5 | dependencies:
6 | before:
7 | - composer global require "fxp/composer-asset-plugin:~1.1"
8 | tests:
9 | override:
10 | - phpunit
11 | imports:
12 | - php
13 | checks:
14 | php:
15 | code_rating: true
16 | duplication: true
17 | tools:
18 | php_sim: false
19 | php_cpd: false
20 | php_pdepend: true
21 | php_analyzer: true
22 | php_changetracking: true
23 | external_code_coverage:
24 | timeout: 2100 # Timeout in seconds.
25 | filter:
26 | excluded_paths:
27 | - tests/*
28 | - vendor/*
29 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | dist: trusty
2 |
3 | language: php
4 |
5 | php:
6 | - 7.1
7 | - 7.2
8 | - 7.3
9 |
10 | matrix:
11 | fast_finish: true
12 |
13 | sudo: false
14 |
15 | cache:
16 | directories:
17 | - vendor
18 |
19 | install:
20 | - travis_retry composer self-update && composer --version
21 | - travis_retry composer global require "fxp/composer-asset-plugin:~1.1"
22 | - export PATH="$HOME/.composer/vendor/bin:$PATH"
23 | - travis_retry composer install --prefer-dist --no-interaction
24 |
25 | script:
26 | - ./vendor/bin/phpunit --verbose --coverage-clover=coverage/coverage.clover
27 |
28 | after_script:
29 | - travis_retry wget https://scrutinizer-ci.com/ocular.phar
30 | - php ocular.phar code-coverage:upload --format=php-clover coverage/coverage.clover
31 |
--------------------------------------------------------------------------------
/AssetBundle.php:
--------------------------------------------------------------------------------
1 | fixed_width()` is deprecated. Use instead `icon()->fixedWidth()`.
171 | * Method `icon()->pull_left()` is deprecated. Use instead `icon()->pullLeft()`.
172 | * Method `icon()->pull_right()` is deprecated. Use instead `icon()->pullRight()`.
173 | * Updated tests.
174 |
175 | 2015-04-08 - 2.9.1
176 | ------------------
177 | * Fix asset bundle publish bug on windows.
178 |
179 | 2015-03-31 - 2.9.0
180 | ------------------
181 | * In asset bundle added `init` method for filtering publising assets.
182 |
183 | 2015-03-17 - 2.8.2
184 | ------------------
185 | * Refactoring.
186 |
187 | 2015-03-16 - 2.8.1
188 | ------------------
189 | * Update readme.
190 |
191 | 2015-03-16 - 2.8.0
192 | ------------------
193 | * In class `FA` add static property `cssPrefix` for customizing css class.
194 | * Refactoring.
195 | * Update readme.
196 |
197 | 2015-02-08 - 2.7.1
198 | ------------------
199 | * Update travisCI config.
200 |
201 | 2015-01-26 - 2.7.0
202 | ------------------
203 | * `Font Awesome` updated to version `4.3`.
204 | * Update icons constants list.
205 | * Update readme.
206 |
207 | Until 2015-03-04
208 | ----------------
209 | * Implementation of extension.
210 |
--------------------------------------------------------------------------------
/CdnFreeAssetBundle.php:
--------------------------------------------------------------------------------
1 | [
24 | 'css/*',
25 | 'js/*',
26 | 'webfonts/*',
27 | 'sprites/*',
28 | 'svgs/*',
29 | ],
30 | ];
31 | }
32 |
--------------------------------------------------------------------------------
/NpmProAssetBundle.php:
--------------------------------------------------------------------------------
1 | [
24 | 'css/*',
25 | 'js/*',
26 | 'webfonts/*',
27 | 'sprites/*',
28 | 'svgs/*',
29 | ],
30 | ];
31 | }
32 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Yii 2 [Font Awesome](http://fortawesome.github.io/Font-Awesome/) Asset Bundle
2 | ===============================
3 |
4 | This extension provides a assets bundle with [Font Awesome](https://fontawesome.com/)
5 | for [Yii framework 2.0](http://www.yiiframework.com/) applications and helper to use icons.
6 |
7 | For license information check the [LICENSE](https://github.com/rmrevin/yii2-fontawesome/blob/master/LICENSE)-file.
8 |
9 | [](https://packagist.org/packages/rmrevin/yii2-fontawesome)
10 | [](https://packagist.org/packages/rmrevin/yii2-fontawesome)
11 | [](https://packagist.org/packages/rmrevin/yii2-fontawesome)
12 | [](https://packagist.org/packages/rmrevin/yii2-fontawesome)
13 |
14 | Code Status
15 | -----------
16 | [](https://scrutinizer-ci.com/g/rmrevin/yii2-fontawesome/?branch=master)
17 | [](https://scrutinizer-ci.com/g/rmrevin/yii2-fontawesome/?branch=master)
18 | [](https://travis-ci.org/rmrevin/yii2-fontawesome)
19 | [](https://www.versioneye.com/user/projects/54119b799e16229fe00000da)
20 |
21 | Support
22 | -------
23 | * [GutHub issues](https://github.com/rmrevin/yii2-fontawesome/issues)
24 | * [Public chat](https://gitter.im/rmrevin/support)
25 |
26 | Fontawesome version
27 | -------------------
28 | | Version of font-awesome | Version of extension |
29 | | ---:|:--- |
30 | | 4.* | ~2.17 |
31 | | 5.* | ~3.0 |
32 |
33 | Update to `3.2`
34 | ---------------
35 |
36 | Be careful in version 3.2 `rmrevin\yii\fontawesome\AssetBundle` package use cdn by default. More in the [changelog](https://github.com/rmrevin/yii2-fontawesome/blob/master/CHANGELOG.md).
37 |
38 | Update to `3.0`
39 | ---------------
40 |
41 | Be careful in version 3.0 deprecated methods were removed. More in the [changelog](https://github.com/rmrevin/yii2-fontawesome/blob/master/CHANGELOG.md).
42 |
43 | Update to `2.17`
44 | ----------------
45 |
46 | Be careful in version 2.17 deprecated methods were removed. More in the [changelog](https://github.com/rmrevin/yii2-fontawesome/blob/2.x/CHANGELOG.md).
47 |
48 | Installation
49 | ------------
50 |
51 | The preferred way to install this extension is through [composer](https://getcomposer.org/).
52 |
53 | Either run
54 |
55 | ```bash
56 | composer require "rmrevin/yii2-fontawesome:~3.5"
57 | ```
58 |
59 | or add
60 |
61 | ```
62 | "rmrevin/yii2-fontawesome": "~3.5",
63 | ```
64 |
65 | to the `require` section of your `composer.json` file.
66 |
67 | Usage with fa pro version
68 | -------------------------
69 |
70 | ### CDN
71 | Register your domain here - https://fontawesome.com/how-to-use/on-the-web/setup/getting-started
72 |
73 | Add `CdnProAssetBundle` as depends of your app asset bundle:
74 | ```php
75 | class AppAsset extends AssetBundle
76 | {
77 | // ...
78 |
79 | public $depends = [
80 | // ...
81 | 'rmrevin\yii\fontawesome\CdnProAssetBundle'
82 | ];
83 | }
84 |
85 | ```
86 |
87 | Or inject `CdnProAssetBundle` in your view:
88 |
89 | ```php
90 | \rmrevin\yii\fontawesome\CdnProAssetBundle::register($this);
91 | ```
92 |
93 | ### NPM
94 | Install npm package of font:
95 | ```
96 | npm install @fortawesome/fontawesome-pro
97 | ```
98 | or
99 | ```
100 | yarn add @fortawesome/fontawesome-pro
101 | ```
102 |
103 | And add `NpmProAssetBundle` as depends of your app asset bundle:
104 | ```php
105 | class AppAsset extends AssetBundle
106 | {
107 | // ...
108 |
109 | public $depends = [
110 | // ...
111 | 'rmrevin\yii\fontawesome\NpmProAssetBundle'
112 | ];
113 | }
114 |
115 | ```
116 |
117 | Or inject `NpmProAssetBundle` in your view:
118 |
119 | ```php
120 | rmrevin\yii\fontawesome\NpmProAssetBundle::register($this);
121 | ```
122 |
123 | ### Optional
124 |
125 | In order for do not install the free version of the font-awesome package, you can add it to the `replace` section of `composer.json`.
126 |
127 | ```
128 | "replace": {
129 | "fortawesome/font-awesome": "*"
130 | },
131 | ```
132 |
133 | Usage with fa free version
134 | -------------------------
135 |
136 | ### CDN
137 | Add `CdnFreeAssetBundle` as depends of your app asset bundle:
138 | ```php
139 | class AppAsset extends AssetBundle
140 | {
141 | // ...
142 |
143 | public $depends = [
144 | // ...
145 | 'rmrevin\yii\fontawesome\CdnFreeAssetBundle'
146 | ];
147 | }
148 |
149 | ```
150 |
151 | Or inject `CdnFreeAssetBundle` in your view:
152 |
153 | ```php
154 | rmrevin\yii\fontawesome\CdnFreeAssetBundle::register($this);
155 | ```
156 |
157 | # Composer
158 |
159 | Free version of package `fortawesome/font-awesome` already installed in vendor.
160 |
161 | Add `NpmFreeAssetBundle` as depends of your app asset bundle:
162 | ```php
163 | class AppAsset extends AssetBundle
164 | {
165 | // ...
166 |
167 | public $depends = [
168 | // ...
169 | 'rmrevin\yii\fontawesome\NpmFreeAssetBundle'
170 | ];
171 | }
172 |
173 | ```
174 |
175 | Or inject `NpmFreeAssetBundle` in your view:
176 |
177 | ```php
178 | rmrevin\yii\fontawesome\NpmFreeAssetBundle::register($this);
179 | ```
180 |
181 | Class reference
182 | ---------------
183 |
184 | Namespace: `rmrevin\yii\fontawesome`;
185 |
186 | ### Class `FAB`, `FAL`, `FAR`, `FAS` or `FontAwesome`
187 |
188 | * `static FAR::icon($name, $options=[])` - Creates an [`component\Icon`](#class-componenticon) that can be used to FontAwesome html icon
189 | * `$name` - name of icon in font awesome set.
190 | * `$options` - additional attributes for `i.fa` html tag.
191 | * `static FAR::stack($name, $options=[])` - Creates an [`component\Stack`](#class-componentstack) that can be used to FontAwesome html icon
192 | * `$options` - additional attributes for `span.fa-stack` html tag.
193 |
194 | ### Class `component\Icon`
195 |
196 | * `(string)$Icon` - render icon
197 | * `$Icon->addCssClass($value)` - add to html tag css class in `$value`
198 | * `$value` - name of css class
199 | * `$Icon->inverse()` - add to html tag css class `fa-inverse`
200 | * `$Icon->spin()` - add to html tag css class `fa-spin`
201 | * `$Icon->fixedWidth()` - add to html tag css class `fa-fw`
202 | * `$Icon->ul()` - add to html tag css class `fa-ul`
203 | * `$Icon->li()` - add to html tag css class `fa-li`
204 | * `$Icon->border()` - add to html tag css class `fa-border`
205 | * `$Icon->pullLeft()` - add to html tag css class `pull-left`
206 | * `$Icon->pullRight()` - add to html tag css class `pull-right`
207 | * `$Icon->size($value)` - add to html tag css class with size
208 | * `$value` - size value (variants: `FA::SIZE_LARGE`, `FA::SIZE_2X`, `FA::SIZE_3X`, `FA::SIZE_4X`, `FA::SIZE_5X`)
209 | * `$Icon->rotate($value)` - add to html tag css class with rotate
210 | * `$value` - rotate value (variants: `FA::ROTATE_90`, `FA::ROTATE_180`, `FA::ROTATE_270`)
211 | * `$Icon->flip($value)` - add to html tag css class with rotate
212 | * `$value` - flip value (variants: `FA::FLIP_HORIZONTAL`, `FA::FLIP_VERTICAL`)
213 |
214 | ### Class `component\Stack`
215 |
216 | * `(string)$Stack` - render icon stack
217 | * `$Stack->icon($icon, $options=[])` - set icon for stack
218 | * `$icon` - name of icon or `component\Icon` object
219 | * `$options` - additional attributes for icon html tag.
220 | * `$Stack->icon($icon, $options=[])` - set background icon for stack
221 | * `$icon` - name of icon or `component\Icon` object
222 | * `$options` - additional attributes for icon html tag.
223 |
224 | Helper examples
225 | ---------------
226 |
227 | ```php
228 | use rmrevin\yii\fontawesome\FAS;
229 | // or (only in pro version https://fontawesome.com/pro)
230 | // use rmrevin\yii\fontawesome\FAR;
231 | // use rmrevin\yii\fontawesome\FAL;
232 | // use rmrevin\yii\fontawesome\FAB;
233 |
234 | // normal use
235 | echo FAS::icon('home'); //
236 |
237 | // shortcut
238 | echo FAS::i('home'); //
239 |
240 | // icon with additional attributes
241 | echo FAS::icon(
242 | 'arrow-left',
243 | ['class' => 'big', 'data-role' => 'arrow']
244 | ); //
245 |
246 | // icon in button
247 | echo Html::submitButton(
248 | Yii::t('app', '{icon} Save', ['icon' => FAS::icon('check')])
249 | ); //
250 |
251 | // icon with additional methods
252 | echo FAS::icon('cog')->inverse(); //
253 | echo FAS::icon('cog')->spin(); //
254 | echo FAS::icon('cog')->fixedWidth(); //
255 | echo FAS::icon('cog')->li(); //
256 | echo FAS::icon('cog')->border(); //
257 | echo FAS::icon('cog')->pullLeft(); //
258 | echo FAS::icon('cog')->pullRight(); //
259 |
260 | // icon size
261 | echo FAS::icon('cog')->size(FAS::SIZE_3X);
262 | // values: FAS::SIZE_LARGE, FAS::SIZE_2X, FAS::SIZE_3X, FAS::SIZE_4X, FAS::SIZE_5X
263 | //
264 |
265 | // icon rotate
266 | echo FAS::icon('cog')->rotate(FAS::ROTATE_90);
267 | // values: FAS::ROTATE_90, FAS::ROTATE_180, FAS::ROTATE_180
268 | //
269 |
270 | // icon flip
271 | echo FAS::icon('cog')->flip(FAS::FLIP_VERTICAL);
272 | // values: FAS::FLIP_HORIZONTAL, FAS::FLIP_VERTICAL
273 | //
274 |
275 | // icon with multiple methods
276 | echo FAS::icon('cog')
277 | ->spin()
278 | ->fixedWidth()
279 | ->pullLeft()
280 | ->size(FAS::SIZE_LARGE);
281 | //
282 |
283 | // icons stack
284 | echo FAS::stack()
285 | ->icon('twitter')
286 | ->on('square-o');
287 | //
288 | //
289 | //
290 | //
291 |
292 | // icons stack with additional attributes
293 | echo FAS::stack(['data-role' => 'stacked-icon'])
294 | ->on(FAS::Icon('square')->inverse())
295 | ->icon(FAS::Icon('cog')->spin());
296 | //
297 | //
298 | //
299 | //
300 |
301 | // Stacking text and icons
302 | echo FAS::stack()
303 | ->on(FAS::Icon('square'))
304 | ->text('1');
305 | //
306 | //
307 | // 1
308 | //
309 |
310 | // Stacking text and icons with options
311 | echo FAS::stack()
312 | ->on(FAS::Icon('square'))
313 | ->text('1', ['tag'=>'strong', 'class'=>'stacked-text']);
314 | //
315 | //
316 | // 1
317 | //
318 | // Now you can add some css for vertical text positioning:
319 | .stacked-text { margin-top: .3em; }
320 |
321 | // unordered list icons
322 | echo FAS::ul(['data-role' => 'unordered-list'])
323 | ->item('Bullet item', ['icon' => 'circle'])
324 | ->item('Checked item', ['icon' => 'check']);
325 | //
326 | // - Bullet item
327 | // - Checked Item
328 | //
329 |
330 | // autocomplete icons name in IDE
331 | echo FAS::icon(FAS::_COG);
332 | echo FAS::icon(FAS::_DESKTOP);
333 | echo FAS::stack()
334 | ->on(FAS::_CIRCLE_O)
335 | ->icon(FAS::_TWITTER);
336 | ```
337 |
--------------------------------------------------------------------------------
/bin/.gitignore:
--------------------------------------------------------------------------------
1 | result.txt
2 |
--------------------------------------------------------------------------------
/bin/convertNames.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
4 |
5 | VARIABLES_PATH="${DIR}/../vendor/fortawesome/font-awesome/scss/_variables.scss"
6 |
7 | RESULT_PATH="${DIR}/result.txt"
8 |
9 | echo '' > "${RESULT_PATH}"
10 |
11 | while IFS='' read -r line || [[ -n "$line" ]]; do
12 | if [[ ${line} =~ fa\-var\-([a-z0-9\-]+): ]]
13 | then
14 | iconName=${BASH_REMATCH[1]}
15 | upperIconName=`echo ${iconName} | tr /a-z/ /A-Z/`
16 | upperIconName=$(echo ${upperIconName} | sed 's/-/_/g')
17 |
18 | echo "const _${upperIconName} = '${iconName}';" >> "${RESULT_PATH}"
19 | fi
20 | done < "${VARIABLES_PATH}"
21 |
22 | echo "Done. See result in ${RESULT_PATH}";
23 |
--------------------------------------------------------------------------------
/cdn/AssetBundle.php:
--------------------------------------------------------------------------------
1 | options = $options;
40 | }
41 |
42 | /**
43 | * @return string
44 | */
45 | public function __toString()
46 | {
47 | $options = $this->options;
48 |
49 | $tag = ArrayHelper::remove($options, 'tag', 'i');
50 |
51 | return Html::tag($tag, null, $options);
52 | }
53 |
54 | /**
55 | * @return \rmrevin\yii\fontawesome\component\Icon
56 | * @throws \yii\base\InvalidConfigException
57 | */
58 | public function inverse()
59 | {
60 | return $this->addCssClass(FontAwesome::$basePrefix . '-inverse');
61 | }
62 |
63 | /**
64 | * @return \rmrevin\yii\fontawesome\component\Icon
65 | * @throws \yii\base\InvalidConfigException
66 | */
67 | public function spin()
68 | {
69 | return $this->addCssClass(FontAwesome::$basePrefix . '-spin');
70 | }
71 |
72 | /**
73 | * @return \rmrevin\yii\fontawesome\component\Icon
74 | * @throws \yii\base\InvalidConfigException
75 | */
76 | public function pulse()
77 | {
78 | return $this->addCssClass(FontAwesome::$basePrefix . '-pulse');
79 | }
80 |
81 | /**
82 | * @return \rmrevin\yii\fontawesome\component\Icon
83 | * @throws \yii\base\InvalidConfigException
84 | */
85 | public function fixedWidth()
86 | {
87 | return $this->addCssClass(FontAwesome::$basePrefix . '-fw');
88 | }
89 |
90 | /**
91 | * @return \rmrevin\yii\fontawesome\component\Icon
92 | * @throws \yii\base\InvalidConfigException
93 | */
94 | public function li()
95 | {
96 | return $this->addCssClass(FontAwesome::$basePrefix . '-li');
97 | }
98 |
99 | /**
100 | * @return \rmrevin\yii\fontawesome\component\Icon
101 | * @throws \yii\base\InvalidConfigException
102 | */
103 | public function border()
104 | {
105 | return $this->addCssClass(FontAwesome::$basePrefix . '-border');
106 | }
107 |
108 | /**
109 | * @return \rmrevin\yii\fontawesome\component\Icon
110 | * @throws \yii\base\InvalidConfigException
111 | */
112 | public function pullLeft()
113 | {
114 | return $this->addCssClass(FontAwesome::$basePrefix . '-pull-left');
115 | }
116 |
117 | /**
118 | * @return \rmrevin\yii\fontawesome\component\Icon
119 | * @throws \yii\base\InvalidConfigException
120 | */
121 | public function pullRight()
122 | {
123 | return $this->addCssClass(FontAwesome::$basePrefix . '-pull-right');
124 | }
125 |
126 | /**
127 | * @param string $value
128 | * @return \rmrevin\yii\fontawesome\component\Icon
129 | * @throws \yii\base\InvalidConfigException
130 | */
131 | public function size($value)
132 | {
133 | $values = [
134 | FontAwesome::SIZE_LG,
135 | FontAwesome::SIZE_SM,
136 | FontAwesome::SIZE_XS,
137 | FontAwesome::SIZE_2X,
138 | FontAwesome::SIZE_3X,
139 | FontAwesome::SIZE_4X,
140 | FontAwesome::SIZE_5X,
141 | FontAwesome::SIZE_6X,
142 | FontAwesome::SIZE_7X,
143 | FontAwesome::SIZE_8X,
144 | FontAwesome::SIZE_9X,
145 | FontAwesome::SIZE_10X,
146 | ];
147 |
148 | return $this->addCssClass(
149 | FontAwesome::$basePrefix . '-' . $value,
150 | in_array((string)$value, $values, true),
151 | sprintf(
152 | '%s - invalid value. Use one of the constants: %s.',
153 | 'FontAwesome::size()',
154 | implode(', ', $values)
155 | )
156 | );
157 | }
158 |
159 | /**
160 | * @param string $value
161 | * @return \rmrevin\yii\fontawesome\component\Icon
162 | * @throws \yii\base\InvalidConfigException
163 | */
164 | public function rotate($value)
165 | {
166 | $values = [FontAwesome::ROTATE_90, FontAwesome::ROTATE_180, FontAwesome::ROTATE_270];
167 |
168 | return $this->addCssClass(
169 | FontAwesome::$basePrefix . '-rotate-' . $value,
170 | in_array((string)$value, $values, true),
171 | sprintf(
172 | '%s - invalid value. Use one of the constants: %s.',
173 | 'FontAwesome::rotate()',
174 | implode(', ', $values)
175 | )
176 | );
177 | }
178 |
179 | /**
180 | * @param string $value
181 | * @return \rmrevin\yii\fontawesome\component\Icon
182 | * @throws \yii\base\InvalidConfigException
183 | */
184 | public function flip($value)
185 | {
186 | $values = [FontAwesome::FLIP_HORIZONTAL, FontAwesome::FLIP_VERTICAL];
187 |
188 | return $this->addCssClass(
189 | FontAwesome::$basePrefix . '-flip-' . $value,
190 | in_array((string)$value, [FontAwesome::FLIP_HORIZONTAL, FontAwesome::FLIP_VERTICAL], true),
191 | sprintf(
192 | '%s - invalid value. Use one of the constants: %s.',
193 | 'FontAwesome::flip()',
194 | implode(', ', $values)
195 | )
196 | );
197 | }
198 |
199 | /**
200 | * @param string $class
201 | * @param bool $condition
202 | * @param string|bool $throw
203 | * @return \rmrevin\yii\fontawesome\component\Icon
204 | * @throws \yii\base\InvalidConfigException
205 | * @codeCoverageIgnore
206 | */
207 | public function addCssClass($class, $condition = true, $throw = false)
208 | {
209 | if ($condition === false) {
210 | if (!empty($throw)) {
211 | $message = !is_string($throw)
212 | ? 'Condition is false'
213 | : $throw;
214 |
215 | throw new InvalidConfigException($message);
216 | }
217 | } else {
218 | Html::addCssClass($this->options, $class);
219 | }
220 |
221 | return $this;
222 | }
223 | }
224 |
--------------------------------------------------------------------------------
/component/Stack.php:
--------------------------------------------------------------------------------
1 | iconCssPrefix = $iconCssPrefix;
52 |
53 | Html::addCssClass($options, FontAwesome::$basePrefix . '-stack');
54 |
55 | $this->options = $options;
56 | }
57 |
58 | /**
59 | * @return string
60 | * @throws \yii\base\InvalidConfigException
61 | */
62 | public function __toString()
63 | {
64 | $options = $this->options;
65 |
66 | $tag = ArrayHelper::remove($options, 'tag', 'span');
67 |
68 | $template = ArrayHelper::remove($options, 'template', '{back}{front}');
69 |
70 | $iconBack = $this->icon_back instanceof Icon
71 | ? $this->icon_back->addCssClass(FontAwesome::$basePrefix . '-stack-2x')
72 | : null;
73 |
74 | if ($this->text_front !== null) {
75 | $contentFront = $this->text_front;
76 | } else {
77 | $contentFront = $this->icon_front instanceof Icon
78 | ? $this->icon_front->addCssClass(FontAwesome::$basePrefix . '-stack-1x')
79 | : null;
80 | }
81 |
82 | $content = str_replace(['{back}', '{front}'], [$iconBack, $contentFront], $template);
83 |
84 | return Html::tag($tag, $content, $options);
85 | }
86 |
87 | /**
88 | * @param string|Icon $icon
89 | * @param array $options
90 | * @return \rmrevin\yii\fontawesome\component\Stack
91 | */
92 | public function icon($icon, $options = [])
93 | {
94 | if (is_string($icon)) {
95 | $icon = new Icon($this->iconCssPrefix, $icon, $options);
96 | }
97 |
98 | $this->icon_front = $icon;
99 |
100 | return $this;
101 | }
102 |
103 | /**
104 | * @param string $text
105 | * @param array $options
106 | * @return \rmrevin\yii\fontawesome\component\Stack
107 | */
108 | public function text($text = '', $options = [])
109 | {
110 | $tag = ArrayHelper::remove($options, 'tag', 'span');
111 |
112 | Html::addCssClass($options, FontAwesome::$basePrefix . '-stack-1x');
113 |
114 | $this->text_front = Html::tag($tag, $text, $options);
115 |
116 | return $this;
117 | }
118 |
119 | /**
120 | * @param string|Icon $icon
121 | * @param array $options
122 | * @return \rmrevin\yii\fontawesome\component\Stack
123 | */
124 | public function on($icon, $options = [])
125 | {
126 | if (is_string($icon)) {
127 | $icon = new Icon($this->iconCssPrefix, $icon, $options);
128 | }
129 |
130 | $this->icon_back = $icon;
131 |
132 | return $this;
133 | }
134 | }
135 |
--------------------------------------------------------------------------------
/component/UnorderedList.php:
--------------------------------------------------------------------------------
1 | iconCssPrefix = $iconCssPrefix;
39 |
40 | Html::addCssClass($options, FontAwesome::$basePrefix . '-ul');
41 |
42 | $options['item'] = function ($item, $index) {
43 | return call_user_func($item, $index);
44 | };
45 |
46 | $this->options = $options;
47 | }
48 |
49 | /**
50 | * @return string
51 | */
52 | public function __toString()
53 | {
54 | return Html::ul($this->items, $this->options);
55 | }
56 |
57 | /**
58 | * @param string $label
59 | * @param array $options
60 | * @return \rmrevin\yii\fontawesome\component\UnorderedList
61 | */
62 | public function item($label, $options = [])
63 | {
64 | $this->items[] = function ($index) use ($label, $options) {
65 | $tag = ArrayHelper::remove($options, 'tag', 'li');
66 |
67 | $icon = ArrayHelper::remove($options, 'icon');
68 | $icon = empty($icon)
69 | ? null
70 | : (is_string($icon) ? (string)(new Icon($this->iconCssPrefix, $icon))->li() : $icon);
71 |
72 | $content = trim($icon . $label);
73 |
74 | return Html::tag($tag, $content, $options);
75 | };
76 |
77 | return $this;
78 | }
79 | }
80 |
--------------------------------------------------------------------------------
/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "rmrevin/yii2-fontawesome",
3 | "description": "Asset Bundle for Yii2 with Font Awesome",
4 | "keywords": [
5 | "yii",
6 | "font",
7 | "awesome",
8 | "asset",
9 | "bundle"
10 | ],
11 | "type": "yii2-extension",
12 | "license": "MIT",
13 | "minimum-stability": "stable",
14 | "support": {
15 | "issues": "https://github.com/rmrevin/yii2-fontawesome/issues",
16 | "source": "https://github.com/rmrevin/yii2-fontawesome"
17 | },
18 | "authors": [
19 | {
20 | "name": "Revin Roman",
21 | "email": "roman@rmrevin.com",
22 | "homepage": "https://rmrevin.com/"
23 | }
24 | ],
25 | "require": {
26 | "php": ">=5.4.0",
27 | "fortawesome/font-awesome": "^5.15.0",
28 | "yiisoft/yii2": "^2.0.0"
29 | },
30 | "require-dev": {
31 | "doctrine/instantiator": "1.0.*",
32 | "phpdocumentor/reflection-docblock": "~3.1.0",
33 | "phpunit/phpunit": "^6.0"
34 | },
35 | "autoload": {
36 | "psr-4": {
37 | "rmrevin\\yii\\fontawesome\\": ""
38 | }
39 | },
40 | "extra": {
41 | "asset-installer-paths": {
42 | "npm-asset-library": "vendor/npm",
43 | "bower-asset-library": "vendor/bower"
44 | }
45 | },
46 | "repositories": [
47 | {
48 | "type": "composer",
49 | "url": "https://asset-packagist.org"
50 | }
51 | ]
52 | }
53 |
--------------------------------------------------------------------------------
/composer.lock:
--------------------------------------------------------------------------------
1 | {
2 | "_readme": [
3 | "This file locks the dependencies of your project to a known state",
4 | "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
5 | "This file is @generated automatically"
6 | ],
7 | "content-hash": "b6c02db24a0b3e63c5702e7a9dab5d81",
8 | "packages": [
9 | {
10 | "name": "bower-asset/inputmask",
11 | "version": "3.3.11",
12 | "source": {
13 | "type": "git",
14 | "url": "https://github.com/RobinHerbots/Inputmask.git",
15 | "reference": "5e670ad62f50c738388d4dcec78d2888505ad77b"
16 | },
17 | "dist": {
18 | "type": "zip",
19 | "url": "https://api.github.com/repos/RobinHerbots/Inputmask/zipball/5e670ad62f50c738388d4dcec78d2888505ad77b",
20 | "reference": "5e670ad62f50c738388d4dcec78d2888505ad77b"
21 | },
22 | "require": {
23 | "bower-asset/jquery": ">=1.7"
24 | },
25 | "type": "bower-asset",
26 | "license": [
27 | "http://opensource.org/licenses/mit-license.php"
28 | ]
29 | },
30 | {
31 | "name": "bower-asset/jquery",
32 | "version": "3.5.1",
33 | "source": {
34 | "type": "git",
35 | "url": "https://github.com/jquery/jquery-dist.git",
36 | "reference": "4c0e4becb8263bb5b3e6dadc448d8e7305ef8215"
37 | },
38 | "dist": {
39 | "type": "zip",
40 | "url": "https://api.github.com/repos/jquery/jquery-dist/zipball/4c0e4becb8263bb5b3e6dadc448d8e7305ef8215",
41 | "reference": "4c0e4becb8263bb5b3e6dadc448d8e7305ef8215"
42 | },
43 | "type": "bower-asset",
44 | "license": [
45 | "MIT"
46 | ]
47 | },
48 | {
49 | "name": "bower-asset/punycode",
50 | "version": "v1.3.2",
51 | "source": {
52 | "type": "git",
53 | "url": "https://github.com/bestiejs/punycode.js.git",
54 | "reference": "38c8d3131a82567bfef18da09f7f4db68c84f8a3"
55 | },
56 | "dist": {
57 | "type": "zip",
58 | "url": "https://api.github.com/repos/bestiejs/punycode.js/zipball/38c8d3131a82567bfef18da09f7f4db68c84f8a3",
59 | "reference": "38c8d3131a82567bfef18da09f7f4db68c84f8a3"
60 | },
61 | "type": "bower-asset"
62 | },
63 | {
64 | "name": "bower-asset/yii2-pjax",
65 | "version": "2.0.7.1",
66 | "source": {
67 | "type": "git",
68 | "url": "https://github.com/yiisoft/jquery-pjax.git",
69 | "reference": "aef7b953107264f00234902a3880eb50dafc48be"
70 | },
71 | "dist": {
72 | "type": "zip",
73 | "url": "https://api.github.com/repos/yiisoft/jquery-pjax/zipball/aef7b953107264f00234902a3880eb50dafc48be",
74 | "reference": "aef7b953107264f00234902a3880eb50dafc48be"
75 | },
76 | "require": {
77 | "bower-asset/jquery": ">=1.8"
78 | },
79 | "type": "bower-asset",
80 | "license": [
81 | "MIT"
82 | ]
83 | },
84 | {
85 | "name": "cebe/markdown",
86 | "version": "1.2.1",
87 | "source": {
88 | "type": "git",
89 | "url": "https://github.com/cebe/markdown.git",
90 | "reference": "9bac5e971dd391e2802dca5400bbeacbaea9eb86"
91 | },
92 | "dist": {
93 | "type": "zip",
94 | "url": "https://api.github.com/repos/cebe/markdown/zipball/9bac5e971dd391e2802dca5400bbeacbaea9eb86",
95 | "reference": "9bac5e971dd391e2802dca5400bbeacbaea9eb86",
96 | "shasum": ""
97 | },
98 | "require": {
99 | "lib-pcre": "*",
100 | "php": ">=5.4.0"
101 | },
102 | "require-dev": {
103 | "cebe/indent": "*",
104 | "facebook/xhprof": "*@dev",
105 | "phpunit/phpunit": "4.1.*"
106 | },
107 | "bin": [
108 | "bin/markdown"
109 | ],
110 | "type": "library",
111 | "extra": {
112 | "branch-alias": {
113 | "dev-master": "1.2.x-dev"
114 | }
115 | },
116 | "autoload": {
117 | "psr-4": {
118 | "cebe\\markdown\\": ""
119 | }
120 | },
121 | "notification-url": "https://packagist.org/downloads/",
122 | "license": [
123 | "MIT"
124 | ],
125 | "authors": [
126 | {
127 | "name": "Carsten Brandt",
128 | "email": "mail@cebe.cc",
129 | "homepage": "http://cebe.cc/",
130 | "role": "Creator"
131 | }
132 | ],
133 | "description": "A super fast, highly extensible markdown parser for PHP",
134 | "homepage": "https://github.com/cebe/markdown#readme",
135 | "keywords": [
136 | "extensible",
137 | "fast",
138 | "gfm",
139 | "markdown",
140 | "markdown-extra"
141 | ],
142 | "time": "2018-03-26T11:24:36+00:00"
143 | },
144 | {
145 | "name": "ezyang/htmlpurifier",
146 | "version": "v4.13.0",
147 | "source": {
148 | "type": "git",
149 | "url": "https://github.com/ezyang/htmlpurifier.git",
150 | "reference": "08e27c97e4c6ed02f37c5b2b20488046c8d90d75"
151 | },
152 | "dist": {
153 | "type": "zip",
154 | "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/08e27c97e4c6ed02f37c5b2b20488046c8d90d75",
155 | "reference": "08e27c97e4c6ed02f37c5b2b20488046c8d90d75",
156 | "shasum": ""
157 | },
158 | "require": {
159 | "php": ">=5.2"
160 | },
161 | "require-dev": {
162 | "simpletest/simpletest": "dev-master#72de02a7b80c6bb8864ef9bf66d41d2f58f826bd"
163 | },
164 | "type": "library",
165 | "autoload": {
166 | "psr-0": {
167 | "HTMLPurifier": "library/"
168 | },
169 | "files": [
170 | "library/HTMLPurifier.composer.php"
171 | ],
172 | "exclude-from-classmap": [
173 | "/library/HTMLPurifier/Language/"
174 | ]
175 | },
176 | "notification-url": "https://packagist.org/downloads/",
177 | "license": [
178 | "LGPL-2.1-or-later"
179 | ],
180 | "authors": [
181 | {
182 | "name": "Edward Z. Yang",
183 | "email": "admin@htmlpurifier.org",
184 | "homepage": "http://ezyang.com"
185 | }
186 | ],
187 | "description": "Standards compliant HTML filter written in PHP",
188 | "homepage": "http://htmlpurifier.org/",
189 | "keywords": [
190 | "html"
191 | ],
192 | "time": "2020-06-29T00:56:53+00:00"
193 | },
194 | {
195 | "name": "fortawesome/font-awesome",
196 | "version": "5.15.1",
197 | "source": {
198 | "type": "git",
199 | "url": "https://github.com/FortAwesome/Font-Awesome.git",
200 | "reference": "57005cea6da7d1c67f3466974aecd25485f60452"
201 | },
202 | "dist": {
203 | "type": "zip",
204 | "url": "https://api.github.com/repos/FortAwesome/Font-Awesome/zipball/57005cea6da7d1c67f3466974aecd25485f60452",
205 | "reference": "57005cea6da7d1c67f3466974aecd25485f60452",
206 | "shasum": ""
207 | },
208 | "type": "library",
209 | "notification-url": "https://packagist.org/downloads/",
210 | "license": [
211 | "CC-BY-4.0",
212 | "OFL-1.1",
213 | "MIT"
214 | ],
215 | "authors": [
216 | {
217 | "name": "Travis Chase",
218 | "homepage": "http://twitter.com/supercodepoet"
219 | },
220 | {
221 | "name": "Dave Gandy",
222 | "homepage": "http://twitter.com/davegandy"
223 | },
224 | {
225 | "name": "Rob Madole",
226 | "homepage": "http://twitter.com/robmadole"
227 | },
228 | {
229 | "name": "Jory Raphael",
230 | "homepage": "http://twitter.com/sensibleworld"
231 | },
232 | {
233 | "name": "Geremia Taglialatela",
234 | "homepage": "http://twitter.com/gtagliala"
235 | },
236 | {
237 | "name": "Brian Talbot",
238 | "homepage": "http://twitter.com/talbs"
239 | },
240 | {
241 | "name": "Mike Wilkerson",
242 | "homepage": "http://twitter.com/mw77"
243 | }
244 | ],
245 | "description": "The iconic font, CSS, and SVG framework",
246 | "homepage": "https://fontawesome.com",
247 | "keywords": [
248 | "FontAwesome",
249 | "awesome",
250 | "bootstrap",
251 | "font",
252 | "icon",
253 | "svg"
254 | ],
255 | "time": "2020-10-05T16:44:11+00:00"
256 | },
257 | {
258 | "name": "yiisoft/yii2",
259 | "version": "2.0.40",
260 | "source": {
261 | "type": "git",
262 | "url": "https://github.com/yiisoft/yii2-framework.git",
263 | "reference": "debb520c1d72a2c97c09d70a2a2a4f600ef3958e"
264 | },
265 | "dist": {
266 | "type": "zip",
267 | "url": "https://api.github.com/repos/yiisoft/yii2-framework/zipball/debb520c1d72a2c97c09d70a2a2a4f600ef3958e",
268 | "reference": "debb520c1d72a2c97c09d70a2a2a4f600ef3958e",
269 | "shasum": ""
270 | },
271 | "require": {
272 | "bower-asset/inputmask": "~3.2.2 | ~3.3.5",
273 | "bower-asset/jquery": "3.5.*@stable | 3.4.*@stable | 3.3.*@stable | 3.2.*@stable | 3.1.*@stable | 2.2.*@stable | 2.1.*@stable | 1.11.*@stable | 1.12.*@stable",
274 | "bower-asset/punycode": "1.3.*",
275 | "bower-asset/yii2-pjax": "~2.0.1",
276 | "cebe/markdown": "~1.0.0 | ~1.1.0 | ~1.2.0",
277 | "ext-ctype": "*",
278 | "ext-mbstring": "*",
279 | "ezyang/htmlpurifier": "~4.6",
280 | "lib-pcre": "*",
281 | "php": ">=5.4.0",
282 | "yiisoft/yii2-composer": "~2.0.4"
283 | },
284 | "bin": [
285 | "yii"
286 | ],
287 | "type": "library",
288 | "extra": {
289 | "branch-alias": {
290 | "dev-master": "2.0.x-dev"
291 | }
292 | },
293 | "autoload": {
294 | "psr-4": {
295 | "yii\\": ""
296 | }
297 | },
298 | "notification-url": "https://packagist.org/downloads/",
299 | "license": [
300 | "BSD-3-Clause"
301 | ],
302 | "authors": [
303 | {
304 | "name": "Qiang Xue",
305 | "email": "qiang.xue@gmail.com",
306 | "homepage": "http://www.yiiframework.com/",
307 | "role": "Founder and project lead"
308 | },
309 | {
310 | "name": "Alexander Makarov",
311 | "email": "sam@rmcreative.ru",
312 | "homepage": "http://rmcreative.ru/",
313 | "role": "Core framework development"
314 | },
315 | {
316 | "name": "Maurizio Domba",
317 | "homepage": "http://mdomba.info/",
318 | "role": "Core framework development"
319 | },
320 | {
321 | "name": "Carsten Brandt",
322 | "email": "mail@cebe.cc",
323 | "homepage": "http://cebe.cc/",
324 | "role": "Core framework development"
325 | },
326 | {
327 | "name": "Timur Ruziev",
328 | "email": "resurtm@gmail.com",
329 | "homepage": "http://resurtm.com/",
330 | "role": "Core framework development"
331 | },
332 | {
333 | "name": "Paul Klimov",
334 | "email": "klimov.paul@gmail.com",
335 | "role": "Core framework development"
336 | },
337 | {
338 | "name": "Dmitry Naumenko",
339 | "email": "d.naumenko.a@gmail.com",
340 | "role": "Core framework development"
341 | },
342 | {
343 | "name": "Boudewijn Vahrmeijer",
344 | "email": "info@dynasource.eu",
345 | "homepage": "http://dynasource.eu",
346 | "role": "Core framework development"
347 | }
348 | ],
349 | "description": "Yii PHP Framework Version 2",
350 | "homepage": "http://www.yiiframework.com/",
351 | "keywords": [
352 | "framework",
353 | "yii2"
354 | ],
355 | "funding": [
356 | {
357 | "url": "https://github.com/yiisoft",
358 | "type": "github"
359 | },
360 | {
361 | "url": "https://opencollective.com/yiisoft",
362 | "type": "open_collective"
363 | },
364 | {
365 | "url": "https://tidelift.com/funding/github/packagist/yiisoft/yii2",
366 | "type": "tidelift"
367 | }
368 | ],
369 | "time": "2020-12-23T15:44:43+00:00"
370 | },
371 | {
372 | "name": "yiisoft/yii2-composer",
373 | "version": "2.0.10",
374 | "source": {
375 | "type": "git",
376 | "url": "https://github.com/yiisoft/yii2-composer.git",
377 | "reference": "94bb3f66e779e2774f8776d6e1bdeab402940510"
378 | },
379 | "dist": {
380 | "type": "zip",
381 | "url": "https://api.github.com/repos/yiisoft/yii2-composer/zipball/94bb3f66e779e2774f8776d6e1bdeab402940510",
382 | "reference": "94bb3f66e779e2774f8776d6e1bdeab402940510",
383 | "shasum": ""
384 | },
385 | "require": {
386 | "composer-plugin-api": "^1.0 | ^2.0"
387 | },
388 | "require-dev": {
389 | "composer/composer": "^1.0 | ^2.0@dev",
390 | "phpunit/phpunit": "<7"
391 | },
392 | "type": "composer-plugin",
393 | "extra": {
394 | "class": "yii\\composer\\Plugin",
395 | "branch-alias": {
396 | "dev-master": "2.0.x-dev"
397 | }
398 | },
399 | "autoload": {
400 | "psr-4": {
401 | "yii\\composer\\": ""
402 | }
403 | },
404 | "notification-url": "https://packagist.org/downloads/",
405 | "license": [
406 | "BSD-3-Clause"
407 | ],
408 | "authors": [
409 | {
410 | "name": "Qiang Xue",
411 | "email": "qiang.xue@gmail.com"
412 | },
413 | {
414 | "name": "Carsten Brandt",
415 | "email": "mail@cebe.cc"
416 | }
417 | ],
418 | "description": "The composer plugin for Yii extension installer",
419 | "keywords": [
420 | "composer",
421 | "extension installer",
422 | "yii2"
423 | ],
424 | "funding": [
425 | {
426 | "url": "https://github.com/yiisoft",
427 | "type": "github"
428 | },
429 | {
430 | "url": "https://opencollective.com/yiisoft",
431 | "type": "open_collective"
432 | },
433 | {
434 | "url": "https://tidelift.com/funding/github/packagist/yiisoft/yii2-composer",
435 | "type": "tidelift"
436 | }
437 | ],
438 | "time": "2020-06-24T00:04:01+00:00"
439 | }
440 | ],
441 | "packages-dev": [
442 | {
443 | "name": "doctrine/instantiator",
444 | "version": "1.0.5",
445 | "source": {
446 | "type": "git",
447 | "url": "https://github.com/doctrine/instantiator.git",
448 | "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d"
449 | },
450 | "dist": {
451 | "type": "zip",
452 | "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d",
453 | "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d",
454 | "shasum": ""
455 | },
456 | "require": {
457 | "php": ">=5.3,<8.0-DEV"
458 | },
459 | "require-dev": {
460 | "athletic/athletic": "~0.1.8",
461 | "ext-pdo": "*",
462 | "ext-phar": "*",
463 | "phpunit/phpunit": "~4.0",
464 | "squizlabs/php_codesniffer": "~2.0"
465 | },
466 | "type": "library",
467 | "extra": {
468 | "branch-alias": {
469 | "dev-master": "1.0.x-dev"
470 | }
471 | },
472 | "autoload": {
473 | "psr-4": {
474 | "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
475 | }
476 | },
477 | "notification-url": "https://packagist.org/downloads/",
478 | "license": [
479 | "MIT"
480 | ],
481 | "authors": [
482 | {
483 | "name": "Marco Pivetta",
484 | "email": "ocramius@gmail.com",
485 | "homepage": "http://ocramius.github.com/"
486 | }
487 | ],
488 | "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
489 | "homepage": "https://github.com/doctrine/instantiator",
490 | "keywords": [
491 | "constructor",
492 | "instantiate"
493 | ],
494 | "time": "2015-06-14T21:17:01+00:00"
495 | },
496 | {
497 | "name": "myclabs/deep-copy",
498 | "version": "1.9.5",
499 | "source": {
500 | "type": "git",
501 | "url": "https://github.com/myclabs/DeepCopy.git",
502 | "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef"
503 | },
504 | "dist": {
505 | "type": "zip",
506 | "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/b2c28789e80a97badd14145fda39b545d83ca3ef",
507 | "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef",
508 | "shasum": ""
509 | },
510 | "require": {
511 | "php": "^7.1"
512 | },
513 | "replace": {
514 | "myclabs/deep-copy": "self.version"
515 | },
516 | "require-dev": {
517 | "doctrine/collections": "^1.0",
518 | "doctrine/common": "^2.6",
519 | "phpunit/phpunit": "^7.1"
520 | },
521 | "type": "library",
522 | "autoload": {
523 | "psr-4": {
524 | "DeepCopy\\": "src/DeepCopy/"
525 | },
526 | "files": [
527 | "src/DeepCopy/deep_copy.php"
528 | ]
529 | },
530 | "notification-url": "https://packagist.org/downloads/",
531 | "license": [
532 | "MIT"
533 | ],
534 | "description": "Create deep copies (clones) of your objects",
535 | "keywords": [
536 | "clone",
537 | "copy",
538 | "duplicate",
539 | "object",
540 | "object graph"
541 | ],
542 | "time": "2020-01-17T21:11:47+00:00"
543 | },
544 | {
545 | "name": "phar-io/manifest",
546 | "version": "1.0.1",
547 | "source": {
548 | "type": "git",
549 | "url": "https://github.com/phar-io/manifest.git",
550 | "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0"
551 | },
552 | "dist": {
553 | "type": "zip",
554 | "url": "https://api.github.com/repos/phar-io/manifest/zipball/2df402786ab5368a0169091f61a7c1e0eb6852d0",
555 | "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0",
556 | "shasum": ""
557 | },
558 | "require": {
559 | "ext-dom": "*",
560 | "ext-phar": "*",
561 | "phar-io/version": "^1.0.1",
562 | "php": "^5.6 || ^7.0"
563 | },
564 | "type": "library",
565 | "extra": {
566 | "branch-alias": {
567 | "dev-master": "1.0.x-dev"
568 | }
569 | },
570 | "autoload": {
571 | "classmap": [
572 | "src/"
573 | ]
574 | },
575 | "notification-url": "https://packagist.org/downloads/",
576 | "license": [
577 | "BSD-3-Clause"
578 | ],
579 | "authors": [
580 | {
581 | "name": "Arne Blankerts",
582 | "email": "arne@blankerts.de",
583 | "role": "Developer"
584 | },
585 | {
586 | "name": "Sebastian Heuer",
587 | "email": "sebastian@phpeople.de",
588 | "role": "Developer"
589 | },
590 | {
591 | "name": "Sebastian Bergmann",
592 | "email": "sebastian@phpunit.de",
593 | "role": "Developer"
594 | }
595 | ],
596 | "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
597 | "time": "2017-03-05T18:14:27+00:00"
598 | },
599 | {
600 | "name": "phar-io/version",
601 | "version": "1.0.1",
602 | "source": {
603 | "type": "git",
604 | "url": "https://github.com/phar-io/version.git",
605 | "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df"
606 | },
607 | "dist": {
608 | "type": "zip",
609 | "url": "https://api.github.com/repos/phar-io/version/zipball/a70c0ced4be299a63d32fa96d9281d03e94041df",
610 | "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df",
611 | "shasum": ""
612 | },
613 | "require": {
614 | "php": "^5.6 || ^7.0"
615 | },
616 | "type": "library",
617 | "autoload": {
618 | "classmap": [
619 | "src/"
620 | ]
621 | },
622 | "notification-url": "https://packagist.org/downloads/",
623 | "license": [
624 | "BSD-3-Clause"
625 | ],
626 | "authors": [
627 | {
628 | "name": "Arne Blankerts",
629 | "email": "arne@blankerts.de",
630 | "role": "Developer"
631 | },
632 | {
633 | "name": "Sebastian Heuer",
634 | "email": "sebastian@phpeople.de",
635 | "role": "Developer"
636 | },
637 | {
638 | "name": "Sebastian Bergmann",
639 | "email": "sebastian@phpunit.de",
640 | "role": "Developer"
641 | }
642 | ],
643 | "description": "Library for handling version information and constraints",
644 | "time": "2017-03-05T17:38:23+00:00"
645 | },
646 | {
647 | "name": "phpdocumentor/reflection-common",
648 | "version": "1.0.1",
649 | "source": {
650 | "type": "git",
651 | "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
652 | "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6"
653 | },
654 | "dist": {
655 | "type": "zip",
656 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6",
657 | "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6",
658 | "shasum": ""
659 | },
660 | "require": {
661 | "php": ">=5.5"
662 | },
663 | "require-dev": {
664 | "phpunit/phpunit": "^4.6"
665 | },
666 | "type": "library",
667 | "extra": {
668 | "branch-alias": {
669 | "dev-master": "1.0.x-dev"
670 | }
671 | },
672 | "autoload": {
673 | "psr-4": {
674 | "phpDocumentor\\Reflection\\": [
675 | "src"
676 | ]
677 | }
678 | },
679 | "notification-url": "https://packagist.org/downloads/",
680 | "license": [
681 | "MIT"
682 | ],
683 | "authors": [
684 | {
685 | "name": "Jaap van Otterdijk",
686 | "email": "opensource@ijaap.nl"
687 | }
688 | ],
689 | "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
690 | "homepage": "http://www.phpdoc.org",
691 | "keywords": [
692 | "FQSEN",
693 | "phpDocumentor",
694 | "phpdoc",
695 | "reflection",
696 | "static analysis"
697 | ],
698 | "time": "2017-09-11T18:02:19+00:00"
699 | },
700 | {
701 | "name": "phpdocumentor/reflection-docblock",
702 | "version": "3.1.1",
703 | "source": {
704 | "type": "git",
705 | "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
706 | "reference": "8331b5efe816ae05461b7ca1e721c01b46bafb3e"
707 | },
708 | "dist": {
709 | "type": "zip",
710 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/8331b5efe816ae05461b7ca1e721c01b46bafb3e",
711 | "reference": "8331b5efe816ae05461b7ca1e721c01b46bafb3e",
712 | "shasum": ""
713 | },
714 | "require": {
715 | "php": ">=5.5",
716 | "phpdocumentor/reflection-common": "^1.0@dev",
717 | "phpdocumentor/type-resolver": "^0.2.0",
718 | "webmozart/assert": "^1.0"
719 | },
720 | "require-dev": {
721 | "mockery/mockery": "^0.9.4",
722 | "phpunit/phpunit": "^4.4"
723 | },
724 | "type": "library",
725 | "autoload": {
726 | "psr-4": {
727 | "phpDocumentor\\Reflection\\": [
728 | "src/"
729 | ]
730 | }
731 | },
732 | "notification-url": "https://packagist.org/downloads/",
733 | "license": [
734 | "MIT"
735 | ],
736 | "authors": [
737 | {
738 | "name": "Mike van Riel",
739 | "email": "me@mikevanriel.com"
740 | }
741 | ],
742 | "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
743 | "time": "2016-09-30T07:12:33+00:00"
744 | },
745 | {
746 | "name": "phpdocumentor/type-resolver",
747 | "version": "0.2.1",
748 | "source": {
749 | "type": "git",
750 | "url": "https://github.com/phpDocumentor/TypeResolver.git",
751 | "reference": "e224fb2ea2fba6d3ad6fdaef91cd09a172155ccb"
752 | },
753 | "dist": {
754 | "type": "zip",
755 | "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/e224fb2ea2fba6d3ad6fdaef91cd09a172155ccb",
756 | "reference": "e224fb2ea2fba6d3ad6fdaef91cd09a172155ccb",
757 | "shasum": ""
758 | },
759 | "require": {
760 | "php": ">=5.5",
761 | "phpdocumentor/reflection-common": "^1.0"
762 | },
763 | "require-dev": {
764 | "mockery/mockery": "^0.9.4",
765 | "phpunit/phpunit": "^5.2||^4.8.24"
766 | },
767 | "type": "library",
768 | "extra": {
769 | "branch-alias": {
770 | "dev-master": "1.0.x-dev"
771 | }
772 | },
773 | "autoload": {
774 | "psr-4": {
775 | "phpDocumentor\\Reflection\\": [
776 | "src/"
777 | ]
778 | }
779 | },
780 | "notification-url": "https://packagist.org/downloads/",
781 | "license": [
782 | "MIT"
783 | ],
784 | "authors": [
785 | {
786 | "name": "Mike van Riel",
787 | "email": "me@mikevanriel.com"
788 | }
789 | ],
790 | "time": "2016-11-25T06:54:22+00:00"
791 | },
792 | {
793 | "name": "phpspec/prophecy",
794 | "version": "v1.10.3",
795 | "source": {
796 | "type": "git",
797 | "url": "https://github.com/phpspec/prophecy.git",
798 | "reference": "451c3cd1418cf640de218914901e51b064abb093"
799 | },
800 | "dist": {
801 | "type": "zip",
802 | "url": "https://api.github.com/repos/phpspec/prophecy/zipball/451c3cd1418cf640de218914901e51b064abb093",
803 | "reference": "451c3cd1418cf640de218914901e51b064abb093",
804 | "shasum": ""
805 | },
806 | "require": {
807 | "doctrine/instantiator": "^1.0.2",
808 | "php": "^5.3|^7.0",
809 | "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0",
810 | "sebastian/comparator": "^1.2.3|^2.0|^3.0|^4.0",
811 | "sebastian/recursion-context": "^1.0|^2.0|^3.0|^4.0"
812 | },
813 | "require-dev": {
814 | "phpspec/phpspec": "^2.5 || ^3.2",
815 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1"
816 | },
817 | "type": "library",
818 | "extra": {
819 | "branch-alias": {
820 | "dev-master": "1.10.x-dev"
821 | }
822 | },
823 | "autoload": {
824 | "psr-4": {
825 | "Prophecy\\": "src/Prophecy"
826 | }
827 | },
828 | "notification-url": "https://packagist.org/downloads/",
829 | "license": [
830 | "MIT"
831 | ],
832 | "authors": [
833 | {
834 | "name": "Konstantin Kudryashov",
835 | "email": "ever.zet@gmail.com",
836 | "homepage": "http://everzet.com"
837 | },
838 | {
839 | "name": "Marcello Duarte",
840 | "email": "marcello.duarte@gmail.com"
841 | }
842 | ],
843 | "description": "Highly opinionated mocking framework for PHP 5.3+",
844 | "homepage": "https://github.com/phpspec/prophecy",
845 | "keywords": [
846 | "Double",
847 | "Dummy",
848 | "fake",
849 | "mock",
850 | "spy",
851 | "stub"
852 | ],
853 | "time": "2020-03-05T15:02:03+00:00"
854 | },
855 | {
856 | "name": "phpunit/php-code-coverage",
857 | "version": "5.3.2",
858 | "source": {
859 | "type": "git",
860 | "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
861 | "reference": "c89677919c5dd6d3b3852f230a663118762218ac"
862 | },
863 | "dist": {
864 | "type": "zip",
865 | "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/c89677919c5dd6d3b3852f230a663118762218ac",
866 | "reference": "c89677919c5dd6d3b3852f230a663118762218ac",
867 | "shasum": ""
868 | },
869 | "require": {
870 | "ext-dom": "*",
871 | "ext-xmlwriter": "*",
872 | "php": "^7.0",
873 | "phpunit/php-file-iterator": "^1.4.2",
874 | "phpunit/php-text-template": "^1.2.1",
875 | "phpunit/php-token-stream": "^2.0.1",
876 | "sebastian/code-unit-reverse-lookup": "^1.0.1",
877 | "sebastian/environment": "^3.0",
878 | "sebastian/version": "^2.0.1",
879 | "theseer/tokenizer": "^1.1"
880 | },
881 | "require-dev": {
882 | "phpunit/phpunit": "^6.0"
883 | },
884 | "suggest": {
885 | "ext-xdebug": "^2.5.5"
886 | },
887 | "type": "library",
888 | "extra": {
889 | "branch-alias": {
890 | "dev-master": "5.3.x-dev"
891 | }
892 | },
893 | "autoload": {
894 | "classmap": [
895 | "src/"
896 | ]
897 | },
898 | "notification-url": "https://packagist.org/downloads/",
899 | "license": [
900 | "BSD-3-Clause"
901 | ],
902 | "authors": [
903 | {
904 | "name": "Sebastian Bergmann",
905 | "email": "sebastian@phpunit.de",
906 | "role": "lead"
907 | }
908 | ],
909 | "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
910 | "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
911 | "keywords": [
912 | "coverage",
913 | "testing",
914 | "xunit"
915 | ],
916 | "time": "2018-04-06T15:36:58+00:00"
917 | },
918 | {
919 | "name": "phpunit/php-file-iterator",
920 | "version": "1.4.5",
921 | "source": {
922 | "type": "git",
923 | "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
924 | "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4"
925 | },
926 | "dist": {
927 | "type": "zip",
928 | "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4",
929 | "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4",
930 | "shasum": ""
931 | },
932 | "require": {
933 | "php": ">=5.3.3"
934 | },
935 | "type": "library",
936 | "extra": {
937 | "branch-alias": {
938 | "dev-master": "1.4.x-dev"
939 | }
940 | },
941 | "autoload": {
942 | "classmap": [
943 | "src/"
944 | ]
945 | },
946 | "notification-url": "https://packagist.org/downloads/",
947 | "license": [
948 | "BSD-3-Clause"
949 | ],
950 | "authors": [
951 | {
952 | "name": "Sebastian Bergmann",
953 | "email": "sb@sebastian-bergmann.de",
954 | "role": "lead"
955 | }
956 | ],
957 | "description": "FilterIterator implementation that filters files based on a list of suffixes.",
958 | "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
959 | "keywords": [
960 | "filesystem",
961 | "iterator"
962 | ],
963 | "time": "2017-11-27T13:52:08+00:00"
964 | },
965 | {
966 | "name": "phpunit/php-text-template",
967 | "version": "1.2.1",
968 | "source": {
969 | "type": "git",
970 | "url": "https://github.com/sebastianbergmann/php-text-template.git",
971 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
972 | },
973 | "dist": {
974 | "type": "zip",
975 | "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
976 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
977 | "shasum": ""
978 | },
979 | "require": {
980 | "php": ">=5.3.3"
981 | },
982 | "type": "library",
983 | "autoload": {
984 | "classmap": [
985 | "src/"
986 | ]
987 | },
988 | "notification-url": "https://packagist.org/downloads/",
989 | "license": [
990 | "BSD-3-Clause"
991 | ],
992 | "authors": [
993 | {
994 | "name": "Sebastian Bergmann",
995 | "email": "sebastian@phpunit.de",
996 | "role": "lead"
997 | }
998 | ],
999 | "description": "Simple template engine.",
1000 | "homepage": "https://github.com/sebastianbergmann/php-text-template/",
1001 | "keywords": [
1002 | "template"
1003 | ],
1004 | "time": "2015-06-21T13:50:34+00:00"
1005 | },
1006 | {
1007 | "name": "phpunit/php-timer",
1008 | "version": "1.0.9",
1009 | "source": {
1010 | "type": "git",
1011 | "url": "https://github.com/sebastianbergmann/php-timer.git",
1012 | "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f"
1013 | },
1014 | "dist": {
1015 | "type": "zip",
1016 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
1017 | "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
1018 | "shasum": ""
1019 | },
1020 | "require": {
1021 | "php": "^5.3.3 || ^7.0"
1022 | },
1023 | "require-dev": {
1024 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
1025 | },
1026 | "type": "library",
1027 | "extra": {
1028 | "branch-alias": {
1029 | "dev-master": "1.0-dev"
1030 | }
1031 | },
1032 | "autoload": {
1033 | "classmap": [
1034 | "src/"
1035 | ]
1036 | },
1037 | "notification-url": "https://packagist.org/downloads/",
1038 | "license": [
1039 | "BSD-3-Clause"
1040 | ],
1041 | "authors": [
1042 | {
1043 | "name": "Sebastian Bergmann",
1044 | "email": "sb@sebastian-bergmann.de",
1045 | "role": "lead"
1046 | }
1047 | ],
1048 | "description": "Utility class for timing",
1049 | "homepage": "https://github.com/sebastianbergmann/php-timer/",
1050 | "keywords": [
1051 | "timer"
1052 | ],
1053 | "time": "2017-02-26T11:10:40+00:00"
1054 | },
1055 | {
1056 | "name": "phpunit/php-token-stream",
1057 | "version": "2.0.2",
1058 | "source": {
1059 | "type": "git",
1060 | "url": "https://github.com/sebastianbergmann/php-token-stream.git",
1061 | "reference": "791198a2c6254db10131eecfe8c06670700904db"
1062 | },
1063 | "dist": {
1064 | "type": "zip",
1065 | "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/791198a2c6254db10131eecfe8c06670700904db",
1066 | "reference": "791198a2c6254db10131eecfe8c06670700904db",
1067 | "shasum": ""
1068 | },
1069 | "require": {
1070 | "ext-tokenizer": "*",
1071 | "php": "^7.0"
1072 | },
1073 | "require-dev": {
1074 | "phpunit/phpunit": "^6.2.4"
1075 | },
1076 | "type": "library",
1077 | "extra": {
1078 | "branch-alias": {
1079 | "dev-master": "2.0-dev"
1080 | }
1081 | },
1082 | "autoload": {
1083 | "classmap": [
1084 | "src/"
1085 | ]
1086 | },
1087 | "notification-url": "https://packagist.org/downloads/",
1088 | "license": [
1089 | "BSD-3-Clause"
1090 | ],
1091 | "authors": [
1092 | {
1093 | "name": "Sebastian Bergmann",
1094 | "email": "sebastian@phpunit.de"
1095 | }
1096 | ],
1097 | "description": "Wrapper around PHP's tokenizer extension.",
1098 | "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
1099 | "keywords": [
1100 | "tokenizer"
1101 | ],
1102 | "time": "2017-11-27T05:48:46+00:00"
1103 | },
1104 | {
1105 | "name": "phpunit/phpunit",
1106 | "version": "6.5.14",
1107 | "source": {
1108 | "type": "git",
1109 | "url": "https://github.com/sebastianbergmann/phpunit.git",
1110 | "reference": "bac23fe7ff13dbdb461481f706f0e9fe746334b7"
1111 | },
1112 | "dist": {
1113 | "type": "zip",
1114 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/bac23fe7ff13dbdb461481f706f0e9fe746334b7",
1115 | "reference": "bac23fe7ff13dbdb461481f706f0e9fe746334b7",
1116 | "shasum": ""
1117 | },
1118 | "require": {
1119 | "ext-dom": "*",
1120 | "ext-json": "*",
1121 | "ext-libxml": "*",
1122 | "ext-mbstring": "*",
1123 | "ext-xml": "*",
1124 | "myclabs/deep-copy": "^1.6.1",
1125 | "phar-io/manifest": "^1.0.1",
1126 | "phar-io/version": "^1.0",
1127 | "php": "^7.0",
1128 | "phpspec/prophecy": "^1.7",
1129 | "phpunit/php-code-coverage": "^5.3",
1130 | "phpunit/php-file-iterator": "^1.4.3",
1131 | "phpunit/php-text-template": "^1.2.1",
1132 | "phpunit/php-timer": "^1.0.9",
1133 | "phpunit/phpunit-mock-objects": "^5.0.9",
1134 | "sebastian/comparator": "^2.1",
1135 | "sebastian/diff": "^2.0",
1136 | "sebastian/environment": "^3.1",
1137 | "sebastian/exporter": "^3.1",
1138 | "sebastian/global-state": "^2.0",
1139 | "sebastian/object-enumerator": "^3.0.3",
1140 | "sebastian/resource-operations": "^1.0",
1141 | "sebastian/version": "^2.0.1"
1142 | },
1143 | "conflict": {
1144 | "phpdocumentor/reflection-docblock": "3.0.2",
1145 | "phpunit/dbunit": "<3.0"
1146 | },
1147 | "require-dev": {
1148 | "ext-pdo": "*"
1149 | },
1150 | "suggest": {
1151 | "ext-xdebug": "*",
1152 | "phpunit/php-invoker": "^1.1"
1153 | },
1154 | "bin": [
1155 | "phpunit"
1156 | ],
1157 | "type": "library",
1158 | "extra": {
1159 | "branch-alias": {
1160 | "dev-master": "6.5.x-dev"
1161 | }
1162 | },
1163 | "autoload": {
1164 | "classmap": [
1165 | "src/"
1166 | ]
1167 | },
1168 | "notification-url": "https://packagist.org/downloads/",
1169 | "license": [
1170 | "BSD-3-Clause"
1171 | ],
1172 | "authors": [
1173 | {
1174 | "name": "Sebastian Bergmann",
1175 | "email": "sebastian@phpunit.de",
1176 | "role": "lead"
1177 | }
1178 | ],
1179 | "description": "The PHP Unit Testing framework.",
1180 | "homepage": "https://phpunit.de/",
1181 | "keywords": [
1182 | "phpunit",
1183 | "testing",
1184 | "xunit"
1185 | ],
1186 | "time": "2019-02-01T05:22:47+00:00"
1187 | },
1188 | {
1189 | "name": "phpunit/phpunit-mock-objects",
1190 | "version": "5.0.10",
1191 | "source": {
1192 | "type": "git",
1193 | "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
1194 | "reference": "cd1cf05c553ecfec36b170070573e540b67d3f1f"
1195 | },
1196 | "dist": {
1197 | "type": "zip",
1198 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/cd1cf05c553ecfec36b170070573e540b67d3f1f",
1199 | "reference": "cd1cf05c553ecfec36b170070573e540b67d3f1f",
1200 | "shasum": ""
1201 | },
1202 | "require": {
1203 | "doctrine/instantiator": "^1.0.5",
1204 | "php": "^7.0",
1205 | "phpunit/php-text-template": "^1.2.1",
1206 | "sebastian/exporter": "^3.1"
1207 | },
1208 | "conflict": {
1209 | "phpunit/phpunit": "<6.0"
1210 | },
1211 | "require-dev": {
1212 | "phpunit/phpunit": "^6.5.11"
1213 | },
1214 | "suggest": {
1215 | "ext-soap": "*"
1216 | },
1217 | "type": "library",
1218 | "extra": {
1219 | "branch-alias": {
1220 | "dev-master": "5.0.x-dev"
1221 | }
1222 | },
1223 | "autoload": {
1224 | "classmap": [
1225 | "src/"
1226 | ]
1227 | },
1228 | "notification-url": "https://packagist.org/downloads/",
1229 | "license": [
1230 | "BSD-3-Clause"
1231 | ],
1232 | "authors": [
1233 | {
1234 | "name": "Sebastian Bergmann",
1235 | "email": "sebastian@phpunit.de",
1236 | "role": "lead"
1237 | }
1238 | ],
1239 | "description": "Mock Object library for PHPUnit",
1240 | "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
1241 | "keywords": [
1242 | "mock",
1243 | "xunit"
1244 | ],
1245 | "abandoned": true,
1246 | "time": "2018-08-09T05:50:03+00:00"
1247 | },
1248 | {
1249 | "name": "sebastian/code-unit-reverse-lookup",
1250 | "version": "1.0.1",
1251 | "source": {
1252 | "type": "git",
1253 | "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
1254 | "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18"
1255 | },
1256 | "dist": {
1257 | "type": "zip",
1258 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
1259 | "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
1260 | "shasum": ""
1261 | },
1262 | "require": {
1263 | "php": "^5.6 || ^7.0"
1264 | },
1265 | "require-dev": {
1266 | "phpunit/phpunit": "^5.7 || ^6.0"
1267 | },
1268 | "type": "library",
1269 | "extra": {
1270 | "branch-alias": {
1271 | "dev-master": "1.0.x-dev"
1272 | }
1273 | },
1274 | "autoload": {
1275 | "classmap": [
1276 | "src/"
1277 | ]
1278 | },
1279 | "notification-url": "https://packagist.org/downloads/",
1280 | "license": [
1281 | "BSD-3-Clause"
1282 | ],
1283 | "authors": [
1284 | {
1285 | "name": "Sebastian Bergmann",
1286 | "email": "sebastian@phpunit.de"
1287 | }
1288 | ],
1289 | "description": "Looks up which function or method a line of code belongs to",
1290 | "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
1291 | "time": "2017-03-04T06:30:41+00:00"
1292 | },
1293 | {
1294 | "name": "sebastian/comparator",
1295 | "version": "2.1.3",
1296 | "source": {
1297 | "type": "git",
1298 | "url": "https://github.com/sebastianbergmann/comparator.git",
1299 | "reference": "34369daee48eafb2651bea869b4b15d75ccc35f9"
1300 | },
1301 | "dist": {
1302 | "type": "zip",
1303 | "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/34369daee48eafb2651bea869b4b15d75ccc35f9",
1304 | "reference": "34369daee48eafb2651bea869b4b15d75ccc35f9",
1305 | "shasum": ""
1306 | },
1307 | "require": {
1308 | "php": "^7.0",
1309 | "sebastian/diff": "^2.0 || ^3.0",
1310 | "sebastian/exporter": "^3.1"
1311 | },
1312 | "require-dev": {
1313 | "phpunit/phpunit": "^6.4"
1314 | },
1315 | "type": "library",
1316 | "extra": {
1317 | "branch-alias": {
1318 | "dev-master": "2.1.x-dev"
1319 | }
1320 | },
1321 | "autoload": {
1322 | "classmap": [
1323 | "src/"
1324 | ]
1325 | },
1326 | "notification-url": "https://packagist.org/downloads/",
1327 | "license": [
1328 | "BSD-3-Clause"
1329 | ],
1330 | "authors": [
1331 | {
1332 | "name": "Jeff Welch",
1333 | "email": "whatthejeff@gmail.com"
1334 | },
1335 | {
1336 | "name": "Volker Dusch",
1337 | "email": "github@wallbash.com"
1338 | },
1339 | {
1340 | "name": "Bernhard Schussek",
1341 | "email": "bschussek@2bepublished.at"
1342 | },
1343 | {
1344 | "name": "Sebastian Bergmann",
1345 | "email": "sebastian@phpunit.de"
1346 | }
1347 | ],
1348 | "description": "Provides the functionality to compare PHP values for equality",
1349 | "homepage": "https://github.com/sebastianbergmann/comparator",
1350 | "keywords": [
1351 | "comparator",
1352 | "compare",
1353 | "equality"
1354 | ],
1355 | "time": "2018-02-01T13:46:46+00:00"
1356 | },
1357 | {
1358 | "name": "sebastian/diff",
1359 | "version": "2.0.1",
1360 | "source": {
1361 | "type": "git",
1362 | "url": "https://github.com/sebastianbergmann/diff.git",
1363 | "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd"
1364 | },
1365 | "dist": {
1366 | "type": "zip",
1367 | "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/347c1d8b49c5c3ee30c7040ea6fc446790e6bddd",
1368 | "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd",
1369 | "shasum": ""
1370 | },
1371 | "require": {
1372 | "php": "^7.0"
1373 | },
1374 | "require-dev": {
1375 | "phpunit/phpunit": "^6.2"
1376 | },
1377 | "type": "library",
1378 | "extra": {
1379 | "branch-alias": {
1380 | "dev-master": "2.0-dev"
1381 | }
1382 | },
1383 | "autoload": {
1384 | "classmap": [
1385 | "src/"
1386 | ]
1387 | },
1388 | "notification-url": "https://packagist.org/downloads/",
1389 | "license": [
1390 | "BSD-3-Clause"
1391 | ],
1392 | "authors": [
1393 | {
1394 | "name": "Kore Nordmann",
1395 | "email": "mail@kore-nordmann.de"
1396 | },
1397 | {
1398 | "name": "Sebastian Bergmann",
1399 | "email": "sebastian@phpunit.de"
1400 | }
1401 | ],
1402 | "description": "Diff implementation",
1403 | "homepage": "https://github.com/sebastianbergmann/diff",
1404 | "keywords": [
1405 | "diff"
1406 | ],
1407 | "time": "2017-08-03T08:09:46+00:00"
1408 | },
1409 | {
1410 | "name": "sebastian/environment",
1411 | "version": "3.1.0",
1412 | "source": {
1413 | "type": "git",
1414 | "url": "https://github.com/sebastianbergmann/environment.git",
1415 | "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5"
1416 | },
1417 | "dist": {
1418 | "type": "zip",
1419 | "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/cd0871b3975fb7fc44d11314fd1ee20925fce4f5",
1420 | "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5",
1421 | "shasum": ""
1422 | },
1423 | "require": {
1424 | "php": "^7.0"
1425 | },
1426 | "require-dev": {
1427 | "phpunit/phpunit": "^6.1"
1428 | },
1429 | "type": "library",
1430 | "extra": {
1431 | "branch-alias": {
1432 | "dev-master": "3.1.x-dev"
1433 | }
1434 | },
1435 | "autoload": {
1436 | "classmap": [
1437 | "src/"
1438 | ]
1439 | },
1440 | "notification-url": "https://packagist.org/downloads/",
1441 | "license": [
1442 | "BSD-3-Clause"
1443 | ],
1444 | "authors": [
1445 | {
1446 | "name": "Sebastian Bergmann",
1447 | "email": "sebastian@phpunit.de"
1448 | }
1449 | ],
1450 | "description": "Provides functionality to handle HHVM/PHP environments",
1451 | "homepage": "http://www.github.com/sebastianbergmann/environment",
1452 | "keywords": [
1453 | "Xdebug",
1454 | "environment",
1455 | "hhvm"
1456 | ],
1457 | "time": "2017-07-01T08:51:00+00:00"
1458 | },
1459 | {
1460 | "name": "sebastian/exporter",
1461 | "version": "3.1.2",
1462 | "source": {
1463 | "type": "git",
1464 | "url": "https://github.com/sebastianbergmann/exporter.git",
1465 | "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e"
1466 | },
1467 | "dist": {
1468 | "type": "zip",
1469 | "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/68609e1261d215ea5b21b7987539cbfbe156ec3e",
1470 | "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e",
1471 | "shasum": ""
1472 | },
1473 | "require": {
1474 | "php": "^7.0",
1475 | "sebastian/recursion-context": "^3.0"
1476 | },
1477 | "require-dev": {
1478 | "ext-mbstring": "*",
1479 | "phpunit/phpunit": "^6.0"
1480 | },
1481 | "type": "library",
1482 | "extra": {
1483 | "branch-alias": {
1484 | "dev-master": "3.1.x-dev"
1485 | }
1486 | },
1487 | "autoload": {
1488 | "classmap": [
1489 | "src/"
1490 | ]
1491 | },
1492 | "notification-url": "https://packagist.org/downloads/",
1493 | "license": [
1494 | "BSD-3-Clause"
1495 | ],
1496 | "authors": [
1497 | {
1498 | "name": "Sebastian Bergmann",
1499 | "email": "sebastian@phpunit.de"
1500 | },
1501 | {
1502 | "name": "Jeff Welch",
1503 | "email": "whatthejeff@gmail.com"
1504 | },
1505 | {
1506 | "name": "Volker Dusch",
1507 | "email": "github@wallbash.com"
1508 | },
1509 | {
1510 | "name": "Adam Harvey",
1511 | "email": "aharvey@php.net"
1512 | },
1513 | {
1514 | "name": "Bernhard Schussek",
1515 | "email": "bschussek@gmail.com"
1516 | }
1517 | ],
1518 | "description": "Provides the functionality to export PHP variables for visualization",
1519 | "homepage": "http://www.github.com/sebastianbergmann/exporter",
1520 | "keywords": [
1521 | "export",
1522 | "exporter"
1523 | ],
1524 | "time": "2019-09-14T09:02:43+00:00"
1525 | },
1526 | {
1527 | "name": "sebastian/global-state",
1528 | "version": "2.0.0",
1529 | "source": {
1530 | "type": "git",
1531 | "url": "https://github.com/sebastianbergmann/global-state.git",
1532 | "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4"
1533 | },
1534 | "dist": {
1535 | "type": "zip",
1536 | "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4",
1537 | "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4",
1538 | "shasum": ""
1539 | },
1540 | "require": {
1541 | "php": "^7.0"
1542 | },
1543 | "require-dev": {
1544 | "phpunit/phpunit": "^6.0"
1545 | },
1546 | "suggest": {
1547 | "ext-uopz": "*"
1548 | },
1549 | "type": "library",
1550 | "extra": {
1551 | "branch-alias": {
1552 | "dev-master": "2.0-dev"
1553 | }
1554 | },
1555 | "autoload": {
1556 | "classmap": [
1557 | "src/"
1558 | ]
1559 | },
1560 | "notification-url": "https://packagist.org/downloads/",
1561 | "license": [
1562 | "BSD-3-Clause"
1563 | ],
1564 | "authors": [
1565 | {
1566 | "name": "Sebastian Bergmann",
1567 | "email": "sebastian@phpunit.de"
1568 | }
1569 | ],
1570 | "description": "Snapshotting of global state",
1571 | "homepage": "http://www.github.com/sebastianbergmann/global-state",
1572 | "keywords": [
1573 | "global state"
1574 | ],
1575 | "time": "2017-04-27T15:39:26+00:00"
1576 | },
1577 | {
1578 | "name": "sebastian/object-enumerator",
1579 | "version": "3.0.3",
1580 | "source": {
1581 | "type": "git",
1582 | "url": "https://github.com/sebastianbergmann/object-enumerator.git",
1583 | "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5"
1584 | },
1585 | "dist": {
1586 | "type": "zip",
1587 | "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5",
1588 | "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5",
1589 | "shasum": ""
1590 | },
1591 | "require": {
1592 | "php": "^7.0",
1593 | "sebastian/object-reflector": "^1.1.1",
1594 | "sebastian/recursion-context": "^3.0"
1595 | },
1596 | "require-dev": {
1597 | "phpunit/phpunit": "^6.0"
1598 | },
1599 | "type": "library",
1600 | "extra": {
1601 | "branch-alias": {
1602 | "dev-master": "3.0.x-dev"
1603 | }
1604 | },
1605 | "autoload": {
1606 | "classmap": [
1607 | "src/"
1608 | ]
1609 | },
1610 | "notification-url": "https://packagist.org/downloads/",
1611 | "license": [
1612 | "BSD-3-Clause"
1613 | ],
1614 | "authors": [
1615 | {
1616 | "name": "Sebastian Bergmann",
1617 | "email": "sebastian@phpunit.de"
1618 | }
1619 | ],
1620 | "description": "Traverses array structures and object graphs to enumerate all referenced objects",
1621 | "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
1622 | "time": "2017-08-03T12:35:26+00:00"
1623 | },
1624 | {
1625 | "name": "sebastian/object-reflector",
1626 | "version": "1.1.1",
1627 | "source": {
1628 | "type": "git",
1629 | "url": "https://github.com/sebastianbergmann/object-reflector.git",
1630 | "reference": "773f97c67f28de00d397be301821b06708fca0be"
1631 | },
1632 | "dist": {
1633 | "type": "zip",
1634 | "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be",
1635 | "reference": "773f97c67f28de00d397be301821b06708fca0be",
1636 | "shasum": ""
1637 | },
1638 | "require": {
1639 | "php": "^7.0"
1640 | },
1641 | "require-dev": {
1642 | "phpunit/phpunit": "^6.0"
1643 | },
1644 | "type": "library",
1645 | "extra": {
1646 | "branch-alias": {
1647 | "dev-master": "1.1-dev"
1648 | }
1649 | },
1650 | "autoload": {
1651 | "classmap": [
1652 | "src/"
1653 | ]
1654 | },
1655 | "notification-url": "https://packagist.org/downloads/",
1656 | "license": [
1657 | "BSD-3-Clause"
1658 | ],
1659 | "authors": [
1660 | {
1661 | "name": "Sebastian Bergmann",
1662 | "email": "sebastian@phpunit.de"
1663 | }
1664 | ],
1665 | "description": "Allows reflection of object attributes, including inherited and non-public ones",
1666 | "homepage": "https://github.com/sebastianbergmann/object-reflector/",
1667 | "time": "2017-03-29T09:07:27+00:00"
1668 | },
1669 | {
1670 | "name": "sebastian/recursion-context",
1671 | "version": "3.0.0",
1672 | "source": {
1673 | "type": "git",
1674 | "url": "https://github.com/sebastianbergmann/recursion-context.git",
1675 | "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8"
1676 | },
1677 | "dist": {
1678 | "type": "zip",
1679 | "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8",
1680 | "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8",
1681 | "shasum": ""
1682 | },
1683 | "require": {
1684 | "php": "^7.0"
1685 | },
1686 | "require-dev": {
1687 | "phpunit/phpunit": "^6.0"
1688 | },
1689 | "type": "library",
1690 | "extra": {
1691 | "branch-alias": {
1692 | "dev-master": "3.0.x-dev"
1693 | }
1694 | },
1695 | "autoload": {
1696 | "classmap": [
1697 | "src/"
1698 | ]
1699 | },
1700 | "notification-url": "https://packagist.org/downloads/",
1701 | "license": [
1702 | "BSD-3-Clause"
1703 | ],
1704 | "authors": [
1705 | {
1706 | "name": "Jeff Welch",
1707 | "email": "whatthejeff@gmail.com"
1708 | },
1709 | {
1710 | "name": "Sebastian Bergmann",
1711 | "email": "sebastian@phpunit.de"
1712 | },
1713 | {
1714 | "name": "Adam Harvey",
1715 | "email": "aharvey@php.net"
1716 | }
1717 | ],
1718 | "description": "Provides functionality to recursively process PHP variables",
1719 | "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
1720 | "time": "2017-03-03T06:23:57+00:00"
1721 | },
1722 | {
1723 | "name": "sebastian/resource-operations",
1724 | "version": "1.0.0",
1725 | "source": {
1726 | "type": "git",
1727 | "url": "https://github.com/sebastianbergmann/resource-operations.git",
1728 | "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52"
1729 | },
1730 | "dist": {
1731 | "type": "zip",
1732 | "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
1733 | "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
1734 | "shasum": ""
1735 | },
1736 | "require": {
1737 | "php": ">=5.6.0"
1738 | },
1739 | "type": "library",
1740 | "extra": {
1741 | "branch-alias": {
1742 | "dev-master": "1.0.x-dev"
1743 | }
1744 | },
1745 | "autoload": {
1746 | "classmap": [
1747 | "src/"
1748 | ]
1749 | },
1750 | "notification-url": "https://packagist.org/downloads/",
1751 | "license": [
1752 | "BSD-3-Clause"
1753 | ],
1754 | "authors": [
1755 | {
1756 | "name": "Sebastian Bergmann",
1757 | "email": "sebastian@phpunit.de"
1758 | }
1759 | ],
1760 | "description": "Provides a list of PHP built-in functions that operate on resources",
1761 | "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
1762 | "time": "2015-07-28T20:34:47+00:00"
1763 | },
1764 | {
1765 | "name": "sebastian/version",
1766 | "version": "2.0.1",
1767 | "source": {
1768 | "type": "git",
1769 | "url": "https://github.com/sebastianbergmann/version.git",
1770 | "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019"
1771 | },
1772 | "dist": {
1773 | "type": "zip",
1774 | "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019",
1775 | "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019",
1776 | "shasum": ""
1777 | },
1778 | "require": {
1779 | "php": ">=5.6"
1780 | },
1781 | "type": "library",
1782 | "extra": {
1783 | "branch-alias": {
1784 | "dev-master": "2.0.x-dev"
1785 | }
1786 | },
1787 | "autoload": {
1788 | "classmap": [
1789 | "src/"
1790 | ]
1791 | },
1792 | "notification-url": "https://packagist.org/downloads/",
1793 | "license": [
1794 | "BSD-3-Clause"
1795 | ],
1796 | "authors": [
1797 | {
1798 | "name": "Sebastian Bergmann",
1799 | "email": "sebastian@phpunit.de",
1800 | "role": "lead"
1801 | }
1802 | ],
1803 | "description": "Library that helps with managing the version number of Git-hosted PHP projects",
1804 | "homepage": "https://github.com/sebastianbergmann/version",
1805 | "time": "2016-10-03T07:35:21+00:00"
1806 | },
1807 | {
1808 | "name": "symfony/polyfill-ctype",
1809 | "version": "v1.17.1",
1810 | "source": {
1811 | "type": "git",
1812 | "url": "https://github.com/symfony/polyfill-ctype.git",
1813 | "reference": "2edd75b8b35d62fd3eeabba73b26b8f1f60ce13d"
1814 | },
1815 | "dist": {
1816 | "type": "zip",
1817 | "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/2edd75b8b35d62fd3eeabba73b26b8f1f60ce13d",
1818 | "reference": "2edd75b8b35d62fd3eeabba73b26b8f1f60ce13d",
1819 | "shasum": ""
1820 | },
1821 | "require": {
1822 | "php": ">=5.3.3"
1823 | },
1824 | "suggest": {
1825 | "ext-ctype": "For best performance"
1826 | },
1827 | "type": "library",
1828 | "extra": {
1829 | "branch-alias": {
1830 | "dev-master": "1.17-dev"
1831 | },
1832 | "thanks": {
1833 | "name": "symfony/polyfill",
1834 | "url": "https://github.com/symfony/polyfill"
1835 | }
1836 | },
1837 | "autoload": {
1838 | "psr-4": {
1839 | "Symfony\\Polyfill\\Ctype\\": ""
1840 | },
1841 | "files": [
1842 | "bootstrap.php"
1843 | ]
1844 | },
1845 | "notification-url": "https://packagist.org/downloads/",
1846 | "license": [
1847 | "MIT"
1848 | ],
1849 | "authors": [
1850 | {
1851 | "name": "Gert de Pagter",
1852 | "email": "BackEndTea@gmail.com"
1853 | },
1854 | {
1855 | "name": "Symfony Community",
1856 | "homepage": "https://symfony.com/contributors"
1857 | }
1858 | ],
1859 | "description": "Symfony polyfill for ctype functions",
1860 | "homepage": "https://symfony.com",
1861 | "keywords": [
1862 | "compatibility",
1863 | "ctype",
1864 | "polyfill",
1865 | "portable"
1866 | ],
1867 | "funding": [
1868 | {
1869 | "url": "https://symfony.com/sponsor",
1870 | "type": "custom"
1871 | },
1872 | {
1873 | "url": "https://github.com/fabpot",
1874 | "type": "github"
1875 | },
1876 | {
1877 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
1878 | "type": "tidelift"
1879 | }
1880 | ],
1881 | "time": "2020-06-06T08:46:27+00:00"
1882 | },
1883 | {
1884 | "name": "theseer/tokenizer",
1885 | "version": "1.1.3",
1886 | "source": {
1887 | "type": "git",
1888 | "url": "https://github.com/theseer/tokenizer.git",
1889 | "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9"
1890 | },
1891 | "dist": {
1892 | "type": "zip",
1893 | "url": "https://api.github.com/repos/theseer/tokenizer/zipball/11336f6f84e16a720dae9d8e6ed5019efa85a0f9",
1894 | "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9",
1895 | "shasum": ""
1896 | },
1897 | "require": {
1898 | "ext-dom": "*",
1899 | "ext-tokenizer": "*",
1900 | "ext-xmlwriter": "*",
1901 | "php": "^7.0"
1902 | },
1903 | "type": "library",
1904 | "autoload": {
1905 | "classmap": [
1906 | "src/"
1907 | ]
1908 | },
1909 | "notification-url": "https://packagist.org/downloads/",
1910 | "license": [
1911 | "BSD-3-Clause"
1912 | ],
1913 | "authors": [
1914 | {
1915 | "name": "Arne Blankerts",
1916 | "email": "arne@blankerts.de",
1917 | "role": "Developer"
1918 | }
1919 | ],
1920 | "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
1921 | "time": "2019-06-13T22:48:21+00:00"
1922 | },
1923 | {
1924 | "name": "webmozart/assert",
1925 | "version": "1.9.0",
1926 | "source": {
1927 | "type": "git",
1928 | "url": "https://github.com/webmozart/assert.git",
1929 | "reference": "9dc4f203e36f2b486149058bade43c851dd97451"
1930 | },
1931 | "dist": {
1932 | "type": "zip",
1933 | "url": "https://api.github.com/repos/webmozart/assert/zipball/9dc4f203e36f2b486149058bade43c851dd97451",
1934 | "reference": "9dc4f203e36f2b486149058bade43c851dd97451",
1935 | "shasum": ""
1936 | },
1937 | "require": {
1938 | "php": "^5.3.3 || ^7.0",
1939 | "symfony/polyfill-ctype": "^1.8"
1940 | },
1941 | "conflict": {
1942 | "phpstan/phpstan": "<0.12.20",
1943 | "vimeo/psalm": "<3.9.1"
1944 | },
1945 | "require-dev": {
1946 | "phpunit/phpunit": "^4.8.36 || ^7.5.13"
1947 | },
1948 | "type": "library",
1949 | "autoload": {
1950 | "psr-4": {
1951 | "Webmozart\\Assert\\": "src/"
1952 | }
1953 | },
1954 | "notification-url": "https://packagist.org/downloads/",
1955 | "license": [
1956 | "MIT"
1957 | ],
1958 | "authors": [
1959 | {
1960 | "name": "Bernhard Schussek",
1961 | "email": "bschussek@gmail.com"
1962 | }
1963 | ],
1964 | "description": "Assertions to validate method input/output with nice error messages.",
1965 | "keywords": [
1966 | "assert",
1967 | "check",
1968 | "validate"
1969 | ],
1970 | "time": "2020-06-16T10:16:42+00:00"
1971 | }
1972 | ],
1973 | "aliases": [],
1974 | "minimum-stability": "stable",
1975 | "stability-flags": [],
1976 | "prefer-stable": false,
1977 | "prefer-lowest": false,
1978 | "platform": {
1979 | "php": ">=5.4.0"
1980 | },
1981 | "platform-dev": [],
1982 | "plugin-api-version": "1.1.0"
1983 | }
1984 |
--------------------------------------------------------------------------------
/phpunit.xml.dist:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 | ./
11 |
12 | ./tests
13 | ./vendor
14 |
15 |
16 |
17 |
18 |
19 | ./tests/unit/fontawesome
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/tests/unit/.gitignore:
--------------------------------------------------------------------------------
1 | runtime/cache/*
--------------------------------------------------------------------------------
/tests/unit/TestCase.php:
--------------------------------------------------------------------------------
1 | mock_application();
26 | }
27 |
28 | /**
29 | * Populates Yii::$app with a new application
30 | * The application will be destroyed on tearDown() automatically.
31 | * @param string $appClass
32 | */
33 | protected function mock_application($appClass = '\yii\console\Application')
34 | {
35 | // for update self::$params
36 | $this->get_param('id');
37 |
38 | /** @var \yii\console\Application $app */
39 | new $appClass(self::$params);
40 | }
41 |
42 | /**
43 | * Returns a test configuration param from /data/config.php
44 | * @param string $name params name
45 | * @param mixed $default default value to use when param is not set.
46 | * @return mixed the value of the configuration param
47 | */
48 | public function get_param($name, $default = null)
49 | {
50 | if (self::$params === null) {
51 | self::$params = require(__DIR__ . '/config/main.php');
52 | $main_local = __DIR__ . '/config/main-local.php';
53 | if (file_exists($main_local)) {
54 | self::$params = ArrayHelper::merge(self::$params, require($main_local));
55 | }
56 | }
57 |
58 | return isset(self::$params[$name]) ? self::$params[$name] : $default;
59 | }
60 |
61 | protected function tearDown()
62 | {
63 | parent::tearDown();
64 | }
65 |
66 | /**
67 | * Destroys application in Yii::$app by setting it to null.
68 | */
69 | protected function destroy_application()
70 | {
71 | \Yii::$app = null;
72 | }
73 | }
74 |
--------------------------------------------------------------------------------
/tests/unit/bootstrap.php:
--------------------------------------------------------------------------------
1 | 'testapp',
11 | 'basePath' => $baseDir,
12 | 'aliases' => [
13 | '@web' => '/',
14 | '@webroot' => $baseDir . '/runtime',
15 | '@vendor' => realpath($baseDir . '/../../vendor'),
16 | '@bower' => realpath($baseDir . '/../../vendor/bower'),
17 | ]
18 | ];
--------------------------------------------------------------------------------
/tests/unit/fontawesome/MainTest.php:
--------------------------------------------------------------------------------
1 | assertInstanceOf('rmrevin\yii\fontawesome\FAR', new FAR());
24 | $this->assertInstanceOf('rmrevin\yii\fontawesome\FontAwesome', new FAR());
25 |
26 | $this->assertInstanceOf('rmrevin\yii\fontawesome\FontAwesome', new FontAwesome());
27 |
28 | $Icon = FAR::icon('cog');
29 | $this->assertInstanceOf('rmrevin\yii\fontawesome\component\Icon', $Icon);
30 |
31 | $Stack = FAR::stack();
32 | $this->assertInstanceOf('rmrevin\yii\fontawesome\component\Stack', $Stack);
33 | }
34 |
35 | public function testStackOutput()
36 | {
37 | $this->assertEquals(
38 | (string)FAR::s(),
39 | ''
40 | );
41 |
42 | $this->assertEquals(
43 | (string)FAR::stack(),
44 | ''
45 | );
46 |
47 | $this->assertEquals(
48 | (string)FAR::stack(['tag' => 'div']),
49 | ''
50 | );
51 |
52 | $this->assertEquals(
53 | (string)FAR::stack()
54 | ->icon('cog'),
55 | ''
56 | );
57 |
58 | $this->assertEquals(
59 | (string)FAR::stack()
60 | ->on('square-o'),
61 | ''
62 | );
63 |
64 | $this->assertEquals(
65 | (string)FAR::stack()
66 | ->icon('cog')
67 | ->on('square-o'),
68 | ''
69 | );
70 |
71 | $this->assertEquals(
72 | (string)FAR::stack(['data-role' => 'stack'])
73 | ->icon('cog', ['data-role' => 'icon',])
74 | ->on('square-o', ['data-role' => 'background']),
75 | ''
76 | );
77 |
78 | $this->assertEquals(
79 | (string)FAR::stack()
80 | ->icon(FAR::icon('cog')->spin())
81 | ->on(FAR::icon('square-o')->size(FAR::SIZE_3X)),
82 | ''
83 | );
84 |
85 | $this->assertEquals(
86 | (string)FAR::stack()
87 | ->icon(FAR::Icon('cog')->spin())
88 | ->on(FAR::Icon('square-o')->size(FAR::SIZE_3X)),
89 | ''
90 | );
91 |
92 | $this->assertNotEquals(
93 | (string)FAR::stack()
94 | ->icon((string)FAR::Icon('cog')->spin())
95 | ->on((string)FAR::Icon('square-o')->size(FAR::SIZE_3X)),
96 | ''
97 | );
98 |
99 | $this->assertEquals(
100 | (string)FAR::stack()
101 | ->text('hot')
102 | ->on('square-o'),
103 | 'hot'
104 | );
105 | }
106 |
107 | public function testUlOutput()
108 | {
109 | $this->assertEquals(
110 | (string)FAR::ul(),
111 | ''
112 | );
113 |
114 | $this->assertEquals(
115 | (string)FAR::ul()
116 | ->item('Gear'),
117 | ""
118 | );
119 |
120 | $this->assertEquals(
121 | (string)FAR::ul()
122 | ->item('Gear', ['icon' => 'cog']),
123 | ""
124 | );
125 |
126 | $this->assertEquals(
127 | (string)FAR::ul()
128 | ->item('Check', ['icon' => 'check'])
129 | ->item('Gear', ['icon' => 'cog']),
130 | ""
131 | );
132 |
133 | $this->assertEquals(
134 | (string)FAR::ul(['tag' => 'ol'])
135 | ->item('Check', ['icon' => 'check'])
136 | ->item('Gear', ['icon' => 'cog']),
137 | "\n- Check
\n- Gear
\n
"
138 | );
139 |
140 | $this->assertEquals(
141 | (string)FAR::ul()
142 | ->item('Check', ['icon' => 'check', 'class' => 'another-class']),
143 | ""
144 | );
145 | }
146 |
147 | public function testAnotherPrefix()
148 | {
149 | FontAwesome::$basePrefix = 'fontawesome';
150 |
151 | $this->assertEquals((string)FAR::icon('cog'), '');
152 | $this->assertEquals((string)FAR::icon('cog', ['tag' => 'span']), '');
153 | $this->assertEquals((string)FAR::icon('cog')->addCssClass('highlight'), '');
154 |
155 | $this->assertEquals(
156 | (string)FAR::stack()
157 | ->icon(FAR::Icon('cog')->spin())
158 | ->on(FAR::Icon('square-o')->size(FAR::SIZE_3X)),
159 | ''
160 | );
161 |
162 | $this->assertEquals(
163 | (string)FAR::ul()
164 | ->item('Gear', ['icon' => 'cog']),
165 | ""
166 | );
167 |
168 | FontAwesome::$basePrefix = 'fa';
169 | }
170 |
171 | public function testIconOutput()
172 | {
173 | $this->assertEquals(FAR::i('cog'), '');
174 | $this->assertEquals(FAR::icon('cog'), '');
175 | $this->assertEquals(FAR::icon('cog', ['tag' => 'span']), '');
176 | $this->assertEquals(FAR::icon('cog')->addCssClass('highlight'), '');
177 |
178 | $this->assertEquals(FAR::icon('cog')->inverse(), '');
179 | $this->assertEquals(FAR::icon('cog')->spin(), '');
180 | $this->assertEquals(FAR::icon('cog')->pulse(), '');
181 | $this->assertEquals(FAR::icon('cog')->fixedWidth(), '');
182 | $this->assertEquals(FAR::icon('cog')->li(), '');
183 | $this->assertEquals(FAR::icon('cog')->border(), '');
184 | $this->assertEquals(FAR::icon('cog')->pullLeft(), '');
185 | $this->assertEquals(FAR::icon('cog')->pullRight(), '');
186 |
187 | $this->assertEquals(FAR::icon('cog')->size(FAR::SIZE_2X), '');
188 | $this->assertEquals(FAR::icon('cog')->size(FAR::SIZE_3X), '');
189 | $this->assertEquals(FAR::icon('cog')->size(FAR::SIZE_4X), '');
190 | $this->assertEquals(FAR::icon('cog')->size(FAR::SIZE_5X), '');
191 | $this->assertEquals(FAR::icon('cog')->size(FAR::SIZE_LARGE), '');
192 |
193 | $this->assertEquals(FAR::icon('cog')->rotate(FAR::ROTATE_90), '');
194 | $this->assertEquals(FAR::icon('cog')->rotate(FAR::ROTATE_180), '');
195 | $this->assertEquals(FAR::icon('cog')->rotate(FAR::ROTATE_270), '');
196 |
197 | $this->assertEquals(FAR::icon('cog')->flip(FAR::FLIP_HORIZONTAL), '');
198 | $this->assertEquals(FAR::icon('cog')->flip(FAR::FLIP_VERTICAL), '');
199 | }
200 |
201 | public function testIconSizeException()
202 | {
203 | $this->expectExceptionMessage(
204 | 'FontAwesome::size() - invalid value. Use one of the constants: lg, sm, xs, 2x, 3x, 4x, 5x, 6x, 7x, 8x, 9x, 10x.'
205 | );
206 |
207 | FAR::icon('cog')->size('badvalue');
208 | }
209 |
210 | public function testIconRotateException()
211 | {
212 | $this->expectExceptionMessage(
213 | 'FontAwesome::rotate() - invalid value. Use one of the constants: 90, 180, 270.'
214 | );
215 |
216 | FAR::icon('cog')->rotate('badvalue');
217 | }
218 |
219 | public function testIconFlipException()
220 | {
221 | $this->expectExceptionMessage(
222 | 'FontAwesome::flip() - invalid value. Use one of the constants: horizontal, vertical.'
223 | );
224 |
225 | FAR::icon('cog')->flip('badvalue');
226 | }
227 |
228 | public function testIconAddCssClassCondition()
229 | {
230 | $this->assertEquals(FAR::$cssPrefix, 'far');
231 | $this->assertEquals((string)FAR::icon('cog')->addCssClass('highlight', true), '');
232 |
233 | $this->expectExceptionMessage('Condition is false');
234 |
235 | FAR::icon('cog')->addCssClass('highlight', false, true);
236 | }
237 | }
238 |
--------------------------------------------------------------------------------
/tests/unit/runtime/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 | !assets
--------------------------------------------------------------------------------
/tests/unit/runtime/assets/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
--------------------------------------------------------------------------------