diff --git a/.php_cs.dist b/.php_cs.dist index 0a0f02f..81611cc 100644 --- a/.php_cs.dist +++ b/.php_cs.dist @@ -10,12 +10,27 @@ $finder = PhpCsFixer\Finder::create() ]) ->in(__DIR__); -return PhpCsFixer\Config::create() - ->setRules([ + return PhpCsFixer\Config::create() + ->setRules(array( '@PSR1' => true, '@PSR2' => true, - '@Symfony' => true, - 'concat_space' => ['spacing' => 'one'], - 'phpdoc_no_alias_tag' => [], - ]) + 'array_syntax' => array('syntax' => 'short'), + 'combine_consecutive_unsets' => true, + 'no_extra_consecutive_blank_lines' => array( + 'break', + 'continue', + 'extra', + 'return', + 'throw', + 'use', + 'parenthesis_brace_block', + 'square_brace_block', + 'curly_brace_block' + ), + 'no_useless_else' => true, + 'no_useless_return' => true, + 'ordered_class_elements' => true, + 'ordered_imports' => true, + 'phpdoc_add_missing_param_annotation' => true + )) ->setFinder($finder); diff --git a/composer.json b/composer.json index 66ff73d..2376bba 100644 --- a/composer.json +++ b/composer.json @@ -38,11 +38,13 @@ }, { "name": "Timur Ruziev", - "email": "resurtm@gmail.com", + "email": "resurtm@2amigos.us", "homepage": "http://resurtm.com", "role": "Developer" } ], + "minimum-stability": "dev", + "prefer-stable": true, "require": { "php": ">=5.5", "2amigos/yii2-selectize-widget": "~1.0", @@ -70,6 +72,14 @@ "Da\\User\\": "./src/User" } }, + "config": { + "fxp-asset": { + "installer-paths": { + "npm-asset-library": "vendor/npm", + "bower-asset-library": "vendor/bower" + } + } + }, "extra": { "bootstrap": "Da\\User\\Bootstrap" } diff --git a/composer.lock b/composer.lock index fbe1757..3d37d8b 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "a3487c38850210a1f70ecbd47629a680", - "content-hash": "2a2695eba4d025ba76be8783e6f80d6d", + "content-hash": "63de3f489d8b9b7b1e33d6a249e4d0b8", "packages": [ { "name": "2amigos/yii2-selectize-widget", @@ -71,7 +70,7 @@ "yii 2", "yii2" ], - "time": "2016-09-10 19:27:58" + "time": "2016-09-10T19:27:58+00:00" }, { "name": "bower-asset/bootstrap", @@ -155,16 +154,16 @@ }, { "name": "bower-asset/jquery.inputmask", - "version": "3.2.7", + "version": "3.3.7", "source": { "type": "git", "url": "https://github.com/RobinHerbots/Inputmask.git", - "reference": "5a72c563b502b8e05958a524cdfffafe9987be38" + "reference": "9835731cb78cac749734d94a1cb5bd70da4d3b10" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/RobinHerbots/Inputmask/zipball/5a72c563b502b8e05958a524cdfffafe9987be38", - "reference": "5a72c563b502b8e05958a524cdfffafe9987be38", + "url": "https://api.github.com/repos/RobinHerbots/Inputmask/zipball/9835731cb78cac749734d94a1cb5bd70da4d3b10", + "reference": "9835731cb78cac749734d94a1cb5bd70da4d3b10", "shasum": "" }, "require": { @@ -173,23 +172,36 @@ "type": "bower-asset-library", "extra": { "bower-asset-main": [ - "./dist/inputmask/inputmask.js" + "./dist/inputmask/inputmask.js", + "./dist/inputmask/inputmask.extensions.js", + "./dist/inputmask/inputmask.date.extensions.js", + "./dist/inputmask/inputmask.numeric.extensions.js", + "./dist/inputmask/inputmask.phone.extensions.js", + "./dist/inputmask/jquery.inputmask.js", + "./dist/inputmask/global/document.js", + "./dist/inputmask/global/window.js", + "./dist/inputmask/phone-codes/phone.js", + "./dist/inputmask/phone-codes/phone-be.js", + "./dist/inputmask/phone-codes/phone-nl.js", + "./dist/inputmask/phone-codes/phone-ru.js", + "./dist/inputmask/phone-codes/phone-uk.js", + "./dist/inputmask/dependencyLibs/inputmask.dependencyLib.jqlite.js", + "./dist/inputmask/dependencyLibs/inputmask.dependencyLib.jquery.js", + "./dist/inputmask/dependencyLibs/inputmask.dependencyLib.js", + "./dist/inputmask/bindings/inputmask.binding.js" ], "bower-asset-ignore": [ "**/*", "!dist/*", "!dist/inputmask/*", "!dist/min/*", - "!dist/min/inputmask/*", - "!extra/bindings/*", - "!extra/dependencyLibs/*", - "!extra/phone-codes/*" + "!dist/min/inputmask/*" ] }, "license": [ "http://opensource.org/licenses/mit-license.php" ], - "description": "jquery.inputmask is a jquery plugin which create an input mask.", + "description": "Inputmask is a javascript library which creates an input mask. Inputmask can run against vanilla javascript, jQuery and jqlite.", "keywords": [ "form", "input", @@ -461,25 +473,28 @@ "markdown", "markdown-extra" ], - "time": "2016-09-14 20:40:20" + "time": "2016-09-14T20:40:20+00:00" }, { "name": "ezyang/htmlpurifier", - "version": "v4.8.0", + "version": "v4.9.3", "source": { "type": "git", "url": "https://github.com/ezyang/htmlpurifier.git", - "reference": "d0c392f77d2f2a3dcf7fcb79e2a1e2b8804e75b2" + "reference": "95e1bae3182efc0f3422896a3236e991049dac69" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/d0c392f77d2f2a3dcf7fcb79e2a1e2b8804e75b2", - "reference": "d0c392f77d2f2a3dcf7fcb79e2a1e2b8804e75b2", + "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/95e1bae3182efc0f3422896a3236e991049dac69", + "reference": "95e1bae3182efc0f3422896a3236e991049dac69", "shasum": "" }, "require": { "php": ">=5.2" }, + "require-dev": { + "simpletest/simpletest": "^1.1" + }, "type": "library", "autoload": { "psr-0": { @@ -505,27 +520,28 @@ "keywords": [ "html" ], - "time": "2016-07-16 12:58:58" + "time": "2017-06-03T02:28:16+00:00" }, { "name": "swiftmailer/swiftmailer", - "version": "v5.4.4", + "version": "v5.4.8", "source": { "type": "git", "url": "https://github.com/swiftmailer/swiftmailer.git", - "reference": "545ce9136690cea74f98f86fbb9c92dd9ab1a756" + "reference": "9a06dc570a0367850280eefd3f1dc2da45aef517" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/545ce9136690cea74f98f86fbb9c92dd9ab1a756", - "reference": "545ce9136690cea74f98f86fbb9c92dd9ab1a756", + "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/9a06dc570a0367850280eefd3f1dc2da45aef517", + "reference": "9a06dc570a0367850280eefd3f1dc2da45aef517", "shasum": "" }, "require": { "php": ">=5.3.3" }, "require-dev": { - "mockery/mockery": "~0.9.1" + "mockery/mockery": "~0.9.1", + "symfony/phpunit-bridge": "~3.2" }, "type": "library", "extra": { @@ -558,25 +574,25 @@ "mail", "mailer" ], - "time": "2016-11-24 01:01:23" + "time": "2017-05-01T15:54:03+00:00" }, { "name": "yiisoft/yii2", - "version": "2.0.10", + "version": "2.0.11.2", "source": { "type": "git", "url": "https://github.com/yiisoft/yii2-framework.git", - "reference": "5bfcb7a6dfa9771e2248eb8c4448613330f343ff" + "reference": "ee996adec1dfd7babb67bd0c604f5bd6425fe5ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/yiisoft/yii2-framework/zipball/5bfcb7a6dfa9771e2248eb8c4448613330f343ff", - "reference": "5bfcb7a6dfa9771e2248eb8c4448613330f343ff", + "url": "https://api.github.com/repos/yiisoft/yii2-framework/zipball/ee996adec1dfd7babb67bd0c604f5bd6425fe5ab", + "reference": "ee996adec1dfd7babb67bd0c604f5bd6425fe5ab", "shasum": "" }, "require": { "bower-asset/jquery": "2.2.*@stable | 2.1.*@stable | 1.11.*@stable | 1.12.*@stable", - "bower-asset/jquery.inputmask": "~3.2.2", + "bower-asset/jquery.inputmask": "~3.2.2 | ~3.3.3", "bower-asset/punycode": "1.3.*", "bower-asset/yii2-pjax": "~2.0.1", "cebe/markdown": "~1.0.0 | ~1.1.0", @@ -644,6 +660,12 @@ "name": "Dmitry Naumenko", "email": "d.naumenko.a@gmail.com", "role": "Core framework development" + }, + { + "name": "Boudewijn Vahrmeijer", + "email": "info@dynasource.eu", + "homepage": "http://dynasource.eu", + "role": "Core framework development" } ], "description": "Yii PHP Framework Version 2", @@ -652,20 +674,20 @@ "framework", "yii2" ], - "time": "2016-10-20 12:02:50" + "time": "2017-02-08T09:04:32+00:00" }, { "name": "yiisoft/yii2-authclient", - "version": "2.1.1", + "version": "2.1.2", "source": { "type": "git", "url": "https://github.com/yiisoft/yii2-authclient.git", - "reference": "5ed7ebfda270d87197f7640b2a9c046297080cac" + "reference": "9929acc03d61d96e6eabbb5e31b02d6f9faab10d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/yiisoft/yii2-authclient/zipball/5ed7ebfda270d87197f7640b2a9c046297080cac", - "reference": "5ed7ebfda270d87197f7640b2a9c046297080cac", + "url": "https://api.github.com/repos/yiisoft/yii2-authclient/zipball/9929acc03d61d96e6eabbb5e31b02d6f9faab10d", + "reference": "9929acc03d61d96e6eabbb5e31b02d6f9faab10d", "shasum": "" }, "require": { @@ -700,7 +722,7 @@ "oauth", "yii2" ], - "time": "2016-08-29 09:21:09" + "time": "2017-02-15T14:34:51+00:00" }, { "name": "yiisoft/yii2-bootstrap", @@ -750,7 +772,7 @@ "bootstrap", "yii2" ], - "time": "2016-03-17 03:29:28" + "time": "2016-03-17T03:29:28+00:00" }, { "name": "yiisoft/yii2-composer", @@ -800,20 +822,20 @@ "extension installer", "yii2" ], - "time": "2016-12-20 13:26:02" + "time": "2016-12-20T13:26:02+00:00" }, { "name": "yiisoft/yii2-httpclient", - "version": "2.0.2", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/yiisoft/yii2-httpclient.git", - "reference": "2cc58c318da3c7c71bda1cc26bd3ec5a3ac26284" + "reference": "113e4e361730f62c1bf50fbd6f09898776d404b1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/yiisoft/yii2-httpclient/zipball/2cc58c318da3c7c71bda1cc26bd3ec5a3ac26284", - "reference": "2cc58c318da3c7c71bda1cc26bd3ec5a3ac26284", + "url": "https://api.github.com/repos/yiisoft/yii2-httpclient/zipball/113e4e361730f62c1bf50fbd6f09898776d404b1", + "reference": "113e4e361730f62c1bf50fbd6f09898776d404b1", "shasum": "" }, "require": { @@ -847,20 +869,20 @@ "httpclient", "yii2" ], - "time": "2016-10-31 11:29:06" + "time": "2017-02-15T14:28:10+00:00" }, { "name": "yiisoft/yii2-swiftmailer", - "version": "2.0.6", + "version": "2.0.7", "source": { "type": "git", "url": "https://github.com/yiisoft/yii2-swiftmailer.git", - "reference": "26b900767f1031ff3a4668dfa36c10595875f0a5" + "reference": "8a03a62cbcb82e7697d3002eb43a8d2637f566ec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/yiisoft/yii2-swiftmailer/zipball/26b900767f1031ff3a4668dfa36c10595875f0a5", - "reference": "26b900767f1031ff3a4668dfa36c10595875f0a5", + "url": "https://api.github.com/repos/yiisoft/yii2-swiftmailer/zipball/8a03a62cbcb82e7697d3002eb43a8d2637f566ec", + "reference": "8a03a62cbcb82e7697d3002eb43a8d2637f566ec", "shasum": "" }, "require": { @@ -897,7 +919,7 @@ "swiftmailer", "yii2" ], - "time": "2016-09-09 11:48:11" + "time": "2017-05-01T08:29:00+00:00" } ], "packages-dev": [ @@ -958,25 +980,25 @@ "gherkin", "parser" ], - "time": "2016-10-30 11:50:56" + "time": "2016-10-30T11:50:56+00:00" }, { "name": "cebe/assetfree-yii2", - "version": "2.0.10", + "version": "2.0.11.2", "source": { "type": "git", "url": "https://github.com/cebe/assetfree-yii2.git", - "reference": "38a6f1d6c70f2e4b5a666384f791812fb0b1cd82" + "reference": "3834cc6e2eae2f83c51ece5c2776ba47362a6407" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cebe/assetfree-yii2/zipball/38a6f1d6c70f2e4b5a666384f791812fb0b1cd82", - "reference": "38a6f1d6c70f2e4b5a666384f791812fb0b1cd82", + "url": "https://api.github.com/repos/cebe/assetfree-yii2/zipball/3834cc6e2eae2f83c51ece5c2776ba47362a6407", + "reference": "3834cc6e2eae2f83c51ece5c2776ba47362a6407", "shasum": "" }, "require": { "php": ">=5.4.0", - "yiisoft/yii2": "2.0.10" + "yiisoft/yii2": "2.0.11.2" }, "provide": { "bower-asset/jquery": "*", @@ -987,20 +1009,20 @@ "type": "library", "notification-url": "https://packagist.org/downloads/", "description": "A meta package that allows you to install yii2 without composer-asset-plugin.", - "time": "2016-12-01 09:06:12" + "time": "2017-04-24T10:44:38+00:00" }, { "name": "codeception/codeception", - "version": "2.2.7", + "version": "2.3.3", "source": { "type": "git", "url": "https://github.com/Codeception/Codeception.git", - "reference": "86770e89d266557c20dd0b1de5390e706f4770c1" + "reference": "67cd520b4f20cdfc3a52d1a0022924125822a8e6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/Codeception/zipball/86770e89d266557c20dd0b1de5390e706f4770c1", - "reference": "86770e89d266557c20dd0b1de5390e706f4770c1", + "url": "https://api.github.com/repos/Codeception/Codeception/zipball/67cd520b4f20cdfc3a52d1a0022924125822a8e6", + "reference": "67cd520b4f20cdfc3a52d1a0022924125822a8e6", "shasum": "" }, "require": { @@ -1011,10 +1033,12 @@ "guzzlehttp/guzzle": ">=4.1.4 <7.0", "guzzlehttp/psr7": "~1.0", "php": ">=5.4.0 <8.0", - "phpunit/php-code-coverage": ">=2.1.3 <5.0", - "phpunit/phpunit": ">4.8.20 <6.0", - "sebastian/comparator": "~1.1", + "phpunit/php-code-coverage": ">=2.2.4 <6.0", + "phpunit/phpunit": ">4.8.20 <7.0", + "phpunit/phpunit-mock-objects": ">2.3 <5.0", + "sebastian/comparator": ">1.1 <3.0", "sebastian/diff": "^1.4", + "stecman/symfony-console-completion": "^0.7.0", "symfony/browser-kit": ">=2.7 <4.0", "symfony/console": ">=2.7 <4.0", "symfony/css-selector": ">=2.7 <4.0", @@ -1079,20 +1103,20 @@ "functional testing", "unit testing" ], - "time": "2016-12-05 04:12:24" + "time": "2017-06-02T00:22:30+00:00" }, { "name": "codeception/specify", - "version": "0.4.5", + "version": "0.4.6", "source": { "type": "git", "url": "https://github.com/Codeception/Specify.git", - "reference": "5fb1d68a737f31155a0f7410cf47dea479b33415" + "reference": "21b586f503ca444aa519dd9cafb32f113a05f286" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/Specify/zipball/5fb1d68a737f31155a0f7410cf47dea479b33415", - "reference": "5fb1d68a737f31155a0f7410cf47dea479b33415", + "url": "https://api.github.com/repos/Codeception/Specify/zipball/21b586f503ca444aa519dd9cafb32f113a05f286", + "reference": "21b586f503ca444aa519dd9cafb32f113a05f286", "shasum": "" }, "require": { @@ -1109,6 +1133,9 @@ } }, "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], "authors": [ { "name": "Michael Bodnarchuk", @@ -1116,20 +1143,20 @@ } ], "description": "BDD code blocks for PHPUnit and Codeception", - "time": "2016-10-17 22:28:20" + "time": "2016-10-21T09:42:00+00:00" }, { "name": "codeception/verify", - "version": "0.3.2", + "version": "0.3.3", "source": { "type": "git", "url": "https://github.com/Codeception/Verify.git", - "reference": "b06d706261d1fee0cc312bacc5c1b7c506e5213a" + "reference": "5d649dda453cd814dadc4bb053060cd2c6bb4b4c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/Verify/zipball/b06d706261d1fee0cc312bacc5c1b7c506e5213a", - "reference": "b06d706261d1fee0cc312bacc5c1b7c506e5213a", + "url": "https://api.github.com/repos/Codeception/Verify/zipball/5d649dda453cd814dadc4bb053060cd2c6bb4b4c", + "reference": "5d649dda453cd814dadc4bb053060cd2c6bb4b4c", "shasum": "" }, "require-dev": { @@ -1152,7 +1179,75 @@ } ], "description": "BDD assertion library for PHPUnit", - "time": "2016-08-29 22:49:25" + "time": "2017-01-09T10:58:51+00:00" + }, + { + "name": "doctrine/annotations", + "version": "v1.4.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/annotations.git", + "reference": "54cacc9b81758b14e3ce750f205a393d52339e97" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/54cacc9b81758b14e3ce750f205a393d52339e97", + "reference": "54cacc9b81758b14e3ce750f205a393d52339e97", + "shasum": "" + }, + "require": { + "doctrine/lexer": "1.*", + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "doctrine/cache": "1.*", + "phpunit/phpunit": "^5.7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Docblock Annotations Parser", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "annotations", + "docblock", + "parser" + ], + "time": "2017-02-24T16:22:25+00:00" }, { "name": "doctrine/instantiator", @@ -1206,36 +1301,95 @@ "constructor", "instantiate" ], - "time": "2015-06-14 21:17:01" + "time": "2015-06-14T21:17:01+00:00" }, { - "name": "facebook/webdriver", - "version": "1.2.0", + "name": "doctrine/lexer", + "version": "v1.0.1", "source": { "type": "git", - "url": "https://github.com/facebook/php-webdriver.git", - "reference": "af21de3ae5306a8ca0bcc02a19735dadc43e83f3" + "url": "https://github.com/doctrine/lexer.git", + "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/facebook/php-webdriver/zipball/af21de3ae5306a8ca0bcc02a19735dadc43e83f3", - "reference": "af21de3ae5306a8ca0bcc02a19735dadc43e83f3", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c", + "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-0": { + "Doctrine\\Common\\Lexer\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "lexer", + "parser" + ], + "time": "2014-09-09T13:34:57+00:00" + }, + { + "name": "facebook/webdriver", + "version": "1.4.1", + "source": { + "type": "git", + "url": "https://github.com/facebook/php-webdriver.git", + "reference": "eadb0b7a7c3e6578185197fd40158b08c3164c83" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/facebook/php-webdriver/zipball/eadb0b7a7c3e6578185197fd40158b08c3164c83", + "reference": "eadb0b7a7c3e6578185197fd40158b08c3164c83", "shasum": "" }, "require": { "ext-curl": "*", - "php": "^5.5 || ~7.0" + "ext-zip": "*", + "php": "^5.5 || ~7.0", + "symfony/process": "^2.8 || ^3.1" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^1.11", + "friendsofphp/php-cs-fixer": "^2.0", "php-mock/php-mock-phpunit": "^1.1", "phpunit/phpunit": "4.6.* || ~5.0", + "satooshi/php-coveralls": "^1.0", "squizlabs/php_codesniffer": "^2.6" }, - "suggest": { - "phpdocumentor/phpdocumentor": "2.*" - }, "type": "library", + "extra": { + "branch-alias": { + "dev-community": "1.5-dev" + } + }, "autoload": { "psr-4": { "Facebook\\WebDriver\\": "lib/" @@ -1245,7 +1399,7 @@ "license": [ "Apache-2.0" ], - "description": "A PHP client for WebDriver", + "description": "A PHP client for Selenium WebDriver", "homepage": "https://github.com/facebook/php-webdriver", "keywords": [ "facebook", @@ -1253,41 +1407,55 @@ "selenium", "webdriver" ], - "time": "2016-10-14 15:16:51" + "time": "2017-04-28T14:54:49+00:00" }, { "name": "friendsofphp/php-cs-fixer", - "version": "v2.0.0", + "version": "v2.3.2", "source": { "type": "git", "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", - "reference": "f3baf72eb2f58bf275b372540f5b47d25aed910f" + "reference": "597745f744bcce1aed59dfd1bb4603de2a06cda9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/f3baf72eb2f58bf275b372540f5b47d25aed910f", - "reference": "f3baf72eb2f58bf275b372540f5b47d25aed910f", + "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/597745f744bcce1aed59dfd1bb4603de2a06cda9", + "reference": "597745f744bcce1aed59dfd1bb4603de2a06cda9", "shasum": "" }, "require": { + "doctrine/annotations": "^1.2", + "ext-json": "*", "ext-tokenizer": "*", - "php": "^5.3.6 || >=7.0 <7.2", - "sebastian/diff": "^1.1", - "symfony/console": "^2.3 || ^3.0", - "symfony/event-dispatcher": "^2.1 || ^3.0", - "symfony/filesystem": "^2.4 || ^3.0", - "symfony/finder": "^2.2 || ^3.0", - "symfony/polyfill-php54": "^1.0", - "symfony/process": "^2.3 || ^3.0", - "symfony/stopwatch": "^2.5 || ^3.0" + "gecko-packages/gecko-php-unit": "^2.0", + "php": "^5.6 || >=7.0 <7.2", + "sebastian/diff": "^1.4", + "symfony/console": "^3.0", + "symfony/event-dispatcher": "^3.0", + "symfony/filesystem": "^3.0", + "symfony/finder": "^3.0", + "symfony/options-resolver": "^3.0", + "symfony/polyfill-php70": "^1.0", + "symfony/polyfill-xml": "^1.3", + "symfony/process": "^3.0", + "symfony/stopwatch": "^3.0" }, "conflict": { - "hhvm": "<3.9" + "hhvm": "<3.18" }, "require-dev": { - "gecko-packages/gecko-php-unit": "^2.0", - "phpunit/phpunit": "^4.5|^5", - "satooshi/php-coveralls": "^1.0" + "johnkary/phpunit-speedtrap": "^1.1", + "justinrainbow/json-schema": "^5.0", + "mi-schi/phpmd-extension": "^4.2", + "phpmd/phpmd": "^2.4.3", + "phpunit/phpunit": "^4.8.35 || ^5.4.3", + "satooshi/php-coveralls": "^1.0", + "symfony/phpunit-bridge": "^3.2.2" + }, + "suggest": { + "ext-mbstring": "For handling non-UTF8 characters in cache signature.", + "ext-xml": "For better performance.", + "symfony/polyfill-mbstring": "When enabling `ext-mbstring` is not possible." }, "bin": [ "php-cs-fixer" @@ -1295,7 +1463,7 @@ "type": "application", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "2.3-dev" } }, "autoload": { @@ -1318,25 +1486,64 @@ } ], "description": "A tool to automatically fix PHP code style", - "time": "2016-12-01 06:18:06" + "time": "2017-05-24T21:59:38+00:00" }, { - "name": "guzzlehttp/guzzle", - "version": "6.2.2", + "name": "gecko-packages/gecko-php-unit", + "version": "v2.0", "source": { "type": "git", - "url": "https://github.com/guzzle/guzzle.git", - "reference": "ebf29dee597f02f09f4d5bbecc68230ea9b08f60" + "url": "https://github.com/GeckoPackages/GeckoPHPUnit.git", + "reference": "40a697ec261f3526e8196363b481b24383740c13" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/ebf29dee597f02f09f4d5bbecc68230ea9b08f60", - "reference": "ebf29dee597f02f09f4d5bbecc68230ea9b08f60", + "url": "https://api.github.com/repos/GeckoPackages/GeckoPHPUnit/zipball/40a697ec261f3526e8196363b481b24383740c13", + "reference": "40a697ec261f3526e8196363b481b24383740c13", + "shasum": "" + }, + "require": { + "php": "^5.3.6 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "4.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "GeckoPackages\\PHPUnit\\": "src\\PHPUnit" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Additional PHPUnit tests.", + "homepage": "https://github.com/GeckoPackages", + "keywords": [ + "extension", + "filesystem", + "phpunit" + ], + "time": "2016-11-22T11:01:27+00:00" + }, + { + "name": "guzzlehttp/guzzle", + "version": "6.2.3", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "8d6c6cc55186db87b7dc5009827429ba4e9dc006" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/8d6c6cc55186db87b7dc5009827429ba4e9dc006", + "reference": "8d6c6cc55186db87b7dc5009827429ba4e9dc006", "shasum": "" }, "require": { "guzzlehttp/promises": "^1.0", - "guzzlehttp/psr7": "^1.3.1", + "guzzlehttp/psr7": "^1.4", "php": ">=5.5" }, "require-dev": { @@ -1380,7 +1587,7 @@ "rest", "web service" ], - "time": "2016-10-08 15:01:37" + "time": "2017-02-28T22:50:30+00:00" }, { "name": "guzzlehttp/promises", @@ -1431,20 +1638,20 @@ "keywords": [ "promise" ], - "time": "2016-12-20 10:07:11" + "time": "2016-12-20T10:07:11+00:00" }, { "name": "guzzlehttp/psr7", - "version": "1.3.1", + "version": "1.4.2", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "5c6447c9df362e8f8093bda8f5d8873fe5c7f65b" + "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/5c6447c9df362e8f8093bda8f5d8873fe5c7f65b", - "reference": "5c6447c9df362e8f8093bda8f5d8873fe5c7f65b", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/f5b8a8512e2b58b0071a7280e39f14f72e05d87c", + "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c", "shasum": "" }, "require": { @@ -1480,29 +1687,36 @@ "name": "Michael Dowling", "email": "mtdowling@gmail.com", "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Schultze", + "homepage": "https://github.com/Tobion" } ], - "description": "PSR-7 message implementation", + "description": "PSR-7 message implementation that also provides common utility methods", "keywords": [ "http", "message", + "request", + "response", "stream", - "uri" + "uri", + "url" ], - "time": "2016-06-24 23:00:38" + "time": "2017-03-20T17:10:46+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.5.5", + "version": "1.6.1", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "399c1f9781e222f6eb6cc238796f5200d1b7f108" + "reference": "8e6e04167378abf1ddb4d3522d8755c5fd90d102" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/399c1f9781e222f6eb6cc238796f5200d1b7f108", - "reference": "399c1f9781e222f6eb6cc238796f5200d1b7f108", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/8e6e04167378abf1ddb4d3522d8755c5fd90d102", + "reference": "8e6e04167378abf1ddb4d3522d8755c5fd90d102", "shasum": "" }, "require": { @@ -1531,20 +1745,68 @@ "object", "object graph" ], - "time": "2016-10-31 17:19:45" + "time": "2017-04-12T18:52:22+00:00" }, { - "name": "pdepend/pdepend", - "version": "2.3.2", + "name": "paragonie/random_compat", + "version": "v2.0.10", "source": { "type": "git", - "url": "https://github.com/pdepend/pdepend.git", - "reference": "8d7ab8fe8c1f9de5056bb7ea2c0852f4ddd44f90" + "url": "https://github.com/paragonie/random_compat.git", + "reference": "634bae8e911eefa89c1abfbf1b66da679ac8f54d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pdepend/pdepend/zipball/8d7ab8fe8c1f9de5056bb7ea2c0852f4ddd44f90", - "reference": "8d7ab8fe8c1f9de5056bb7ea2c0852f4ddd44f90", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/634bae8e911eefa89c1abfbf1b66da679ac8f54d", + "reference": "634bae8e911eefa89c1abfbf1b66da679ac8f54d", + "shasum": "" + }, + "require": { + "php": ">=5.2.0" + }, + "require-dev": { + "phpunit/phpunit": "4.*|5.*" + }, + "suggest": { + "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." + }, + "type": "library", + "autoload": { + "files": [ + "lib/random.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com" + } + ], + "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", + "keywords": [ + "csprng", + "pseudorandom", + "random" + ], + "time": "2017-03-13T16:27:32+00:00" + }, + { + "name": "pdepend/pdepend", + "version": "2.5.0", + "source": { + "type": "git", + "url": "https://github.com/pdepend/pdepend.git", + "reference": "0c50874333149c0dad5a2877801aed148f2767ff" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pdepend/pdepend/zipball/0c50874333149c0dad5a2877801aed148f2767ff", + "reference": "0c50874333149c0dad5a2877801aed148f2767ff", "shasum": "" }, "require": { @@ -1571,7 +1833,7 @@ "BSD-3-Clause" ], "description": "Official version of pdepend to be handled with Composer", - "time": "2016-11-23 20:25:02" + "time": "2017-01-19T14:23:36+00:00" }, { "name": "phpdocumentor/reflection-common", @@ -1625,7 +1887,7 @@ "reflection", "static analysis" ], - "time": "2015-12-27 11:43:31" + "time": "2015-12-27T11:43:31+00:00" }, { "name": "phpdocumentor/reflection-docblock", @@ -1670,7 +1932,7 @@ } ], "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2016-09-30 07:12:33" + "time": "2016-09-30T07:12:33+00:00" }, { "name": "phpdocumentor/type-resolver", @@ -1717,24 +1979,25 @@ "email": "me@mikevanriel.com" } ], - "time": "2016-11-25 06:54:22" + "time": "2016-11-25T06:54:22+00:00" }, { "name": "phpmd/phpmd", - "version": "2.5.0", + "version": "2.6.0", "source": { "type": "git", "url": "https://github.com/phpmd/phpmd.git", - "reference": "9298602a922cd8c46666df8d540a60bc5925ce55" + "reference": "4e9924b2c157a3eb64395460fcf56b31badc8374" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpmd/phpmd/zipball/9298602a922cd8c46666df8d540a60bc5925ce55", - "reference": "9298602a922cd8c46666df8d540a60bc5925ce55", + "url": "https://api.github.com/repos/phpmd/phpmd/zipball/4e9924b2c157a3eb64395460fcf56b31badc8374", + "reference": "4e9924b2c157a3eb64395460fcf56b31badc8374", "shasum": "" }, "require": { - "pdepend/pdepend": "^2.0.4", + "ext-xml": "*", + "pdepend/pdepend": "^2.5", "php": ">=5.3.9" }, "require-dev": { @@ -1782,31 +2045,31 @@ "phpmd", "pmd" ], - "time": "2016-11-23 20:33:32" + "time": "2017-01-20T14:41:10+00:00" }, { "name": "phpspec/prophecy", - "version": "v1.6.2", + "version": "v1.7.0", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "6c52c2722f8460122f96f86346600e1077ce22cb" + "reference": "93d39f1f7f9326d746203c7c056f300f7f126073" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/6c52c2722f8460122f96f86346600e1077ce22cb", - "reference": "6c52c2722f8460122f96f86346600e1077ce22cb", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/93d39f1f7f9326d746203c7c056f300f7f126073", + "reference": "93d39f1f7f9326d746203c7c056f300f7f126073", "shasum": "" }, "require": { "doctrine/instantiator": "^1.0.2", "php": "^5.3|^7.0", "phpdocumentor/reflection-docblock": "^2.0|^3.0.2", - "sebastian/comparator": "^1.1", - "sebastian/recursion-context": "^1.0|^2.0" + "sebastian/comparator": "^1.1|^2.0", + "sebastian/recursion-context": "^1.0|^2.0|^3.0" }, "require-dev": { - "phpspec/phpspec": "^2.0", + "phpspec/phpspec": "^2.5|^3.2", "phpunit/phpunit": "^4.8 || ^5.6.5" }, "type": "library", @@ -1845,39 +2108,39 @@ "spy", "stub" ], - "time": "2016-11-21 14:58:47" + "time": "2017-03-02T20:05:34+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "4.0.4", + "version": "4.0.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "c14196e64a78570034afd0b7a9f3757ba71c2a0a" + "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/c14196e64a78570034afd0b7a9f3757ba71c2a0a", - "reference": "c14196e64a78570034afd0b7a9f3757ba71c2a0a", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ef7b2f56815df854e66ceaee8ebe9393ae36a40d", + "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d", "shasum": "" }, "require": { + "ext-dom": "*", + "ext-xmlwriter": "*", "php": "^5.6 || ^7.0", - "phpunit/php-file-iterator": "~1.3", - "phpunit/php-text-template": "~1.2", - "phpunit/php-token-stream": "^1.4.2", - "sebastian/code-unit-reverse-lookup": "~1.0", + "phpunit/php-file-iterator": "^1.3", + "phpunit/php-text-template": "^1.2", + "phpunit/php-token-stream": "^1.4.2 || ^2.0", + "sebastian/code-unit-reverse-lookup": "^1.0", "sebastian/environment": "^1.3.2 || ^2.0", - "sebastian/version": "~1.0|~2.0" + "sebastian/version": "^1.0 || ^2.0" }, "require-dev": { - "ext-xdebug": ">=2.1.4", - "phpunit/phpunit": "^5.4" + "ext-xdebug": "^2.1.4", + "phpunit/phpunit": "^5.7" }, "suggest": { - "ext-dom": "*", - "ext-xdebug": ">=2.4.0", - "ext-xmlwriter": "*" + "ext-xdebug": "^2.5.1" }, "type": "library", "extra": { @@ -1908,7 +2171,7 @@ "testing", "xunit" ], - "time": "2016-12-20 15:22:42" + "time": "2017-04-02T07:44:40+00:00" }, { "name": "phpunit/php-file-iterator", @@ -1955,7 +2218,7 @@ "filesystem", "iterator" ], - "time": "2016-10-03 07:40:28" + "time": "2016-10-03T07:40:28+00:00" }, { "name": "phpunit/php-text-template", @@ -1996,29 +2259,34 @@ "keywords": [ "template" ], - "time": "2015-06-21 13:50:34" + "time": "2015-06-21T13:50:34+00:00" }, { "name": "phpunit/php-timer", - "version": "1.0.8", + "version": "1.0.9", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260" + "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/38e9124049cf1a164f1e4537caf19c99bf1eb260", - "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", + "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^5.3.3 || ^7.0" }, "require-dev": { - "phpunit/phpunit": "~4|~5" + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, "autoload": { "classmap": [ "src/" @@ -2040,20 +2308,20 @@ "keywords": [ "timer" ], - "time": "2016-05-12 18:03:57" + "time": "2017-02-26T11:10:40+00:00" }, { "name": "phpunit/php-token-stream", - "version": "1.4.9", + "version": "1.4.11", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "3b402f65a4cc90abf6e1104e388b896ce209631b" + "reference": "e03f8f67534427a787e21a385a67ec3ca6978ea7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/3b402f65a4cc90abf6e1104e388b896ce209631b", - "reference": "3b402f65a4cc90abf6e1104e388b896ce209631b", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/e03f8f67534427a787e21a385a67ec3ca6978ea7", + "reference": "e03f8f67534427a787e21a385a67ec3ca6978ea7", "shasum": "" }, "require": { @@ -2089,20 +2357,20 @@ "keywords": [ "tokenizer" ], - "time": "2016-11-15 14:06:22" + "time": "2017-02-27T10:12:30+00:00" }, { "name": "phpunit/phpunit", - "version": "5.7.4", + "version": "5.7.20", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "af91da3f2671006ff5d0628023de3b7ac4d1ef09" + "reference": "3cb94a5f8c07a03c8b7527ed7468a2926203f58b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/af91da3f2671006ff5d0628023de3b7ac4d1ef09", - "reference": "af91da3f2671006ff5d0628023de3b7ac4d1ef09", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3cb94a5f8c07a03c8b7527ed7468a2926203f58b", + "reference": "3cb94a5f8c07a03c8b7527ed7468a2926203f58b", "shasum": "" }, "require": { @@ -2114,19 +2382,19 @@ "myclabs/deep-copy": "~1.3", "php": "^5.6 || ^7.0", "phpspec/prophecy": "^1.6.2", - "phpunit/php-code-coverage": "^4.0.3", + "phpunit/php-code-coverage": "^4.0.4", "phpunit/php-file-iterator": "~1.4", "phpunit/php-text-template": "~1.2", "phpunit/php-timer": "^1.0.6", "phpunit/phpunit-mock-objects": "^3.2", - "sebastian/comparator": "~1.2.2", - "sebastian/diff": "~1.2", + "sebastian/comparator": "^1.2.4", + "sebastian/diff": "^1.4.3", "sebastian/environment": "^1.3.4 || ^2.0", "sebastian/exporter": "~2.0", - "sebastian/global-state": "^1.0 || ^2.0", + "sebastian/global-state": "^1.1", "sebastian/object-enumerator": "~2.0", "sebastian/resource-operations": "~1.0", - "sebastian/version": "~1.0|~2.0", + "sebastian/version": "~1.0.3|~2.0", "symfony/yaml": "~2.1|~3.0" }, "conflict": { @@ -2171,7 +2439,7 @@ "testing", "xunit" ], - "time": "2016-12-13 16:19:44" + "time": "2017-05-22T07:42:55+00:00" }, { "name": "phpunit/phpunit-mock-objects", @@ -2230,7 +2498,56 @@ "mock", "xunit" ], - "time": "2016-12-08 20:27:08" + "time": "2016-12-08T20:27:08+00:00" + }, + { + "name": "psr/container", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "time": "2017-02-14T16:28:37+00:00" }, { "name": "psr/http-message", @@ -2280,7 +2597,7 @@ "request", "response" ], - "time": "2016-08-06 14:39:51" + "time": "2016-08-06T14:39:51+00:00" }, { "name": "psr/log", @@ -2327,27 +2644,27 @@ "psr", "psr-3" ], - "time": "2016-10-10 12:19:37" + "time": "2016-10-10T12:19:37+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", - "version": "1.0.0", + "version": "1.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "c36f5e7cfce482fde5bf8d10d41a53591e0198fe" + "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/c36f5e7cfce482fde5bf8d10d41a53591e0198fe", - "reference": "c36f5e7cfce482fde5bf8d10d41a53591e0198fe", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", "shasum": "" }, "require": { - "php": ">=5.6" + "php": "^5.6 || ^7.0" }, "require-dev": { - "phpunit/phpunit": "~5" + "phpunit/phpunit": "^5.7 || ^6.0" }, "type": "library", "extra": { @@ -2372,20 +2689,20 @@ ], "description": "Looks up which function or method a line of code belongs to", "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "time": "2016-02-13 06:45:14" + "time": "2017-03-04T06:30:41+00:00" }, { "name": "sebastian/comparator", - "version": "1.2.2", + "version": "1.2.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "6a1ed12e8b2409076ab22e3897126211ff8b1f7f" + "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/6a1ed12e8b2409076ab22e3897126211ff8b1f7f", - "reference": "6a1ed12e8b2409076ab22e3897126211ff8b1f7f", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", + "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", "shasum": "" }, "require": { @@ -2436,27 +2753,27 @@ "compare", "equality" ], - "time": "2016-11-19 09:18:40" + "time": "2017-01-29T09:50:25+00:00" }, { "name": "sebastian/diff", - "version": "1.4.1", + "version": "1.4.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e" + "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/13edfd8706462032c2f52b4b862974dd46b71c9e", - "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4", + "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^5.3.3 || ^7.0" }, "require-dev": { - "phpunit/phpunit": "~4.8" + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" }, "type": "library", "extra": { @@ -2488,7 +2805,7 @@ "keywords": [ "diff" ], - "time": "2015-12-08 07:14:41" + "time": "2017-05-22T07:24:03+00:00" }, { "name": "sebastian/environment", @@ -2538,7 +2855,7 @@ "environment", "hhvm" ], - "time": "2016-11-26 07:53:53" + "time": "2016-11-26T07:53:53+00:00" }, { "name": "sebastian/exporter", @@ -2605,7 +2922,7 @@ "export", "exporter" ], - "time": "2016-11-19 08:54:04" + "time": "2016-11-19T08:54:04+00:00" }, { "name": "sebastian/global-state", @@ -2656,20 +2973,20 @@ "keywords": [ "global state" ], - "time": "2015-10-12 03:26:01" + "time": "2015-10-12T03:26:01+00:00" }, { "name": "sebastian/object-enumerator", - "version": "2.0.0", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "96f8a3f257b69e8128ad74d3a7fd464bcbaa3b35" + "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/96f8a3f257b69e8128ad74d3a7fd464bcbaa3b35", - "reference": "96f8a3f257b69e8128ad74d3a7fd464bcbaa3b35", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/1311872ac850040a79c3c058bea3e22d0f09cbb7", + "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7", "shasum": "" }, "require": { @@ -2702,7 +3019,7 @@ ], "description": "Traverses array structures and object graphs to enumerate all referenced objects", "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "time": "2016-11-19 07:35:10" + "time": "2017-02-18T15:18:39+00:00" }, { "name": "sebastian/recursion-context", @@ -2755,7 +3072,7 @@ ], "description": "Provides functionality to recursively process PHP variables", "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2016-11-19 07:33:16" + "time": "2016-11-19T07:33:16+00:00" }, { "name": "sebastian/resource-operations", @@ -2797,7 +3114,7 @@ ], "description": "Provides a list of PHP built-in functions that operate on resources", "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "time": "2015-07-28 20:34:47" + "time": "2015-07-28T20:34:47+00:00" }, { "name": "sebastian/version", @@ -2840,68 +3157,41 @@ ], "description": "Library that helps with managing the version number of Git-hosted PHP projects", "homepage": "https://github.com/sebastianbergmann/version", - "time": "2016-10-03 07:35:21" + "time": "2016-10-03T07:35:21+00:00" }, { "name": "squizlabs/php_codesniffer", - "version": "2.7.1", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "9b324f3a1132459a7274a0ace2e1b766ba80930f" + "reference": "b95ff2c3b122a3ee4b57d149a57d2afce65522c3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/9b324f3a1132459a7274a0ace2e1b766ba80930f", - "reference": "9b324f3a1132459a7274a0ace2e1b766ba80930f", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/b95ff2c3b122a3ee4b57d149a57d2afce65522c3", + "reference": "b95ff2c3b122a3ee4b57d149a57d2afce65522c3", "shasum": "" }, "require": { "ext-simplexml": "*", "ext-tokenizer": "*", "ext-xmlwriter": "*", - "php": ">=5.1.2" + "php": ">=5.4.0" }, "require-dev": { "phpunit/phpunit": "~4.0" }, "bin": [ - "scripts/phpcs", - "scripts/phpcbf" + "bin/phpcs", + "bin/phpcbf" ], "type": "library", "extra": { "branch-alias": { - "dev-master": "2.x-dev" + "dev-master": "3.x-dev" } }, - "autoload": { - "classmap": [ - "CodeSniffer.php", - "CodeSniffer/CLI.php", - "CodeSniffer/Exception.php", - "CodeSniffer/File.php", - "CodeSniffer/Fixer.php", - "CodeSniffer/Report.php", - "CodeSniffer/Reporting.php", - "CodeSniffer/Sniff.php", - "CodeSniffer/Tokens.php", - "CodeSniffer/Reports/", - "CodeSniffer/Tokenizers/", - "CodeSniffer/DocGenerators/", - "CodeSniffer/Standards/AbstractPatternSniff.php", - "CodeSniffer/Standards/AbstractScopeSniff.php", - "CodeSniffer/Standards/AbstractVariableSniff.php", - "CodeSniffer/Standards/IncorrectPatternException.php", - "CodeSniffer/Standards/Generic/Sniffs/", - "CodeSniffer/Standards/MySource/Sniffs/", - "CodeSniffer/Standards/PEAR/Sniffs/", - "CodeSniffer/Standards/PSR1/Sniffs/", - "CodeSniffer/Standards/PSR2/Sniffs/", - "CodeSniffer/Standards/Squiz/Sniffs/", - "CodeSniffer/Standards/Zend/Sniffs/" - ] - }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" @@ -2918,20 +3208,65 @@ "phpcs", "standards" ], - "time": "2016-11-30 04:02:31" + "time": "2017-05-04T00:33:04+00:00" }, { - "name": "symfony/browser-kit", - "version": "v3.2.1", + "name": "stecman/symfony-console-completion", + "version": "0.7.0", "source": { "type": "git", - "url": "https://github.com/symfony/browser-kit.git", - "reference": "34348c2691ce6254e8e008026f4c5e72c22bb318" + "url": "https://github.com/stecman/symfony-console-completion.git", + "reference": "5461d43e53092b3d3b9dbd9d999f2054730f4bbb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/34348c2691ce6254e8e008026f4c5e72c22bb318", - "reference": "34348c2691ce6254e8e008026f4c5e72c22bb318", + "url": "https://api.github.com/repos/stecman/symfony-console-completion/zipball/5461d43e53092b3d3b9dbd9d999f2054730f4bbb", + "reference": "5461d43e53092b3d3b9dbd9d999f2054730f4bbb", + "shasum": "" + }, + "require": { + "php": ">=5.3.2", + "symfony/console": "~2.3 || ~3.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.6.x-dev" + } + }, + "autoload": { + "psr-4": { + "Stecman\\Component\\Symfony\\Console\\BashCompletion\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Stephen Holdaway", + "email": "stephen@stecman.co.nz" + } + ], + "description": "Automatic BASH completion for Symfony Console Component based applications.", + "time": "2016-02-24T05:08:54+00:00" + }, + { + "name": "symfony/browser-kit", + "version": "v3.3.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/browser-kit.git", + "reference": "c2c8ceb1aa9dab9eae54e9150e6a588ce3e53be1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/c2c8ceb1aa9dab9eae54e9150e6a588ce3e53be1", + "reference": "c2c8ceb1aa9dab9eae54e9150e6a588ce3e53be1", "shasum": "" }, "require": { @@ -2948,7 +3283,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "3.3-dev" } }, "autoload": { @@ -2975,27 +3310,31 @@ ], "description": "Symfony BrowserKit Component", "homepage": "https://symfony.com", - "time": "2016-10-13 13:35:11" + "time": "2017-04-12T14:14:56+00:00" }, { "name": "symfony/config", - "version": "v3.2.1", + "version": "v3.3.2", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "b4ec9f099599cfc5b7f4d07bb2e910781a2be5e4" + "reference": "35716d4904e0506a7a5a9bcf23f854aeb5719bca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/b4ec9f099599cfc5b7f4d07bb2e910781a2be5e4", - "reference": "b4ec9f099599cfc5b7f4d07bb2e910781a2be5e4", + "url": "https://api.github.com/repos/symfony/config/zipball/35716d4904e0506a7a5a9bcf23f854aeb5719bca", + "reference": "35716d4904e0506a7a5a9bcf23f854aeb5719bca", "shasum": "" }, "require": { "php": ">=5.5.9", "symfony/filesystem": "~2.8|~3.0" }, + "conflict": { + "symfony/dependency-injection": "<3.3" + }, "require-dev": { + "symfony/dependency-injection": "~3.3", "symfony/yaml": "~3.0" }, "suggest": { @@ -3004,7 +3343,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "3.3-dev" } }, "autoload": { @@ -3031,20 +3370,20 @@ ], "description": "Symfony Config Component", "homepage": "https://symfony.com", - "time": "2016-12-09 07:45:17" + "time": "2017-06-02T18:07:20+00:00" }, { "name": "symfony/console", - "version": "v3.2.1", + "version": "v3.3.2", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "d12aa9ca20f4db83ec58410978dab6afcb9d6aaa" + "reference": "70d2a29b2911cbdc91a7e268046c395278238b2e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/d12aa9ca20f4db83ec58410978dab6afcb9d6aaa", - "reference": "d12aa9ca20f4db83ec58410978dab6afcb9d6aaa", + "url": "https://api.github.com/repos/symfony/console/zipball/70d2a29b2911cbdc91a7e268046c395278238b2e", + "reference": "70d2a29b2911cbdc91a7e268046c395278238b2e", "shasum": "" }, "require": { @@ -3052,10 +3391,16 @@ "symfony/debug": "~2.8|~3.0", "symfony/polyfill-mbstring": "~1.0" }, + "conflict": { + "symfony/dependency-injection": "<3.3" + }, "require-dev": { "psr/log": "~1.0", + "symfony/config": "~3.3", + "symfony/dependency-injection": "~3.3", "symfony/event-dispatcher": "~2.8|~3.0", "symfony/filesystem": "~2.8|~3.0", + "symfony/http-kernel": "~2.8|~3.0", "symfony/process": "~2.8|~3.0" }, "suggest": { @@ -3067,7 +3412,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "3.3-dev" } }, "autoload": { @@ -3094,20 +3439,20 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2016-12-11 14:34:22" + "time": "2017-06-02T19:24:58+00:00" }, { "name": "symfony/css-selector", - "version": "v3.2.1", + "version": "v3.3.2", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "e1241f275814827c411d922ba8e64cf2a00b2994" + "reference": "4d882dced7b995d5274293039370148e291808f2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/e1241f275814827c411d922ba8e64cf2a00b2994", - "reference": "e1241f275814827c411d922ba8e64cf2a00b2994", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/4d882dced7b995d5274293039370148e291808f2", + "reference": "4d882dced7b995d5274293039370148e291808f2", "shasum": "" }, "require": { @@ -3116,7 +3461,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "3.3-dev" } }, "autoload": { @@ -3147,20 +3492,20 @@ ], "description": "Symfony CssSelector Component", "homepage": "https://symfony.com", - "time": "2016-11-03 08:11:03" + "time": "2017-05-01T15:01:29+00:00" }, { "name": "symfony/debug", - "version": "v3.2.1", + "version": "v3.3.2", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "9f923e68d524a3095c5a2ae5fc7220c7cbc12231" + "reference": "e9c50482841ef696e8fa1470d950a79c8921f45d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/9f923e68d524a3095c5a2ae5fc7220c7cbc12231", - "reference": "9f923e68d524a3095c5a2ae5fc7220c7cbc12231", + "url": "https://api.github.com/repos/symfony/debug/zipball/e9c50482841ef696e8fa1470d950a79c8921f45d", + "reference": "e9c50482841ef696e8fa1470d950a79c8921f45d", "shasum": "" }, "require": { @@ -3171,13 +3516,12 @@ "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" }, "require-dev": { - "symfony/class-loader": "~2.8|~3.0", "symfony/http-kernel": "~2.8|~3.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "3.3-dev" } }, "autoload": { @@ -3204,43 +3548,50 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2016-11-16 22:18:16" + "time": "2017-06-01T21:01:25+00:00" }, { "name": "symfony/dependency-injection", - "version": "v3.2.1", + "version": "v3.3.2", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "037054501c41007c93b6de1b5c7a7acb83523593" + "reference": "4cec19ec1d25f22e1ec8ab14635d3879a1287053" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/037054501c41007c93b6de1b5c7a7acb83523593", - "reference": "037054501c41007c93b6de1b5c7a7acb83523593", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/4cec19ec1d25f22e1ec8ab14635d3879a1287053", + "reference": "4cec19ec1d25f22e1ec8ab14635d3879a1287053", "shasum": "" }, "require": { - "php": ">=5.5.9" + "php": ">=5.5.9", + "psr/container": "^1.0" }, "conflict": { - "symfony/yaml": "<3.2" + "symfony/config": "<3.3.1", + "symfony/finder": "<3.3", + "symfony/yaml": "<3.3" + }, + "provide": { + "psr/container-implementation": "1.0" }, "require-dev": { - "symfony/config": "~2.8|~3.0", + "symfony/config": "~3.3", "symfony/expression-language": "~2.8|~3.0", - "symfony/yaml": "~3.2" + "symfony/yaml": "~3.3" }, "suggest": { "symfony/config": "", "symfony/expression-language": "For using expressions in service container configuration", + "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", "symfony/yaml": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "3.3-dev" } }, "autoload": { @@ -3267,20 +3618,20 @@ ], "description": "Symfony DependencyInjection Component", "homepage": "https://symfony.com", - "time": "2016-12-08 15:27:33" + "time": "2017-06-06T03:13:52+00:00" }, { "name": "symfony/dom-crawler", - "version": "v3.2.1", + "version": "v3.3.2", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "1638c7534a8a2fa0bf9e979f9aacb6d7e8e9e24e" + "reference": "fc2c588ce376e9fe04a7b8c79e3ec62fe32d95b1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/1638c7534a8a2fa0bf9e979f9aacb6d7e8e9e24e", - "reference": "1638c7534a8a2fa0bf9e979f9aacb6d7e8e9e24e", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/fc2c588ce376e9fe04a7b8c79e3ec62fe32d95b1", + "reference": "fc2c588ce376e9fe04a7b8c79e3ec62fe32d95b1", "shasum": "" }, "require": { @@ -3296,7 +3647,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "3.3-dev" } }, "autoload": { @@ -3323,29 +3674,32 @@ ], "description": "Symfony DomCrawler Component", "homepage": "https://symfony.com", - "time": "2016-12-10 14:24:53" + "time": "2017-05-25T23:10:31+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v3.2.1", + "version": "v3.3.2", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "e8f47a327c2f0fd5aa04fa60af2b693006ed7283" + "reference": "4054a102470665451108f9b59305c79176ef98f0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/e8f47a327c2f0fd5aa04fa60af2b693006ed7283", - "reference": "e8f47a327c2f0fd5aa04fa60af2b693006ed7283", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/4054a102470665451108f9b59305c79176ef98f0", + "reference": "4054a102470665451108f9b59305c79176ef98f0", "shasum": "" }, "require": { "php": ">=5.5.9" }, + "conflict": { + "symfony/dependency-injection": "<3.3" + }, "require-dev": { "psr/log": "~1.0", "symfony/config": "~2.8|~3.0", - "symfony/dependency-injection": "~2.8|~3.0", + "symfony/dependency-injection": "~3.3", "symfony/expression-language": "~2.8|~3.0", "symfony/stopwatch": "~2.8|~3.0" }, @@ -3356,7 +3710,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "3.3-dev" } }, "autoload": { @@ -3383,20 +3737,20 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "time": "2016-10-13 06:29:04" + "time": "2017-06-04T18:15:29+00:00" }, { "name": "symfony/filesystem", - "version": "v3.2.1", + "version": "v3.3.2", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "8d4cf7561a5b17e5eb7a02b80d0b8f014a3796d4" + "reference": "c709670bf64721202ddbe4162846f250735842c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/8d4cf7561a5b17e5eb7a02b80d0b8f014a3796d4", - "reference": "8d4cf7561a5b17e5eb7a02b80d0b8f014a3796d4", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/c709670bf64721202ddbe4162846f250735842c0", + "reference": "c709670bf64721202ddbe4162846f250735842c0", "shasum": "" }, "require": { @@ -3405,7 +3759,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "3.3-dev" } }, "autoload": { @@ -3432,20 +3786,20 @@ ], "description": "Symfony Filesystem Component", "homepage": "https://symfony.com", - "time": "2016-11-24 00:46:43" + "time": "2017-05-28T14:08:56+00:00" }, { "name": "symfony/finder", - "version": "v3.2.1", + "version": "v3.3.2", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "a69cb5d455b4885ca376dc5bb3e1155cc8c08c4b" + "reference": "baea7f66d30854ad32988c11a09d7ffd485810c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/a69cb5d455b4885ca376dc5bb3e1155cc8c08c4b", - "reference": "a69cb5d455b4885ca376dc5bb3e1155cc8c08c4b", + "url": "https://api.github.com/repos/symfony/finder/zipball/baea7f66d30854ad32988c11a09d7ffd485810c4", + "reference": "baea7f66d30854ad32988c11a09d7ffd485810c4", "shasum": "" }, "require": { @@ -3454,7 +3808,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "3.3-dev" } }, "autoload": { @@ -3481,20 +3835,74 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2016-12-13 09:39:43" + "time": "2017-06-01T21:01:25+00:00" }, { - "name": "symfony/polyfill-mbstring", - "version": "v1.3.0", + "name": "symfony/options-resolver", + "version": "v3.3.2", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "e79d363049d1c2128f133a2667e4f4190904f7f4" + "url": "https://github.com/symfony/options-resolver.git", + "reference": "ff48982d295bcac1fd861f934f041ebc73ae40f0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/e79d363049d1c2128f133a2667e4f4190904f7f4", - "reference": "e79d363049d1c2128f133a2667e4f4190904f7f4", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/ff48982d295bcac1fd861f934f041ebc73ae40f0", + "reference": "ff48982d295bcac1fd861f934f041ebc73ae40f0", + "shasum": "" + }, + "require": { + "php": ">=5.5.9" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\OptionsResolver\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony OptionsResolver Component", + "homepage": "https://symfony.com", + "keywords": [ + "config", + "configuration", + "options" + ], + "time": "2017-04-12T14:14:56+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.4.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "f29dca382a6485c3cbe6379f0c61230167681937" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/f29dca382a6485c3cbe6379f0c61230167681937", + "reference": "f29dca382a6485c3cbe6379f0c61230167681937", "shasum": "" }, "require": { @@ -3506,7 +3914,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.3-dev" + "dev-master": "1.4-dev" } }, "autoload": { @@ -3540,34 +3948,35 @@ "portable", "shim" ], - "time": "2016-11-14 01:06:16" + "time": "2017-06-09T14:24:12+00:00" }, { - "name": "symfony/polyfill-php54", - "version": "v1.3.0", + "name": "symfony/polyfill-php70", + "version": "v1.4.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php54.git", - "reference": "90e085822963fdcc9d1c5b73deb3d2e5783b16a0" + "url": "https://github.com/symfony/polyfill-php70.git", + "reference": "032fd647d5c11a9ceab8ee8747e13b5448e93874" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php54/zipball/90e085822963fdcc9d1c5b73deb3d2e5783b16a0", - "reference": "90e085822963fdcc9d1c5b73deb3d2e5783b16a0", + "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/032fd647d5c11a9ceab8ee8747e13b5448e93874", + "reference": "032fd647d5c11a9ceab8ee8747e13b5448e93874", "shasum": "" }, "require": { + "paragonie/random_compat": "~1.0|~2.0", "php": ">=5.3.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.3-dev" + "dev-master": "1.4-dev" } }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Php54\\": "" + "Symfony\\Polyfill\\Php70\\": "" }, "files": [ "bootstrap.php" @@ -3590,7 +3999,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 5.4+ features to lower PHP versions", + "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", @@ -3598,20 +4007,123 @@ "portable", "shim" ], - "time": "2016-11-14 01:06:16" + "time": "2017-06-09T14:24:12+00:00" }, { - "name": "symfony/process", - "version": "v3.2.1", + "name": "symfony/polyfill-php72", + "version": "v1.4.0", "source": { "type": "git", - "url": "https://github.com/symfony/process.git", - "reference": "02ea84847aad71be7e32056408bb19f3a616cdd3" + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "d3a71580c1e2cab33b6d705f0ec40e9015e14d5c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/02ea84847aad71be7e32056408bb19f3a616cdd3", - "reference": "02ea84847aad71be7e32056408bb19f3a616cdd3", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/d3a71580c1e2cab33b6d705f0ec40e9015e14d5c", + "reference": "d3a71580c1e2cab33b6d705f0ec40e9015e14d5c", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2017-06-09T08:25:21+00:00" + }, + { + "name": "symfony/polyfill-xml", + "version": "v1.4.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-xml.git", + "reference": "89326af9d173053826ae8fe26a6f49597ba4e9f3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-xml/zipball/89326af9d173053826ae8fe26a6f49597ba4e9f3", + "reference": "89326af9d173053826ae8fe26a6f49597ba4e9f3", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "symfony/polyfill-php72": "~1.4" + }, + "type": "metapackage", + "extra": { + "branch-alias": { + "dev-master": "1.4-dev" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for xml's utf8_encode and utf8_decode functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2017-06-09T08:25:21+00:00" + }, + { + "name": "symfony/process", + "version": "v3.3.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "8e30690c67aafb6c7992d6d8eb0d707807dd3eaf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/8e30690c67aafb6c7992d6d8eb0d707807dd3eaf", + "reference": "8e30690c67aafb6c7992d6d8eb0d707807dd3eaf", "shasum": "" }, "require": { @@ -3620,7 +4132,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "3.3-dev" } }, "autoload": { @@ -3647,20 +4159,20 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2016-11-24 10:40:28" + "time": "2017-05-22T12:32:03+00:00" }, { "name": "symfony/stopwatch", - "version": "v3.2.1", + "version": "v3.3.2", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "5b139e1c4290e6c7640ba80d9c9b5e49ef22b841" + "reference": "602a15299dc01556013b07167d4f5d3a60e90d15" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/5b139e1c4290e6c7640ba80d9c9b5e49ef22b841", - "reference": "5b139e1c4290e6c7640ba80d9c9b5e49ef22b841", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/602a15299dc01556013b07167d4f5d3a60e90d15", + "reference": "602a15299dc01556013b07167d4f5d3a60e90d15", "shasum": "" }, "require": { @@ -3669,7 +4181,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "3.3-dev" } }, "autoload": { @@ -3696,20 +4208,20 @@ ], "description": "Symfony Stopwatch Component", "homepage": "https://symfony.com", - "time": "2016-06-29 05:43:10" + "time": "2017-04-12T14:14:56+00:00" }, { "name": "symfony/yaml", - "version": "v3.2.1", + "version": "v3.3.2", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "a7095af4b97a0955f85c8989106c249fa649011f" + "reference": "9752a30000a8ca9f4b34b5227d15d0101b96b063" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/a7095af4b97a0955f85c8989106c249fa649011f", - "reference": "a7095af4b97a0955f85c8989106c249fa649011f", + "url": "https://api.github.com/repos/symfony/yaml/zipball/9752a30000a8ca9f4b34b5227d15d0101b96b063", + "reference": "9752a30000a8ca9f4b34b5227d15d0101b96b063", "shasum": "" }, "require": { @@ -3724,7 +4236,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "3.3-dev" } }, "autoload": { @@ -3751,7 +4263,7 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2016-12-10 10:07:06" + "time": "2017-06-02T22:05:06+00:00" }, { "name": "webmozart/assert", @@ -3801,20 +4313,20 @@ "check", "validate" ], - "time": "2016-11-23 20:04:58" + "time": "2016-11-23T20:04:58+00:00" }, { "name": "yiisoft/yii2-codeception", - "version": "2.0.5", + "version": "2.0.6", "source": { "type": "git", "url": "https://github.com/yiisoft/yii2-codeception.git", - "reference": "c916a36d09fc128b05a374e7922bc56854334d56" + "reference": "086c8c2d28736e7a484a7a8611b5cc84024e9fb3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/yiisoft/yii2-codeception/zipball/c916a36d09fc128b05a374e7922bc56854334d56", - "reference": "c916a36d09fc128b05a374e7922bc56854334d56", + "url": "https://api.github.com/repos/yiisoft/yii2-codeception/zipball/086c8c2d28736e7a484a7a8611b5cc84024e9fb3", + "reference": "086c8c2d28736e7a484a7a8611b5cc84024e9fb3", "shasum": "" }, "require": { @@ -3847,15 +4359,15 @@ "yii2" ], "abandoned": "codeception/codeception", - "time": "2016-03-17 03:41:26" + "time": "2017-05-22T12:08:21+00:00" } ], "aliases": [], - "minimum-stability": "stable", + "minimum-stability": "dev", "stability-flags": { "phpmd/phpmd": 0 }, - "prefer-stable": false, + "prefer-stable": true, "prefer-lowest": false, "platform": { "php": ">=5.5" diff --git a/docs/README.md b/docs/README.md deleted file mode 100644 index f85ebd4..0000000 --- a/docs/README.md +++ /dev/null @@ -1 +0,0 @@ -**[Documentation index is here!](index.md)** diff --git a/docs/contributing/clean-code.md b/docs/contributing/clean-code.md new file mode 100644 index 0000000..6273738 --- /dev/null +++ b/docs/contributing/clean-code.md @@ -0,0 +1,60 @@ +Clean Code +========== + +We have added some development tools for you to contribute to the library with clean code: + +- **PHP mess detector**: Takes a given PHP source code base and look for several potential problems within that source. +- **PHP code sniffer**: Tokenizes PHP, Javascript and CSS files and detectes violations of a defined set of coding + standards. +- **PHP code fixer**: Analyzes some PHP source code and tries to fix coding standards issues. +- **Tests**: Well, everybody knows why tests exists. + +Using PHP mess detector +----------------------- + +PHP mess detector takes a given PHP source code base and look for several potential problems within that source. The +following is a sample usage with all options available: + +```bash +./vendor/bin/phpmd ./src text codesize,unusedcode,naming,design,controversial,cleancode +``` + +For further information, please visit [PHP mess detector documentation](https://phpmd.org/) + +Using PHP code sniffer +---------------------- + +Global settings file: `phpcs.xml.dist` (added into Git) +Local settings file (you can add it locally): `phpcs.xml` (ignored by Git) + +- Run checking by `PHP_CodeSniffer`: `./vendor/bin/phpcs` +- Show check report in patch form: `./vendor/bin/phpcs --report=diff` +- Automatically fix all fixable issues: `./vendor/bin/phpcbf` + +For further information, please visit [squizlabs/PHP_CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer) + +Using PHP code fixer +-------------------- + +Global settings file: `.php_cs.dist` (added into Git) +Local settings file (you can add it locally): `.php_cs` (ignored by Git) + +- Run checking by `PHP-CS-Fixer`: `./vendor/bin/php-cs-fixer --config=.php_cs.dist fix ./src --dry-run` +- Automatically fix all fixable issues: ` ./vendor/bin/php-cs-fixer --config=.php_cs.dist fix ./src` + +For further information, please visit [FriendsOfPHP/PHP-CS-Fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer) + +Running Tests +------------- + +We are using `Codeception` for testing the module. Do the following: + +- Create a `yii2-usuario-test` database. +- Add database access configuration `tests/_app/config/db.php` +- Run `./vendor/bin/codecept build` +- Run `./vendor/bin/codecept functional` + +We still need to add `unit` tests to the module. Feel free to add your tests to it as long as it makes use of +`Codeception`. + +© [2amigos](http://www.2amigos.us/) 2013-2017 diff --git a/docs/contributing/how-to.md b/docs/contributing/how-to.md new file mode 100644 index 0000000..7e09087 --- /dev/null +++ b/docs/contributing/how-to.md @@ -0,0 +1,30 @@ +# How to contribute + +Contributions are **welcome** and will be fully **credited**. + +We accept contributions via Pull Requests on [Github](https://github.com/2amigos/yii2-usuario). + + +## Pull Requests + +- **[PSR-2 Coding Standard](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md)** - The easiest way to apply the conventions is to install [PHP Code Sniffer](http://pear.php.net/package/PHP_CodeSniffer). + +- **Add tests!** - Your new features won't be accepted if it doesn't have tests. + +- **Document any change in behaviour** - Make sure the `README.md` and any other relevant documentation are kept up-to-date. + +- **Consider our release cycle** - We try to follow [SemVer v2.0.0](http://semver.org/). Randomly breaking public APIs is not an option. + +- **Create feature branches** - Don't ask us to pull from your master branch. + +- **One pull request per feature** - If you want to do more than one thing, send multiple pull requests. + +- **Send coherent history** - Make sure each individual commit in your pull request is meaningful. If you had to make multiple intermediate commits while developing, please squash them before submitting. + + +## Clean Code + +- Follow the guidelines at [Clean Code](clean-code.md) + + +© [2amigos](http://www.2amigos.us/) 2013-2017 diff --git a/docs/enhancing-and-overriding/how-to-enhance-a-user-model.md b/docs/enhancing-and-overriding/how-to-enhance-a-user-model.md index 4e25c82..f316a3e 100644 --- a/docs/enhancing-and-overriding/how-to-enhance-a-user-model.md +++ b/docs/enhancing-and-overriding/how-to-enhance-a-user-model.md @@ -73,3 +73,5 @@ class ProfileController extends Controller > This is absolutely good way to extend almost any class of the extension. For more information you could > check `Da\User\Bootstrap` class file to see what you have in your control. + +© [2amigos](http://www.2amigos.us/) 2013-2017 diff --git a/docs/enhancing-and-overriding/overriding-classes.md b/docs/enhancing-and-overriding/overriding-classes.md new file mode 100644 index 0000000..a368f48 --- /dev/null +++ b/docs/enhancing-and-overriding/overriding-classes.md @@ -0,0 +1,106 @@ +Overriding Classes +================== + +This module makes extensive use of the Yii2's Dependency Injection Container. The module has a special attribute +named `classMap` where it allows you to override specific classes. + +The following are the classes that you can override throughout that attribute: + +- Model Classes (AR) + - User + - SocialNetworkAccount + - Profile + - Token + - Assignment + - Permission + - Role +- Search Classes + - UserSearch + - PermissionSearch + - RoleSearch +- Form Classes + - RegistrationForm + - ResendForm + - LoginForm + - SettingsForm + - RecoveryForm + + +How to Override +--------------- + +The `classMap` contains an easy to recognize name and their correspondent definition. The default configuration can be +seen at the `Bootstrap` class: + +```php +$defaults = [ + // --- models + 'User' => 'Da\User\Model\User', + 'SocialNetworkAccount' => 'Da\User\Model\SocialNetworkAccount', + 'Profile' => 'Da\User\Model\Profile', + 'Token' => 'Da\User\Model\Token', + 'Assignment' => 'Da\User\Model\Assignment', + 'Permission' => 'Da\User\Model\Permission', + 'Role' => 'Da\User\Model\Role', + // --- search + 'UserSearch' => 'Da\User\Search\UserSearch', + 'PermissionSearch' => 'Da\User\Search\PermissionSearch', + 'RoleSearch' => 'Da\User\Search\RoleSearch', + // --- forms + 'RegistrationForm' => 'Da\User\Form\RegistrationForm', + 'ResendForm' => 'Da\User\Form\ResendForm', + 'LoginForm' => 'Da\User\Form\LoginForm', + 'SettingsForm' => 'Da\User\Form\SettingsForm', + 'RecoveryForm' => 'Da\User\Form\RecoveryForm', +]; +``` + +As you can see, the only thing we need to do is actually modify its definition. For example, the following configuration +will override the `RegistrationForm` class: + +```php +namespace app\forms; + +use Da\User\Form\RegistrationForm as BaseForm; + + +class RegistrationForm extends BaseForm { + + /** + * Override from parent + */ + public function rules() { + // your logic + } +} + +``` +Now, to tell the module to use your class instead, you simply need to update the definition of that class into the +the `Module::classMap` attribute. + +```php +\\ ... +'modules' => [ + 'user' => [ + 'class' => Da\User\Module::class, + 'classMap' => [ + 'RegistrationForm' => 'app\forms\RegistrationForm' + ] + ] +] +``` + +The definition can be any of the following (from Yii2's DI container): + +- a **PHP callable**: The callable will be executed when `Container::get()]]` is invoked. The signature of the callable + should be `function ($container, $params, $config)`, where `$params` stands for the list of constructor + parameters, `$config` the object configuration, and `$container` the container object. The return value + of the callable will be returned by `Container::get()]]` as the object instance requested. +- a **configuration array**: the array contains name-value pairs that will be used to initialize the property + values of the newly created object when `Container::get()]]` is called. The `class` element stands for the + the class of the object to be created. If `class` is not specified, `$class` will be used as the class name. +- a **string**: a class name, an interface name or an alias name. + + + +> See [how to enhance a User model](how-to-enhance-a-user-model.md) guide to see a practical example. diff --git a/docs/index.md b/docs/index.md index 610858f..403eb06 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,5 +1,4 @@ -Yii2 Usuario Extension Documentation -==================================== +# Yii2 Usuario Extension [![Build Status](https://travis-ci.org/2amigos/yii2-usuario.svg?branch=master)](https://travis-ci.org/2amigos/yii2-usuario) [![Documentation Status](https://readthedocs.org/projects/yii2-usuario/badge/?version=latest)](http://yii2-usuario.readthedocs.io/en/latest/?badge=latest) @@ -10,17 +9,93 @@ Yii2 Usuario Extension Documentation [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/2amigos/yii2-usuario/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/2amigos/yii2-usuario/?branch=master) [![Code Coverage](https://scrutinizer-ci.com/g/2amigos/yii2-usuario/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/2amigos/yii2-usuario/?branch=master) -![Yii Framework](media/yii-logo.png "Yii Framework") -![User Secret](media/user-secret.png "User Secret") -![Wrench](media/wrench.png "Wrench") -![Cogs](media/cogs.png "Cogs") +## Getting Started -Installation ------------- +This extension has been built to be working `out of the box`, that is, after you install its migrations and configure +the module on your application structure, you should be set to go. + +#### Step 1 - Download + +You can download it and place it on your third party libraries folder but we highly recommend that you install it +through [composer](http://getcomposer.org/download/). + +Either run + +```bash +$ composer require 2amigos/yii2-usuario:~1.0 +``` + +or add + +``` +"2amigos/yii2-usuario": "~1.0" +``` + +to the `require` section of your `composer.json` file. + +#### Step 2 - Apply database schema migrations + +This is obvious extension like our which deals with users, roles, permissions, etc. have to use some database. +Our migrations are namespaced and available in `Da\User\Migration` namespace. + +Before starting to work with database, please ensure you have deleted `m130524_201442_init.php` migration file +which comes from the default installation of the Advanced Application Template. It's located at +`%PROJECT_DIR%/console/migrations/m130524_201442_init.php` path. + +There are two ways to apply migrations of this extension, the first one: + +```php +./yii migrate --migrationPath="@Da/User/Migration" +./yii migrate +``` + +First command applies migration set of the user module, and the second one is for application migrations. + +> Note, you cannot mix two ways: choose one of them, and stick with it. + +The second way is more comfortable, and you don't have to remember to launch first command every time you obtain +new version of our extension. First of all add the following lines to the file +`%PROJECT_DIR%/console/config/main.php`: + +```php +return [ + // ... + 'controllerMap' => [ + 'migrate' => [ + 'class' => \yii\console\controllers\MigrateController::class, + 'migrationNamespaces' => [ + 'Da\User\Migration', + ], + ], + ], + // ... +]; +``` + +This basically instructs your application to always try to use migrations from the given namespace. Which again +is very convenient way to track new migration classes coming from this and possibly other extensions and sources. + +> Namespaced migrations were introduced in Yii 2.0.10, so before using them consider updating your framework +> installation version. + +#### Step 3 - Configure + +Once we have it installed, we have to configure it on your `config.php` file. + + +```php +'modules' => [ + 'user' => [ + 'class' => Da\User\Module::class, + ] +] +``` + +Configuration may differ from template to template, the following are some guidelines for sidekit app template and +the official Yii2 advanced application template: - [Sidekit Application Template](installation/sidekit-application-template.md) - [Advanced Application Template](installation/advanced-application-template.md) -- [Basic Application Template](installation/basic-application-template.md) Enhancing and Overriding ------------------------ @@ -32,10 +107,10 @@ Helpful Guides - [Separate Frontend and Backend Sessions](helpful-guides/separate-frontend-and-backend-sessions.md) -Other ------ +Contributing +------------ -- [Contriburing to Documentation](other/contriburing-to-documentation.md) -- [Other for Developers](other/other-for-developers.md) +- [How to Contribute](contributing/how-to.md) +- [Clean Code](contributing/clean-code.md) -© [2amigos](http://www.2amigos.us/) 2016 +© [2amigos](http://www.2amigos.us/) 2013-2017 diff --git a/docs/installation/advanced-application-template.md b/docs/installation/advanced-application-template.md index 5475b90..23367b4 100644 --- a/docs/installation/advanced-application-template.md +++ b/docs/installation/advanced-application-template.md @@ -6,7 +6,7 @@ This page is dedicated for those who prefer to use more or less default check [their readme](https://github.com/yiisoft/yii2-app-advanced#readme) file on why and when you should use it, for now we're going to explain on how Yii2 User Module extension could be used for the case if you prefer it. -> We highly recommend you to use [Sidekit Application Template](http://www.2amigos.us/) which has sensible default +> We highly recommend you to use [Sidekit Application Template](https://github.com/sidekit/yii2-app-template) which has sensible default packages, and everything you need to start project in no time with batteries included! ;-) > > [Check this manual page](sidekit-application-template.md) if you decided to use it. @@ -107,9 +107,5 @@ is very convenient way to track new migration classes coming from this and possi > Namespaced migrations were introduced in Yii 2.0.10, so before using them consider updating your framework > installation version. -What can I do now? ------------------- -Now you're ready to go and build something nice with help of our module extension. Perhaps you could check -[how to use login and sign up forms]() gracefully built for your needs, or you can check out how you could -[customize login form]() look'n'feel. +© [2amigos](http://www.2amigos.us/) 2013-2017 diff --git a/docs/installation/basic-application-template.md b/docs/installation/basic-application-template.md deleted file mode 100644 index 6cf6e21..0000000 --- a/docs/installation/basic-application-template.md +++ /dev/null @@ -1,4 +0,0 @@ -Basic Application Template -========================== - -TODO: diff --git a/docs/installation/sidekit-application-template.md b/docs/installation/sidekit-application-template.md index 916092f..c2a5798 100644 --- a/docs/installation/sidekit-application-template.md +++ b/docs/installation/sidekit-application-template.md @@ -1,4 +1,83 @@ Sidekit Application Template ============================ -TODO: promote our own application template first of all, and do it here ;-) +Sidekit Application Template is our proposed structure for your Yii2 applications. It makes use +of a special library named `SideKit` + +> For further information regarding the use of this template, please visit its +[README file](https://github.com/sidekit/yii2-app-template). + +Step 1 - Install SideKit Application template +---------------------------------------------- + +We will assume that you have composer installed globally on your computer and also the +`fxp/composer-asset/plugin:^1.3` that is required for all Yii2 apps. + +```bash +composer create-project --prefer-dist --stability=dev sidekit/yii2-app-template your-site-name +``` + +Step 2 - Configure your application +----------------------------------- + +Go to the `config/web/modules` folder and create a new PHP file named `user.php`. Then on in its +contents write the configuration for the module: + + +```php + Da\User\Module::class +]; +``` + +Step 3 - Apply database schema migrations +----------------------------------------- + +This is obvious extension like our which deals with users, roles, permissions, etc. have to use some database. +Our migrations are namespaced and available in `Da\User\Migration` namespace. + +Before starting to work with database, please ensure you have deleted `m130524_201442_init.php` migration file +which comes from the default installation of the Advanced Application Template. It's located at +`%PROJECT_DIR%/console/migrations/m130524_201442_init.php` path. + +There are two ways to apply migrations of this extension, the first one: + +```php +./yii migrate --migrationPath="@Da/User/Migration" +./yii migrate +``` + +First command applies migration set of the user module, and the second one is for application migrations. + +> Note, you cannot mix two ways: choose one of them, and stick with it. + +The second way is more comfortable, and you don't have to remember to launch first command every time you obtain +new version of our extension. First of all add the following lines to the file +`%PROJECT_DIR%/console/config/main.php`: + +```php +return [ + // ... + 'controllerMap' => [ + 'migrate' => [ + 'class' => \yii\console\controllers\MigrateController::class, + 'migrationNamespaces' => [ + 'Da\User\Migration', + ], + ], + ], + // ... +]; +``` + +This basically instructs your application to always try to use migrations from the given namespace. Which again +is very convenient way to track new migration classes coming from this and possibly other extensions and sources. + +> Namespaced migrations were introduced in Yii 2.0.10, so before using them consider updating your framework +> installation version. + +© [2amigos](http://www.2amigos.us/) 2013-2017 + + diff --git a/docs/media/README.md b/docs/media/README.md deleted file mode 100644 index 0b114c3..0000000 --- a/docs/media/README.md +++ /dev/null @@ -1,21 +0,0 @@ -Yii Logo -======== - -File `yii-logo.svg`: -[Yii Framework logo download](http://www.yiiframework.com/logo/) -![](./yii-logo.svg "") - -Font Awesome icons -================== - -File `cogs.svg`: -[Github project: encharm/Font-Awesome-SVG-PNG](https://github.com/encharm/Font-Awesome-SVG-PNG/blob/master/black/svg/cogs.svg) -![](./cogs.svg "") - -File `user-secret.svg: -[Github project: encharm/Font-Awesome-SVG-PNG](https://github.com/encharm/Font-Awesome-SVG-PNG/blob/master/black/svg/user-secret.svg) -![](./user-secret.svg "") - -File `wrench.svg`: -[Github project: encharm/Font-Awesome-SVG-PNG](https://github.com/encharm/Font-Awesome-SVG-PNG/blob/master/black/svg/wrench.svg) -![](./wrench.svg "") diff --git a/docs/media/cogs.png b/docs/media/cogs.png deleted file mode 100644 index b6d876b..0000000 Binary files a/docs/media/cogs.png and /dev/null differ diff --git a/docs/media/cogs.svg b/docs/media/cogs.svg deleted file mode 100644 index ae1b91a..0000000 --- a/docs/media/cogs.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/media/user-secret.png b/docs/media/user-secret.png deleted file mode 100644 index 1ca3ec7..0000000 Binary files a/docs/media/user-secret.png and /dev/null differ diff --git a/docs/media/user-secret.svg b/docs/media/user-secret.svg deleted file mode 100644 index 22efd21..0000000 --- a/docs/media/user-secret.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/media/wrench.png b/docs/media/wrench.png deleted file mode 100644 index f3bd13b..0000000 Binary files a/docs/media/wrench.png and /dev/null differ diff --git a/docs/media/wrench.svg b/docs/media/wrench.svg deleted file mode 100644 index 8c8e7f8..0000000 --- a/docs/media/wrench.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/media/yii-logo.png b/docs/media/yii-logo.png deleted file mode 100644 index 08b7f2c..0000000 Binary files a/docs/media/yii-logo.png and /dev/null differ diff --git a/docs/media/yii-logo.svg b/docs/media/yii-logo.svg deleted file mode 100644 index 75bbf80..0000000 --- a/docs/media/yii-logo.svg +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/other/contriburing-to-documentation.md b/docs/other/contriburing-to-documentation.md deleted file mode 100644 index e69de29..0000000 diff --git a/docs/other/other-for-developers.md b/docs/other/other-for-developers.md deleted file mode 100644 index c69176d..0000000 --- a/docs/other/other-for-developers.md +++ /dev/null @@ -1,32 +0,0 @@ -Other for Developers -==================== - -Tests ------ - -1. First of all -2. Running tests: `./vendor` - -Code Style Checkers and Mess Detectors --------------------------------------- - -## [squizlabs/PHP_CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer) - -Global settings file: `phpcs.xml.dist` (added into Git) -Local settings file (you can add it locally): `phpcs.xml` (ignored by Git) - -Run checking by `PHP_CodeSniffer`: `./vendor/bin/phpcs` -Show check report in patch form: `./vendor/bin/phpcs --report=diff` -Automatically fix all fixable issues: `./vendor/bin/phpcbf` - -## [FriendsOfPHP/PHP-CS-Fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer) - -Global settings file: `.php_cs.dist` (added into Git) -Local settings file (you can add it locally): `.php_cs` (ignored by Git) - -Run checking by `PHP-CS-Fixer`: `./vendor/bin/php-cs-fixer fix --dry-run` -Automatically fix all fixable issues: `./vendor/bin/php-cs-fixer fix` - -## [phpmd/phpmd](https://github.com/phpmd/phpmd) - -TODO: diff --git a/src/User/AuthClient/Yandex.php b/src/User/AuthClient/Yandex.php index c34549f..35f3dfe 100644 --- a/src/User/AuthClient/Yandex.php +++ b/src/User/AuthClient/Yandex.php @@ -28,9 +28,9 @@ class Yandex extends BaseYandex implements AuthClientInterface if ($emails !== null && isset($emails[0])) { return $emails[0]; - } else { - return null; } + + return null; } /** diff --git a/src/User/Bootstrap.php b/src/User/Bootstrap.php index 989d742..a4e1a8e 100644 --- a/src/User/Bootstrap.php +++ b/src/User/Bootstrap.php @@ -59,7 +59,7 @@ class Bootstrap implements BootstrapInterface * Initialize container with module classes. * * @param \yii\base\Application $app - * @param array $map the previously built class map list + * @param array $map the previously built class map list */ protected function initContainer($app, $map) { @@ -165,7 +165,7 @@ class Bootstrap implements BootstrapInterface if (!isset($app->get('i18n')->translations['usuario*'])) { $app->get('i18n')->translations['usuario*'] = [ 'class' => PhpMessageSource::class, - 'basePath' => __DIR__.'/resources/i18n', + 'basePath' => __DIR__ . '/resources/i18n', 'sourceLanguage' => 'en-US', ]; } @@ -214,7 +214,7 @@ class Bootstrap implements BootstrapInterface /** * Ensures required mail parameters needed for the mail service. * - * @param Application $app + * @param Application $app * @param Module|\yii\base\Module $module */ protected function initMailServiceConfiguration(Application $app, Module $module) @@ -331,7 +331,7 @@ class Bootstrap implements BootstrapInterface /** * Returns the parent class name route of a short class name. * - * @param array $routes class name routes + * @param array $routes class name routes * @param string $name * * @return int|string diff --git a/src/User/Command/ConfirmController.php b/src/User/Command/ConfirmController.php index 2dc2a8f..e4c2d9f 100644 --- a/src/User/Command/ConfirmController.php +++ b/src/User/Command/ConfirmController.php @@ -36,12 +36,12 @@ class ConfirmController extends Controller { $user = $this->userQuery->whereUsernameOrEmail($usernameOrEmail)->one(); if ($user === null) { - $this->stdout(Yii::t('usuario', 'User is not found')."\n", Console::FG_RED); + $this->stdout(Yii::t('usuario', 'User is not found') . "\n", Console::FG_RED); } else { if ($this->make(UserConfirmationService::class, [$user])->run()) { - $this->stdout(Yii::t('usuario', 'User has been confirmed')."\n", Console::FG_GREEN); + $this->stdout(Yii::t('usuario', 'User has been confirmed') . "\n", Console::FG_GREEN); } else { - $this->stdout(Yii::t('usuario', 'Error occurred while confirming user')."\n", Console::FG_RED); + $this->stdout(Yii::t('usuario', 'Error occurred while confirming user') . "\n", Console::FG_RED); } } } diff --git a/src/User/Command/CreateController.php b/src/User/Command/CreateController.php index d9b7d43..e313fdf 100644 --- a/src/User/Command/CreateController.php +++ b/src/User/Command/CreateController.php @@ -32,12 +32,12 @@ class CreateController extends Controller $mailService = MailFactory::makeWelcomeMailerService($user); if ($this->make(UserCreateService::class, [$user, $mailService])->run()) { - $this->stdout(Yii::t('usuario', 'User has been created')."!\n", Console::FG_GREEN); + $this->stdout(Yii::t('usuario', 'User has been created') . "!\n", Console::FG_GREEN); } else { - $this->stdout(Yii::t('usuario', 'Please fix following errors:')."\n", Console::FG_RED); + $this->stdout(Yii::t('usuario', 'Please fix following errors:') . "\n", Console::FG_RED); foreach ($user->errors as $errors) { foreach ($errors as $error) { - $this->stdout(' - '.$error."\n", Console::FG_RED); + $this->stdout(' - ' . $error . "\n", Console::FG_RED); } } } diff --git a/src/User/Command/DeleteController.php b/src/User/Command/DeleteController.php index b5dbbf5..d150cdb 100644 --- a/src/User/Command/DeleteController.php +++ b/src/User/Command/DeleteController.php @@ -32,12 +32,12 @@ class DeleteController extends Controller if ($this->confirm(Yii::t('usuario', 'Are you sure? Deleted user can not be restored'))) { $user = $this->userQuery->whereUsernameOrEmail($usernameOrEmail)->one(); if ($user === null) { - $this->stdout(Yii::t('usuario', 'User is not found')."\n", Console::FG_RED); + $this->stdout(Yii::t('usuario', 'User is not found') . "\n", Console::FG_RED); } else { if ($user->delete()) { - $this->stdout(Yii::t('usuario', 'User has been deleted')."\n", Console::FG_GREEN); + $this->stdout(Yii::t('usuario', 'User has been deleted') . "\n", Console::FG_GREEN); } else { - $this->stdout(Yii::t('usuario', 'Error occurred while deleting user')."\n", Console::FG_RED); + $this->stdout(Yii::t('usuario', 'Error occurred while deleting user') . "\n", Console::FG_RED); } } } diff --git a/src/User/Command/PasswordController.php b/src/User/Command/PasswordController.php index 6530324..fc162b3 100644 --- a/src/User/Command/PasswordController.php +++ b/src/User/Command/PasswordController.php @@ -38,12 +38,12 @@ class PasswordController extends Controller $user = $this->userQuery->whereUsernameOrEmail($usernameOrEmail)->one(); if ($user === null) { - $this->stdout(Yii::t('usuario', 'User is not found')."\n", Console::FG_RED); + $this->stdout(Yii::t('usuario', 'User is not found') . "\n", Console::FG_RED); } else { if ($this->make(ResetPasswordService::class, [$password, $user])->run()) { - $this->stdout(Yii::t('usuario', 'Password has been changed')."\n", Console::FG_GREEN); + $this->stdout(Yii::t('usuario', 'Password has been changed') . "\n", Console::FG_GREEN); } else { - $this->stdout(Yii::t('usuario', 'Error occurred while changing password')."\n", Console::FG_RED); + $this->stdout(Yii::t('usuario', 'Error occurred while changing password') . "\n", Console::FG_RED); } } } diff --git a/src/User/Component/AuthDbManagerComponent.php b/src/User/Component/AuthDbManagerComponent.php index 30fe4b3..b951cd2 100644 --- a/src/User/Component/AuthDbManagerComponent.php +++ b/src/User/Component/AuthDbManagerComponent.php @@ -18,8 +18,8 @@ use yii\rbac\DbManager; class AuthDbManagerComponent extends DbManager implements AuthManagerInterface { /** - * @param int|null $type If null will return all auth items - * @param array $excludeItems Items that should be excluded from result array + * @param int|null $type If null will return all auth items + * @param array $excludeItems Items that should be excluded from result array * * @return array */ @@ -63,7 +63,7 @@ class AuthDbManagerComponent extends DbManager implements AuthManagerInterface ->select('b.*') ->from(['a' => $this->assignmentTable, 'b' => $this->itemTable]) ->where('{{a}}.[[item_name]]={{b}}.[[name]]') - ->andWhere(['a.user_id' => (string) $userId]); + ->andWhere(['a.user_id' => (string)$userId]); $roles = []; foreach ($query->all($this->db) as $row) { diff --git a/src/User/Contracts/AuthManagerInterface.php b/src/User/Contracts/AuthManagerInterface.php index 915d911..302469f 100644 --- a/src/User/Contracts/AuthManagerInterface.php +++ b/src/User/Contracts/AuthManagerInterface.php @@ -17,7 +17,7 @@ interface AuthManagerInterface extends ManagerInterface { /** * @param int|null $type - * @param array $excludeItems + * @param array $excludeItems * * @return mixed */ diff --git a/src/User/Controller/AbstractAuthItemController.php b/src/User/Controller/AbstractAuthItemController.php index c22ffee..2eca800 100644 --- a/src/User/Controller/AbstractAuthItemController.php +++ b/src/User/Controller/AbstractAuthItemController.php @@ -33,10 +33,10 @@ abstract class AbstractAuthItemController extends Controller /** * AbstractAuthItemController constructor. * - * @param string $id - * @param Module $module + * @param string $id + * @param Module $module * @param AuthHelper $authHelper - * @param array $config + * @param array $config */ public function __construct($id, Module $module, AuthHelper $authHelper, array $config = []) { @@ -92,9 +92,8 @@ abstract class AbstractAuthItemController extends Controller ->setFlash('success', Yii::t('usuario', 'Authorization item successfully created.')); return $this->redirect(['index']); - } else { - Yii::$app->getSession()->setFlash('danger', Yii::t('usuario', 'Unable to create authorization item.')); } + Yii::$app->getSession()->setFlash('danger', Yii::t('usuario', 'Unable to create authorization item.')); } return $this->render( @@ -122,9 +121,8 @@ abstract class AbstractAuthItemController extends Controller ->setFlash('success', Yii::t('usuario', 'Authorization item successfully updated.')); return $this->redirect(['index']); - } else { - Yii::$app->getSession()->setFlash('danger', Yii::t('usuario', 'Unable to update authorization item.')); } + Yii::$app->getSession()->setFlash('danger', Yii::t('usuario', 'Unable to update authorization item.')); } return $this->render( diff --git a/src/User/Controller/AdminController.php b/src/User/Controller/AdminController.php index f30621e..47d75ec 100644 --- a/src/User/Controller/AdminController.php +++ b/src/User/Controller/AdminController.php @@ -43,10 +43,10 @@ class AdminController extends Controller /** * AdminController constructor. * - * @param string $id - * @param Module $module + * @param string $id + * @param Module $module * @param UserQuery $userQuery - * @param array $config + * @param array $config */ public function __construct($id, Module $module, UserQuery $userQuery, array $config = []) { @@ -233,7 +233,10 @@ class AdminController extends Controller Yii::$app->getSession()->setFlash('success', Yii::t('usuario', 'User has been confirmed')); $this->trigger(UserEvent::EVENT_AFTER_CONFIRMATION, $event); } else { - Yii::$app->getSession()->setFlash('warning', Yii::t('usuario', 'Unable to confirm user. Please, try again.')); + Yii::$app->getSession()->setFlash( + 'warning', + Yii::t('usuario', 'Unable to confirm user. Please, try again.') + ); } return $this->redirect(Url::previous('actions-redirect')); diff --git a/src/User/Controller/ProfileController.php b/src/User/Controller/ProfileController.php index c6131e2..df5444b 100644 --- a/src/User/Controller/ProfileController.php +++ b/src/User/Controller/ProfileController.php @@ -12,10 +12,10 @@ namespace Da\User\Controller; use Da\User\Query\ProfileQuery; +use Yii; use yii\base\Module; use yii\filters\AccessControl; use yii\web\Controller; -use Yii; use yii\web\NotFoundHttpException; class ProfileController extends Controller @@ -25,10 +25,10 @@ class ProfileController extends Controller /** * ProfileController constructor. * - * @param string $id - * @param Module $module + * @param string $id + * @param Module $module * @param ProfileQuery $profileQuery - * @param array $config + * @param array $config */ public function __construct($id, Module $module, ProfileQuery $profileQuery, array $config = []) { diff --git a/src/User/Controller/RecoveryController.php b/src/User/Controller/RecoveryController.php index 867dcf6..f836e35 100644 --- a/src/User/Controller/RecoveryController.php +++ b/src/User/Controller/RecoveryController.php @@ -16,6 +16,7 @@ use Da\User\Event\ResetPasswordEvent; use Da\User\Factory\MailFactory; use Da\User\Form\RecoveryForm; use Da\User\Model\Token; +use Da\User\Module; use Da\User\Query\TokenQuery; use Da\User\Query\UserQuery; use Da\User\Service\PasswordRecoveryService; @@ -23,7 +24,6 @@ use Da\User\Service\ResetPasswordService; use Da\User\Traits\ContainerAwareTrait; use Da\User\Validator\AjaxRequestModelValidator; use Yii; -use Da\User\Module; use yii\filters\AccessControl; use yii\web\Controller; use yii\web\NotFoundHttpException; @@ -38,11 +38,11 @@ class RecoveryController extends Controller /** * RecoveryController constructor. * - * @param string $id - * @param Module $module - * @param UserQuery $userQuery + * @param string $id + * @param Module $module + * @param UserQuery $userQuery * @param TokenQuery $tokenQuery - * @param array $config + * @param array $config */ public function __construct($id, Module $module, UserQuery $userQuery, TokenQuery $tokenQuery, array $config = []) { diff --git a/src/User/Controller/RegistrationController.php b/src/User/Controller/RegistrationController.php index 546ae0d..966b239 100644 --- a/src/User/Controller/RegistrationController.php +++ b/src/User/Controller/RegistrationController.php @@ -44,11 +44,11 @@ class RegistrationController extends Controller /** * RegistrationController constructor. * - * @param string $id - * @param Module $module - * @param UserQuery $userQuery + * @param string $id + * @param Module $module + * @param UserQuery $userQuery * @param SocialNetworkAccountQuery $socialNetworkAccountQuery - * @param array $config + * @param array $config */ public function __construct( $id, @@ -232,7 +232,7 @@ class RegistrationController extends Controller 'info', Yii::t( 'usuario', - 'A message has been sent to your email address. '. + 'A message has been sent to your email address. ' . 'It contains a confirmation link that you must click to complete registration.' ) ); @@ -243,18 +243,21 @@ class RegistrationController extends Controller 'danger', Yii::t( 'usuario', - 'We couldn\'t re-send the mail to confirm your address. '. + 'We couldn\'t re-send the mail to confirm your address. ' . 'Please, verify is the correct email or if it has been confirmed already.' ) ); } - return $this->render('/shared/message', [ - 'title' => $success - ? Yii::t('usuario', 'A new confirmation link has been sent') - : Yii::t('usuario', 'Unable to send confirmation link'), - 'module' => $this->module, - ]); + return $this->render( + '/shared/message', + [ + 'title' => $success + ? Yii::t('usuario', 'A new confirmation link has been sent') + : Yii::t('usuario', 'Unable to send confirmation link'), + 'module' => $this->module, + ] + ); } return $this->render( diff --git a/src/User/Controller/SecurityController.php b/src/User/Controller/SecurityController.php index 8695c60..c0da973 100644 --- a/src/User/Controller/SecurityController.php +++ b/src/User/Controller/SecurityController.php @@ -37,10 +37,10 @@ class SecurityController extends Controller /** * SecurityController constructor. * - * @param string $id - * @param Module $module + * @param string $id + * @param Module $module * @param SocialNetworkAccountQuery $socialNetworkAccountQuery - * @param array $config + * @param array $config */ public function __construct( $id, @@ -116,6 +116,7 @@ class SecurityController extends Controller if (Yii::$app->request->isAjax && $form->load(Yii::$app->request->post())) { Yii::$app->response->format = Response::FORMAT_JSON; + return ActiveForm::validate($form); } diff --git a/src/User/Controller/SettingsController.php b/src/User/Controller/SettingsController.php index 832bf37..1dae8ed 100644 --- a/src/User/Controller/SettingsController.php +++ b/src/User/Controller/SettingsController.php @@ -27,10 +27,10 @@ use Da\User\Query\UserQuery; use Da\User\Service\EmailChangeService; use Da\User\Traits\ContainerAwareTrait; use Da\User\Validator\AjaxRequestModelValidator; +use Yii; use yii\filters\AccessControl; use yii\filters\VerbFilter; use yii\web\Controller; -use Yii; use yii\web\ForbiddenHttpException; use yii\web\NotFoundHttpException; @@ -38,24 +38,24 @@ class SettingsController extends Controller { use ContainerAwareTrait; - protected $profileQuery; - protected $userQuery; - protected $socialNetworkAccountQuery; - /** * {@inheritdoc} */ public $defaultAction = 'profile'; + protected $profileQuery; + protected $userQuery; + protected $socialNetworkAccountQuery; + /** * SettingsController constructor. * - * @param string $id - * @param Module $module - * @param ProfileQuery $profileQuery - * @param UserQuery $userQuery + * @param string $id + * @param Module $module + * @param ProfileQuery $profileQuery + * @param UserQuery $userQuery * @param SocialNetworkAccountQuery $socialNetworkAccountQuery - * @param array $config + * @param array $config */ public function __construct( $id, @@ -145,7 +145,10 @@ class SettingsController extends Controller $this->trigger(UserEvent::EVENT_BEFORE_ACCOUNT_UPDATE, $event); if ($form->save()) { - Yii::$app->getSession()->setFlash('success', Yii::t('usuario', 'Your account details have been updated')); + Yii::$app->getSession()->setFlash( + 'success', + Yii::t('usuario', 'Your account details have been updated') + ); $this->trigger(UserEvent::EVENT_AFTER_ACCOUNT_UPDATE, $event); return $this->refresh(); diff --git a/src/User/Factory/AuthItemFactory.php b/src/User/Factory/AuthItemFactory.php index a8ad815..59809c4 100644 --- a/src/User/Factory/AuthItemFactory.php +++ b/src/User/Factory/AuthItemFactory.php @@ -11,9 +11,9 @@ namespace Da\User\Factory; +use Exception; use Yii; use yii\rbac\Item; -use Exception; class AuthItemFactory { diff --git a/src/User/Factory/EmailChangeStrategyFactory.php b/src/User/Factory/EmailChangeStrategyFactory.php index 202df99..3207bad 100644 --- a/src/User/Factory/EmailChangeStrategyFactory.php +++ b/src/User/Factory/EmailChangeStrategyFactory.php @@ -16,8 +16,8 @@ use Da\User\Form\SettingsForm; use Da\User\Strategy\DefaultEmailChangeStrategy; use Da\User\Strategy\InsecureEmailChangeStrategy; use Da\User\Strategy\SecureEmailChangeStrategy; -use Yii; use Exception; +use Yii; class EmailChangeStrategyFactory { diff --git a/src/User/Factory/MailFactory.php b/src/User/Factory/MailFactory.php index 6f16a37..d5361b9 100644 --- a/src/User/Factory/MailFactory.php +++ b/src/User/Factory/MailFactory.php @@ -43,7 +43,7 @@ class MailFactory /** * @param string $email - * @param Token $token + * @param Token $token * * @return MailService */ @@ -63,7 +63,7 @@ class MailFactory } /** - * @param User $user + * @param User $user * @param Token|null $token * * @return MailService @@ -84,7 +84,7 @@ class MailFactory } /** - * @param User $user + * @param User $user * @param Token $token * * @return MailService @@ -114,7 +114,7 @@ class MailFactory * @param string $to * @param string $subject * @param string $view - * @param array $params + * @param array $params * * @return MailService */ diff --git a/src/User/Filter/AccessRuleFilter.php b/src/User/Filter/AccessRuleFilter.php index 4b41e17..72ee1cb 100644 --- a/src/User/Filter/AccessRuleFilter.php +++ b/src/User/Filter/AccessRuleFilter.php @@ -35,7 +35,6 @@ class AccessRuleFilter extends AccessRule return true; } } elseif ($role === 'admin') { - /** @var User $identity */ $identity = $user->getIdentity(); diff --git a/src/User/Form/LoginForm.php b/src/User/Form/LoginForm.php index aa700c2..639cae2 100644 --- a/src/User/Form/LoginForm.php +++ b/src/User/Form/LoginForm.php @@ -48,9 +48,9 @@ class LoginForm extends Model protected $securityHelper; /** - * @param UserQuery $query + * @param UserQuery $query * @param SecurityHelper $securityHelper - * @param array $config + * @param array $config */ public function __construct(UserQuery $query, SecurityHelper $securityHelper, $config = []) { @@ -119,9 +119,9 @@ class LoginForm extends Model $duration = $this->rememberMe ? $this->module->rememberLoginLifespan : 0; return Yii::$app->getUser()->login($this->user, $duration); - } else { - return false; } + + return false; } /** diff --git a/src/User/Form/RecoveryForm.php b/src/User/Form/RecoveryForm.php index 6264d38..50bb647 100644 --- a/src/User/Form/RecoveryForm.php +++ b/src/User/Form/RecoveryForm.php @@ -38,7 +38,7 @@ class RecoveryForm extends Model /** * @param UserQuery $query - * @param array $config + * @param array $config */ public function __construct(UserQuery $query, array $config = []) { diff --git a/src/User/Form/ResendForm.php b/src/User/Form/ResendForm.php index 601b080..3406bc2 100644 --- a/src/User/Form/ResendForm.php +++ b/src/User/Form/ResendForm.php @@ -28,7 +28,7 @@ class ResendForm extends Model /** * @param UserQuery $userQuery - * @param array $config + * @param array $config */ public function __construct(UserQuery $userQuery, $config = []) { diff --git a/src/User/Helper/ClassMapHelper.php b/src/User/Helper/ClassMapHelper.php index 681f8ad..a3d86bb 100644 --- a/src/User/Helper/ClassMapHelper.php +++ b/src/User/Helper/ClassMapHelper.php @@ -54,6 +54,6 @@ class ClassMapHelper if (array_key_exists($key, $this->map)) { return $this->map[$key]; } - throw new \Exception('Unknown model map key: '.$key); + throw new \Exception('Unknown model map key: ' . $key); } } diff --git a/src/User/Helper/GravatarHelper.php b/src/User/Helper/GravatarHelper.php index af7830c..6ecaf5d 100644 --- a/src/User/Helper/GravatarHelper.php +++ b/src/User/Helper/GravatarHelper.php @@ -20,6 +20,6 @@ class GravatarHelper public function getUrl($id, $size = 200) { - return '//gravatar.com/avatar/'.$id.'?s='.$size; + return '//gravatar.com/avatar/' . $id . '?s=' . $size; } } diff --git a/src/User/Helper/SecurityHelper.php b/src/User/Helper/SecurityHelper.php index babff35..a8a03e4 100644 --- a/src/User/Helper/SecurityHelper.php +++ b/src/User/Helper/SecurityHelper.php @@ -28,7 +28,7 @@ class SecurityHelper /** * Generates a secure hash from a password and a random salt. * - * @param string $password + * @param string $password * @param null|int $cost * * @return string diff --git a/src/User/Helper/TimezoneHelper.php b/src/User/Helper/TimezoneHelper.php index 73d56c7..581b48f 100644 --- a/src/User/Helper/TimezoneHelper.php +++ b/src/User/Helper/TimezoneHelper.php @@ -11,9 +11,9 @@ namespace Da\User\Helper; +use DateTime; use DateTimeZone; use yii\helpers\ArrayHelper; -use DateTime; class TimezoneHelper { @@ -32,7 +32,7 @@ class TimezoneHelper $offset = $date->getOffset() / 60 / 60; $timeZones[] = [ 'timezone' => $timeZone, - 'name' => "{$timeZone} (UTC ".($offset > 0 ? '+' : '')."{$offset})", + 'name' => "{$timeZone} (UTC " . ($offset > 0 ? '+' : '') . "{$offset})", 'offset' => $offset, ]; } diff --git a/src/User/Migration/m000000_000001_create_user_table.php b/src/User/Migration/m000000_000001_create_user_table.php index 7158d11..6479a9d 100644 --- a/src/User/Migration/m000000_000001_create_user_table.php +++ b/src/User/Migration/m000000_000001_create_user_table.php @@ -17,20 +17,23 @@ class m000000_000001_create_user_table extends Migration { public function up() { - $this->createTable('{{%user}}', [ - 'id' => $this->primaryKey(), - 'username' => $this->string(255)->notNull(), - 'email' => $this->string(255)->notNull(), - 'password_hash' => $this->string(60)->notNull(), - 'auth_key' => $this->string(32)->notNull(), - 'unconfirmed_email' => $this->string(255), - 'registration_ip' => $this->string(45), - 'flags' => $this->integer()->notNull()->defaultValue('0'), - 'confirmed_at' => $this->integer(), - 'blocked_at' => $this->integer(), - 'updated_at' => $this->integer()->notNull(), - 'created_at' => $this->integer()->notNull(), - ]); + $this->createTable( + '{{%user}}', + [ + 'id' => $this->primaryKey(), + 'username' => $this->string(255)->notNull(), + 'email' => $this->string(255)->notNull(), + 'password_hash' => $this->string(60)->notNull(), + 'auth_key' => $this->string(32)->notNull(), + 'unconfirmed_email' => $this->string(255), + 'registration_ip' => $this->string(45), + 'flags' => $this->integer()->notNull()->defaultValue('0'), + 'confirmed_at' => $this->integer(), + 'blocked_at' => $this->integer(), + 'updated_at' => $this->integer()->notNull(), + 'created_at' => $this->integer()->notNull(), + ] + ); $this->createIndex('idx_user_username', '{{%user}}', 'username', true); $this->createIndex('idx_user_email', '{{%user}}', 'email', true); diff --git a/src/User/Model/AbstractAuthItem.php b/src/User/Model/AbstractAuthItem.php index d3c56a6..04c197d 100644 --- a/src/User/Model/AbstractAuthItem.php +++ b/src/User/Model/AbstractAuthItem.php @@ -14,9 +14,9 @@ namespace Da\User\Model; use Da\User\Traits\AuthManagerAwareTrait; use Da\User\Validator\RbacItemsValidator; use Da\User\Validator\RbacRuleValidator; +use Yii; use yii\base\Model; use yii\rbac\Item; -use Yii; abstract class AbstractAuthItem extends Model { diff --git a/src/User/Model/Assignment.php b/src/User/Model/Assignment.php index 43dd984..282499f 100644 --- a/src/User/Model/Assignment.php +++ b/src/User/Model/Assignment.php @@ -13,9 +13,9 @@ namespace Da\User\Model; use Da\User\Traits\AuthManagerAwareTrait; use Da\User\Validator\RbacItemsValidator; +use Yii; use yii\base\InvalidConfigException; use yii\base\Model; -use Yii; class Assignment extends Model { diff --git a/src/User/Model/Profile.php b/src/User/Model/Profile.php index 14ea347..6e1151b 100644 --- a/src/User/Model/Profile.php +++ b/src/User/Model/Profile.php @@ -16,11 +16,11 @@ use Da\User\Query\ProfileQuery; use Da\User\Traits\ContainerAwareTrait; use Da\User\Traits\ModuleAwareTrait; use Da\User\Validator\TimeZoneValidator; +use DateTime; +use DateTimeZone; +use Exception; use Yii; use yii\db\ActiveRecord; -use Exception; -use DateTimeZone; -use DateTime; /** * @property int $user_id diff --git a/src/User/Model/User.php b/src/User/Model/User.php index f51dc4c..daf00e4 100644 --- a/src/User/Model/User.php +++ b/src/User/Model/User.php @@ -259,8 +259,11 @@ class User extends ActiveRecord implements IdentityInterface { if ($this->connectedAccounts == null) { /** @var SocialNetworkAccount[] $accounts */ - $accounts = $this->hasMany($this->getClassMap() - ->get(SocialNetworkAccount::class), ['user_id' => 'id']) + $accounts = $this->hasMany( + $this->getClassMap() + ->get(SocialNetworkAccount::class), + ['user_id' => 'id'] + ) ->all(); foreach ($accounts as $account) { @@ -284,6 +287,6 @@ class User extends ActiveRecord implements IdentityInterface */ public static function findIdentityByAccessToken($token, $type = null) { - throw new NotSupportedException('Method "'.__CLASS__.'::'.__METHOD__.'" is not implemented.'); + throw new NotSupportedException('Method "' . __CLASS__ . '::' . __METHOD__ . '" is not implemented.'); } } diff --git a/src/User/Module.php b/src/User/Module.php index 9fc24e4..a0e4a24 100644 --- a/src/User/Module.php +++ b/src/User/Module.php @@ -12,7 +12,6 @@ namespace Da\User; use Da\User\Contracts\MailChangeStrategyInterface; -use Da\User\Service\MailService; use yii\base\Module as BaseModule; /** diff --git a/src/User/Search/UserSearch.php b/src/User/Search/UserSearch.php index 0754a8a..85c2b2d 100644 --- a/src/User/Search/UserSearch.php +++ b/src/User/Search/UserSearch.php @@ -43,7 +43,7 @@ class UserSearch extends Model * UserSearch constructor. * * @param UserQuery $query - * @param array $config + * @param array $config */ public function __construct(UserQuery $query, $config = []) { @@ -84,9 +84,11 @@ class UserSearch extends Model { $query = $this->query; - $dataProvider = new ActiveDataProvider([ - 'query' => $query, - ]); + $dataProvider = new ActiveDataProvider( + [ + 'query' => $query, + ] + ); if (!($this->load($params) && $this->validate())) { return $dataProvider; diff --git a/src/User/Service/AuthItemEditionService.php b/src/User/Service/AuthItemEditionService.php index 600e4bd..8e9fa9d 100644 --- a/src/User/Service/AuthItemEditionService.php +++ b/src/User/Service/AuthItemEditionService.php @@ -81,7 +81,6 @@ class AuthItemEditionService implements ServiceInterface $childrenNames = array_keys($children); if (is_array($this->model->children)) { - // remove those not linked anymore foreach (array_diff($childrenNames, $this->model->children) as $item) { if (!$this->getAuthManager()->removeChild($this->model->item, $children[$item])) { diff --git a/src/User/Service/EmailChangeService.php b/src/User/Service/EmailChangeService.php index b5c9c0c..0203144 100644 --- a/src/User/Service/EmailChangeService.php +++ b/src/User/Service/EmailChangeService.php @@ -41,45 +41,45 @@ class EmailChangeService implements ServiceInterface Yii::$app->session->setFlash('danger', Yii::t('usuario', 'Your confirmation token is invalid or expired')); return false; - } else { - $token->delete(); - if (empty($this->model->unconfirmed_email)) { - Yii::$app->session->setFlash('danger', Yii::t('usuario', 'An error occurred processing your request')); - } elseif ($this->userQuery->whereEmail($this->model->unconfirmed_email)->exists() === false) { - if ($this->getModule()->emailChangeStrategy === MailChangeStrategyInterface::TYPE_SECURE) { - if ($token->type === Token::TYPE_CONFIRM_NEW_EMAIL) { - $this->model->flags |= User::NEW_EMAIL_CONFIRMED; - Yii::$app->session->setFlash( - 'success', - Yii::t( - 'usuario', - 'Awesome, almost there. '. - 'Now you need to click the confirmation link sent to your old email address.' - ) - ); - } elseif ($token->type === Token::TYPE_CONFIRM_OLD_EMAIL) { - $this->model->flags |= User::OLD_EMAIL_CONFIRMED; - Yii::$app->session->setFlash( - 'success', - Yii::t( - 'usuario', - 'Awesome, almost there. '. - 'Now you need to click the confirmation link sent to your new email address.' - ) - ); - } - } - if ($this->getModule()->emailChangeStrategy === MailChangeStrategyInterface::TYPE_DEFAULT - || ($this->model->flags & User::NEW_EMAIL_CONFIRMED & $this->model->flags & User::OLD_EMAIL_CONFIRMED) - ) { - $this->model->email = $this->model->unconfirmed_email; - $this->model->unconfirmed_email = null; - Yii::$app->session->setFlash('success', Yii::t('usuario', 'Your email address has been changed')); - } - - return $this->model->save(false); - } } + $token->delete(); + if (empty($this->model->unconfirmed_email)) { + Yii::$app->session->setFlash('danger', Yii::t('usuario', 'An error occurred processing your request')); + } elseif ($this->userQuery->whereEmail($this->model->unconfirmed_email)->exists() === false) { + if ($this->getModule()->emailChangeStrategy === MailChangeStrategyInterface::TYPE_SECURE) { + if ($token->type === Token::TYPE_CONFIRM_NEW_EMAIL) { + $this->model->flags |= User::NEW_EMAIL_CONFIRMED; + Yii::$app->session->setFlash( + 'success', + Yii::t( + 'usuario', + 'Awesome, almost there. ' . + 'Now you need to click the confirmation link sent to your old email address.' + ) + ); + } elseif ($token->type === Token::TYPE_CONFIRM_OLD_EMAIL) { + $this->model->flags |= User::OLD_EMAIL_CONFIRMED; + Yii::$app->session->setFlash( + 'success', + Yii::t( + 'usuario', + 'Awesome, almost there. ' . + 'Now you need to click the confirmation link sent to your new email address.' + ) + ); + } + } + if ($this->getModule()->emailChangeStrategy === MailChangeStrategyInterface::TYPE_DEFAULT + || ($this->model->flags & User::NEW_EMAIL_CONFIRMED & $this->model->flags & User::OLD_EMAIL_CONFIRMED) + ) { + $this->model->email = $this->model->unconfirmed_email; + $this->model->unconfirmed_email = null; + Yii::$app->session->setFlash('success', Yii::t('usuario', 'Your email address has been changed')); + } + + return $this->model->save(false); + } + return false; } diff --git a/src/User/Service/MailService.php b/src/User/Service/MailService.php index 1bff5d7..fc80cb8 100644 --- a/src/User/Service/MailService.php +++ b/src/User/Service/MailService.php @@ -20,11 +20,11 @@ class MailService implements ServiceInterface /** * MailService constructor. * - * @param string $from - * @param string $to - * @param string $subject - * @param string $view - * @param array $params + * @param string $from + * @param string $to + * @param string $subject + * @param string $view + * @param array $params * @param MailerInterface $mailer */ public function __construct($from, $to, $subject, $view, array $params, BaseMailer $mailer) diff --git a/src/User/Service/ResetPasswordService.php b/src/User/Service/ResetPasswordService.php index 3fed1f7..a54d70d 100644 --- a/src/User/Service/ResetPasswordService.php +++ b/src/User/Service/ResetPasswordService.php @@ -30,7 +30,7 @@ class ResetPasswordService implements ServiceInterface public function run() { - return $this->model && (bool) $this->model->updateAttributes( + return $this->model && (bool)$this->model->updateAttributes( [ 'password_hash' => $this->securityHelper->generatePasswordHash($this->password), ] diff --git a/src/User/Service/SocialNetworkAccountConnectService.php b/src/User/Service/SocialNetworkAccountConnectService.php index aa4c2fa..1d2747d 100644 --- a/src/User/Service/SocialNetworkAccountConnectService.php +++ b/src/User/Service/SocialNetworkAccountConnectService.php @@ -32,8 +32,8 @@ class SocialNetworkAccountConnectService implements ServiceInterface /** * SocialNetworkAccountUserLinkService constructor. * - * @param SecurityController $controller - * @param AuthClientInterface $client + * @param SecurityController $controller + * @param AuthClientInterface $client * @param SocialNetworkAccountQuery $socialNetworkAccountQuery */ public function __construct( @@ -62,12 +62,12 @@ class SocialNetworkAccountConnectService implements ServiceInterface $this->controller->trigger(SocialNetworkAuthEvent::EVENT_AFTER_CONNECT, $event); return true; - } else { - Yii::$app->session->setFlash( - 'danger', - Yii::t('usuario', 'This account has already been connected to another user') - ); } + Yii::$app->session->setFlash( + 'danger', + Yii::t('usuario', 'This account has already been connected to another user') + ); + return false; } diff --git a/src/User/Service/UserBlockService.php b/src/User/Service/UserBlockService.php index 9414add..51f7e18 100644 --- a/src/User/Service/UserBlockService.php +++ b/src/User/Service/UserBlockService.php @@ -40,11 +40,11 @@ class UserBlockService implements ServiceInterface { if ($this->model->getIsBlocked()) { $this->controller->trigger(UserEvent::EVENT_BEFORE_UNBLOCK, $this->event); - $result = (bool) $this->model->updateAttributes(['blocked_at' => null]); + $result = (bool)$this->model->updateAttributes(['blocked_at' => null]); $this->controller->trigger(UserEvent::EVENT_AFTER_UNBLOCK, $this->event); } else { $this->controller->trigger(UserEvent::EVENT_BEFORE_BLOCK, $this->event); - $result = (bool) $this->model->updateAttributes( + $result = (bool)$this->model->updateAttributes( ['blocked_at' => time(), 'auth_key' => $this->securityHelper->generateRandomString()] ); $this->controller->trigger(UserEvent::EVENT_AFTER_BLOCK, $this->event); diff --git a/src/User/Service/UserConfirmationService.php b/src/User/Service/UserConfirmationService.php index 8580040..f0715b8 100644 --- a/src/User/Service/UserConfirmationService.php +++ b/src/User/Service/UserConfirmationService.php @@ -27,7 +27,7 @@ class UserConfirmationService implements ServiceInterface public function run() { $this->model->trigger(UserEvent::EVENT_BEFORE_CONFIRMATION); - if ((bool) $this->model->updateAttributes(['confirmed_at' => time()])) { + if ((bool)$this->model->updateAttributes(['confirmed_at' => time()])) { $this->model->trigger(UserEvent::EVENT_AFTER_CONFIRMATION); return true; diff --git a/src/User/Service/UserCreateService.php b/src/User/Service/UserCreateService.php index 162023a..5a1f7cb 100644 --- a/src/User/Service/UserCreateService.php +++ b/src/User/Service/UserCreateService.php @@ -15,8 +15,8 @@ use Da\User\Contracts\ServiceInterface; use Da\User\Event\UserEvent; use Da\User\Helper\SecurityHelper; use Da\User\Model\User; -use yii\base\InvalidCallException; use Exception; +use yii\base\InvalidCallException; use yii\log\Logger; class UserCreateService implements ServiceInterface diff --git a/src/User/Strategy/SecureEmailChangeStrategy.php b/src/User/Strategy/SecureEmailChangeStrategy.php index b9abf54..1a52a35 100644 --- a/src/User/Strategy/SecureEmailChangeStrategy.php +++ b/src/User/Strategy/SecureEmailChangeStrategy.php @@ -47,7 +47,7 @@ class SecureEmailChangeStrategy implements MailChangeStrategyInterface 'info', Yii::t( 'usuario', - 'We have sent confirmation links to both old and new email addresses. '. + 'We have sent confirmation links to both old and new email addresses. ' . 'You must click both links to complete your request.' ) ); diff --git a/src/User/Traits/ContainerAwareTrait.php b/src/User/Traits/ContainerAwareTrait.php index 6648128..4a0d8e8 100644 --- a/src/User/Traits/ContainerAwareTrait.php +++ b/src/User/Traits/ContainerAwareTrait.php @@ -34,10 +34,10 @@ trait ContainerAwareTrait /** * Gets a class from the container. * - * @param string $class he class name or an alias name (e.g. `foo`) that was previously registered via [[set()]] - * or [[setSingleton()]] - * @param array $params constructor parameters - * @param array $config attributes + * @param string $class he class name or an alias name (e.g. `foo`) that was previously registered via [[set()]] + * or [[setSingleton()]] + * @param array $params constructor parameters + * @param array $config attributes * * @return object */ @@ -47,7 +47,7 @@ trait ContainerAwareTrait } /** - * @return \Da\User\Helper\AuthHelper + * @return \Da\User\Helper\AuthHelper|object */ public function getAuth() { @@ -55,7 +55,7 @@ trait ContainerAwareTrait } /** - * @return \Da\User\Helper\ClassMapHelper + * @return \Da\User\Helper\ClassMapHelper|object */ public function getClassMap() { diff --git a/src/User/Validator/AjaxRequestModelValidator.php b/src/User/Validator/AjaxRequestModelValidator.php index 2a8f32f..f2f1224 100644 --- a/src/User/Validator/AjaxRequestModelValidator.php +++ b/src/User/Validator/AjaxRequestModelValidator.php @@ -12,8 +12,8 @@ namespace Da\User\Validator; use Da\User\Contracts\ValidatorInterface; -use yii\base\Model; use Yii; +use yii\base\Model; use yii\bootstrap\ActiveForm; use yii\web\Response; diff --git a/src/User/Validator/RbacRuleValidator.php b/src/User/Validator/RbacRuleValidator.php index be4fbdd..96bd778 100644 --- a/src/User/Validator/RbacRuleValidator.php +++ b/src/User/Validator/RbacRuleValidator.php @@ -11,10 +11,10 @@ namespace Da\User\Validator; -use ReflectionClass; use Exception; -use yii\validators\Validator; +use ReflectionClass; use Yii; +use yii\validators\Validator; class RbacRuleValidator extends Validator { diff --git a/src/User/Widget/AssignmentsWidget.php b/src/User/Widget/AssignmentsWidget.php index 89dda49..646ae81 100644 --- a/src/User/Widget/AssignmentsWidget.php +++ b/src/User/Widget/AssignmentsWidget.php @@ -42,7 +42,7 @@ class AssignmentsWidget extends Widget { parent::init(); if ($this->userId === null) { - throw new InvalidConfigException(__CLASS__.'::$userId is required'); + throw new InvalidConfigException(__CLASS__ . '::$userId is required'); } } @@ -57,10 +57,13 @@ class AssignmentsWidget extends Widget $this->make(UpdateAuthAssignmentsService::class, [$model])->run(); } - return $this->render('/widgets/assignments/form', [ - 'model' => $model, - 'availableItems' => $this->getAvailableItems(), - ]); + return $this->render( + '/widgets/assignments/form', + [ + 'model' => $model, + 'availableItems' => $this->getAvailableItems(), + ] + ); } /** @@ -70,10 +73,14 @@ class AssignmentsWidget extends Widget */ protected function getAvailableItems() { - return ArrayHelper::map($this->getAuthManager()->getItems(), 'name', function ($item) { - return empty($item->description) - ? $item->name - : $item->name.' ('.$item->description.')'; - }); + return ArrayHelper::map( + $this->getAuthManager()->getItems(), + 'name', + function ($item) { + return empty($item->description) + ? $item->name + : $item->name . ' (' . $item->description . ')'; + } + ); } } diff --git a/src/User/Widget/ConnectWidget.php b/src/User/Widget/ConnectWidget.php index d36f093..3910c48 100644 --- a/src/User/Widget/ConnectWidget.php +++ b/src/User/Widget/ConnectWidget.php @@ -32,7 +32,7 @@ class ConnectWidget extends AuthChoice { AuthChoiceAsset::register(Yii::$app->view); if ($this->popupMode) { - Yii::$app->view->registerJs("\$('#".$this->getId()."').authchoice();"); + Yii::$app->view->registerJs("\$('#" . $this->getId() . "').authchoice();"); } $this->options['id'] = $this->getId(); echo Html::beginTag('div', $this->options); @@ -45,9 +45,9 @@ class ConnectWidget extends AuthChoice { if ($this->isConnected($provider)) { return Url::to(['/user/settings/disconnect', 'id' => $this->accounts[$provider->getId()]->id]); - } else { - return parent::createClientUrl($provider); } + + return parent::createClientUrl($provider); } /** diff --git a/src/User/resources/views/admin/_user.php b/src/User/resources/views/admin/_user.php index 4dbf4d9..dca3963 100644 --- a/src/User/resources/views/admin/_user.php +++ b/src/User/resources/views/admin/_user.php @@ -11,7 +11,7 @@ /** * @var yii\widgets\ActiveForm - * @var \Da\User\Model\User $user + * @var \Da\User\Model\User $user */ ?> diff --git a/src/User/resources/views/admin/create.php b/src/User/resources/views/admin/create.php index 60505b0..8f92cd0 100644 --- a/src/User/resources/views/admin/create.php +++ b/src/User/resources/views/admin/create.php @@ -78,7 +78,10 @@ $this->params['breadcrumbs'][] = $this->title;
. - . + .
params['breadcrumbs'][] = $this->title; 'attribute' => 'registration_ip', 'value' => function ($model) { return $model->registration_ip == null - ? ''.Yii::t('usuario', '(not set)').'' + ? '' . Yii::t('usuario', '(not set)') . '' : $model->registration_ip; }, 'format' => 'html', @@ -50,9 +50,9 @@ $this->params['breadcrumbs'][] = $this->title; 'value' => function ($model) { if (extension_loaded('intl')) { return Yii::t('usuario', '{0, date, MMMM dd, YYYY HH:mm}', [$model->created_at]); - } else { - return date('Y-m-d G:i:s', $model->created_at); } + + return date('Y-m-d G:i:s', $model->created_at); }, ], [ @@ -60,19 +60,19 @@ $this->params['breadcrumbs'][] = $this->title; 'value' => function ($model) { if ($model->isConfirmed) { return '
- ' .Yii::t('usuario', 'Confirmed').' + ' . Yii::t('usuario', 'Confirmed') . '
'; - } else { - return Html::a( - Yii::t('usuario', 'Confirm'), - ['confirm', 'id' => $model->id], - [ - 'class' => 'btn btn-xs btn-success btn-block', - 'data-method' => 'post', - 'data-confirm' => Yii::t('usuario', 'Are you sure you want to confirm this user?'), - ] - ); } + + return Html::a( + Yii::t('usuario', 'Confirm'), + ['confirm', 'id' => $model->id], + [ + 'class' => 'btn btn-xs btn-success btn-block', + 'data-method' => 'post', + 'data-confirm' => Yii::t('usuario', 'Are you sure you want to confirm this user?'), + ] + ); }, 'format' => 'raw', 'visible' => Yii::$app->getModule('user')->enableEmailConfirmation, @@ -90,17 +90,17 @@ $this->params['breadcrumbs'][] = $this->title; 'data-confirm' => Yii::t('usuario', 'Are you sure you want to unblock this user?'), ] ); - } else { - return Html::a( - Yii::t('usuario', 'Block'), - ['block', 'id' => $model->id], - [ - 'class' => 'btn btn-xs btn-danger btn-block', - 'data-method' => 'post', - 'data-confirm' => Yii::t('usuario', 'Are you sure you want to block this user?'), - ] - ); } + + return Html::a( + Yii::t('usuario', 'Block'), + ['block', 'id' => $model->id], + [ + 'class' => 'btn btn-xs btn-danger btn-block', + 'data-method' => 'post', + 'data-confirm' => Yii::t('usuario', 'Are you sure you want to block this user?'), + ] + ); }, 'format' => 'raw', ], diff --git a/src/User/resources/views/admin/update.php b/src/User/resources/views/admin/update.php index 72cef44..c08b809 100644 --- a/src/User/resources/views/admin/update.php +++ b/src/User/resources/views/admin/update.php @@ -11,8 +11,8 @@ use Da\User\Model\User; use yii\bootstrap\Nav; -use yii\web\View; use yii\helpers\Html; +use yii\web\View; /* * @var View $this diff --git a/src/User/resources/views/mail/layouts/html.php b/src/User/resources/views/mail/layouts/html.php index 92d359c..16f2f1c 100644 --- a/src/User/resources/views/mail/layouts/html.php +++ b/src/User/resources/views/mail/layouts/html.php @@ -15,20 +15,27 @@ */ ?> beginPage() ?> - - + + - - + + head() ?> - - + +
-
-
- +
+
+
beginBody() ?> @@ -42,21 +49,28 @@
- - - + + + + + diff --git a/src/User/resources/views/mail/recovery.php b/src/User/resources/views/mail/recovery.php index 1c131c6..b857ae1 100644 --- a/src/User/resources/views/mail/recovery.php +++ b/src/User/resources/views/mail/recovery.php @@ -20,7 +20,11 @@ use yii\helpers\Html; ,

- name) ?>. + name + ) ?>. .

diff --git a/src/User/resources/views/mail/text/welcome.php b/src/User/resources/views/mail/text/welcome.php index 535562e..c5bbba0 100644 --- a/src/User/resources/views/mail/text/welcome.php +++ b/src/User/resources/views/mail/text/welcome.php @@ -12,7 +12,7 @@ /** * @var \Da\User\Model\User * @var \Da\User\Model\Token $token - * @var \Da\User\Module $module + * @var \Da\User\Module $module */ ?> , diff --git a/src/User/resources/views/permission/_form.php b/src/User/resources/views/permission/_form.php index ee9642f..1e79706 100644 --- a/src/User/resources/views/permission/_form.php +++ b/src/User/resources/views/permission/_form.php @@ -21,10 +21,12 @@ use yii\widgets\ActiveForm; ?> - false, - 'enableAjaxValidation' => true, -]) ?> + false, + 'enableAjaxValidation' => true, + ] +) ?> field($model, 'name') ?> @@ -32,13 +34,16 @@ use yii\widgets\ActiveForm; field($model, 'rule') ?> -field($model, 'children')->widget(SelectizeDropDownList::class, [ - 'items' => $unassignedItems, - 'options' => [ - 'id' => 'children', - 'multiple' => true, - ], -]) ?> +field($model, 'children')->widget( + SelectizeDropDownList::class, + [ + 'items' => $unassignedItems, + 'options' => [ + 'id' => 'children', + 'multiple' => true, + ], + ] +) ?> 'btn btn-success btn-block']) ?> diff --git a/src/User/resources/views/permission/index.php b/src/User/resources/views/permission/index.php index 51e903d..8475b87 100644 --- a/src/User/resources/views/permission/index.php +++ b/src/User/resources/views/permission/index.php @@ -56,7 +56,7 @@ $this->params['breadcrumbs'][] = $this->title; 'class' => ActionColumn::className(), 'template' => '{update} {delete}', 'urlCreator' => function ($action, $model) { - return Url::to(['/user/permission/'.$action, 'name' => $model['name']]); + return Url::to(['/user/permission/' . $action, 'name' => $model['name']]); }, 'options' => [ 'style' => 'width: 5%', diff --git a/src/User/resources/views/profile/show.php b/src/User/resources/views/profile/show.php index 3a5507d..fa4c9e5 100644 --- a/src/User/resources/views/profile/show.php +++ b/src/User/resources/views/profile/show.php @@ -23,10 +23,13 @@ $this->params['breadcrumbs'][] = $this->title;

- getAvatarUrl(230), [ - 'class' => 'img-rounded img-responsive', - 'alt' => $profile->user->username, - ]) ?> + getAvatarUrl(230), + [ + 'class' => 'img-rounded img-responsive', + 'alt' => $profile->user->username, + ] + ) ?>

title ?>

@@ -46,8 +49,11 @@ $this->params['breadcrumbs'][] = $this->title; public_email)): ?>
  • - public_email), 'mailto:'. - Html::encode($profile->public_email)) + public_email), + 'mailto:' . + Html::encode($profile->public_email) + ) ?>
  • diff --git a/src/User/resources/views/role/_form.php b/src/User/resources/views/role/_form.php index 37192e1..4e2cc7f 100644 --- a/src/User/resources/views/role/_form.php +++ b/src/User/resources/views/role/_form.php @@ -35,13 +35,16 @@ $unassignedItems = Yii::$container->get(AuthHelper::class)->getUnassignedItems($ field($model, 'rule') ?> -field($model, 'children')->widget(SelectizeDropDownList::class, [ - 'items' => $unassignedItems, - 'options' => [ - 'id' => 'children', - 'multiple' => true, - ], -]) ?> +field($model, 'children')->widget( + SelectizeDropDownList::class, + [ + 'items' => $unassignedItems, + 'options' => [ + 'id' => 'children', + 'multiple' => true, + ], + ] +) ?> 'btn btn-success btn-block']) ?> diff --git a/src/User/resources/views/role/index.php b/src/User/resources/views/role/index.php index 5575a72..a74e774 100644 --- a/src/User/resources/views/role/index.php +++ b/src/User/resources/views/role/index.php @@ -57,7 +57,7 @@ $this->params['breadcrumbs'][] = $this->title; 'class' => ActionColumn::className(), 'template' => '{update} {delete}', 'urlCreator' => function ($action, $model) { - return Url::to(['/user/role/'.$action, 'name' => $model['name']]); + return Url::to(['/user/role/' . $action, 'name' => $model['name']]); }, 'options' => [ 'style' => 'width: 5%', diff --git a/src/User/resources/views/security/login.php b/src/User/resources/views/security/login.php index 8f18382..993b323 100644 --- a/src/User/resources/views/security/login.php +++ b/src/User/resources/views/security/login.php @@ -58,13 +58,13 @@ $this->params['breadcrumbs'][] = $this->title; ->passwordInput() ->label( Yii::t('usuario', 'Password') - .($module->allowPasswordRecovery ? - ' ('.Html::a( + . ($module->allowPasswordRecovery ? + ' (' . Html::a( Yii::t('usuario', 'Forgot password?'), ['/user/recovery/request'], ['tabindex' => '5'] ) - .')' : '') + . ')' : '') ) ?> field($model, 'rememberMe')->checkbox(['tabindex' => '4']) ?> @@ -79,7 +79,10 @@ $this->params['breadcrumbs'][] = $this->title;
    enableEmailConfirmation): ?>

    - +

    enableRegistration): ?> diff --git a/src/User/resources/views/settings/account.php b/src/User/resources/views/settings/account.php index 62331d0..90442a4 100644 --- a/src/User/resources/views/settings/account.php +++ b/src/User/resources/views/settings/account.php @@ -35,16 +35,18 @@ $this->params['breadcrumbs'][] = $this->title;

    title) ?>

    - $model->formName(), - 'options' => ['class' => 'form-horizontal'], - 'fieldConfig' => [ - 'template' => "{label}\n
    {input}
    \n
    {error}\n{hint}
    ", - 'labelOptions' => ['class' => 'col-lg-3 control-label'], - ], - 'enableAjaxValidation' => true, - 'enableClientValidation' => false, - ]); ?> + $model->formName(), + 'options' => ['class' => 'form-horizontal'], + 'fieldConfig' => [ + 'template' => "{label}\n
    {input}
    \n
    {error}\n{hint}
    ", + 'labelOptions' => ['class' => 'col-lg-3 control-label'], + ], + 'enableAjaxValidation' => true, + 'enableClientValidation' => false, + ] + ); ?> field($model, 'email') ?> @@ -52,13 +54,14 @@ $this->params['breadcrumbs'][] = $this->title; field($model, 'new_password')->passwordInput() ?> -
    +
    field($model, 'current_password')->passwordInput() ?>
    - 'btn btn-block btn-success']) ?>
    + 'btn btn-block btn-success']) ?> +
    @@ -77,11 +80,15 @@ $this->params['breadcrumbs'][] = $this->title; . .

    - 'btn btn-danger', - 'data-method' => 'post', - 'data-confirm' => Yii::t('usuario', 'Are you sure? There is no going back'), - ]) ?> + 'btn btn-danger', + 'data-method' => 'post', + 'data-confirm' => Yii::t('usuario', 'Are you sure? There is no going back'), + ] + ) ?>
    diff --git a/src/User/resources/views/settings/networks.php b/src/User/resources/views/settings/networks.php index caf5666..15164e6 100644 --- a/src/User/resources/views/settings/networks.php +++ b/src/User/resources/views/settings/networks.php @@ -37,7 +37,8 @@ $this->params['breadcrumbs'][] = $this->title;
    -

    .

    +

    + .

    params['breadcrumbs'][] = $this->title; getClients() as $client): ?>
    - 'auth-icon '.$client->getName()]) ?> + 'auth-icon ' . $client->getName()]) ?> getTitle() ?> diff --git a/src/User/resources/views/settings/profile.php b/src/User/resources/views/settings/profile.php index 2e036d3..62cf876 100644 --- a/src/User/resources/views/settings/profile.php +++ b/src/User/resources/views/settings/profile.php @@ -9,10 +9,10 @@ * the LICENSE file that was distributed with this source code. */ +use Da\User\Helper\TimezoneHelper; +use yii\helpers\ArrayHelper; use yii\helpers\Html; use yii\widgets\ActiveForm; -use yii\helpers\ArrayHelper; -use Da\User\Helper\TimezoneHelper; /* * @var yii\web\View $this diff --git a/src/User/resources/views/shared/_alert.php b/src/User/resources/views/shared/_alert.php index f13e20c..1db7378 100644 --- a/src/User/resources/views/shared/_alert.php +++ b/src/User/resources/views/shared/_alert.php @@ -21,10 +21,12 @@ use yii\bootstrap\Alert;
    session->getAllFlashes() as $type => $message): ?> - ['class' => 'alert-dismissible alert-'.$type], + ['class' => 'alert-dismissible alert-' . $type], 'body' => $message, - ]) ?> + ] + ) ?>
    diff --git a/src/User/resources/views/shared/message.php b/src/User/resources/views/shared/message.php index a35d8f6..3d606e9 100644 --- a/src/User/resources/views/shared/message.php +++ b/src/User/resources/views/shared/message.php @@ -12,7 +12,7 @@ /** * @var yii\web\View * @var \Da\User\Module $module - * @var string $title + * @var string $title */ $this->title = $title; diff --git a/src/User/resources/views/widgets/assignments/form.php b/src/User/resources/views/widgets/assignments/form.php index eb3391b..1f209cf 100644 --- a/src/User/resources/views/widgets/assignments/form.php +++ b/src/User/resources/views/widgets/assignments/form.php @@ -24,29 +24,36 @@ use yii\widgets\ActiveForm; updated): ?> - [ - 'class' => 'alert-success', - ], - 'body' => Yii::t('usuario', 'Assignments have been updated'), -]) ?> + [ + 'class' => 'alert-success', + ], + 'body' => Yii::t('usuario', 'Assignments have been updated'), + ] + ) ?> - false, - 'enableAjaxValidation' => false, -]) ?> + false, + 'enableAjaxValidation' => false, + ] +) ?> -field($model, 'items')->widget(SelectizeDropDownList::class, [ - 'items' => $availableItems, - 'options' => [ - 'id' => 'children', - 'multiple' => true, - ], -]) ?> +field($model, 'items')->widget( + SelectizeDropDownList::class, + [ + 'items' => $availableItems, + 'options' => [ + 'id' => 'children', + 'multiple' => true, + ], + ] +) ?> 'btn btn-success btn-block']) ?> diff --git a/src/User/resources/views/widgets/login/login.php b/src/User/resources/views/widgets/login/login.php index 7677ab1..fc3dde7 100644 --- a/src/User/resources/views/widgets/login/login.php +++ b/src/User/resources/views/widgets/login/login.php @@ -9,9 +9,9 @@ * the LICENSE file that was distributed with this source code. */ +use yii\helpers\Html; use yii\helpers\Url; use yii\widgets\ActiveForm; -use yii\helpers\Html; /* * @var yii\web\View $this @@ -23,15 +23,17 @@ use yii\helpers\Html; ?> user->isGuest): ?> - 'login-widget-form', - 'action' => Url::to(['/user/security/login']), - 'enableAjaxValidation' => true, - 'enableClientValidation' => false, - 'validateOnBlur' => false, - 'validateOnType' => false, - 'validateOnChange' => false, - ]) ?> + 'login-widget-form', + 'action' => Url::to(['/user/security/login']), + 'enableAjaxValidation' => true, + 'enableClientValidation' => false, + 'validateOnBlur' => false, + 'validateOnType' => false, + 'validateOnChange' => false, + ] + ) ?> field($model, 'login')->textInput(['placeholder' => 'Login']) ?> @@ -43,8 +45,12 @@ use yii\helpers\Html; - 'btn btn-danger btn-block', - 'data-method' => 'post', - ]) ?> + 'btn btn-danger btn-block', + 'data-method' => 'post', + ] + ) ?> diff --git a/tests/_app/config/db.php b/tests/_app/config/db.php index ef85450..0c6cbc6 100644 --- a/tests/_app/config/db.php +++ b/tests/_app/config/db.php @@ -2,7 +2,7 @@ $db = [ 'class' => 'yii\db\Connection', - 'dsn' => 'mysql:host=localhost;dbname=yii2-usuario-test', + 'dsn' => 'mysql:host=127.0.0.1;dbname=yii2-usuario-test', 'username' => 'root', 'password' => '', 'charset' => 'utf8',