From 3b0bcab14c63307759f5a178fc6b617cdd718c9a Mon Sep 17 00:00:00 2001 From: Dave Liddament Date: Fri, 28 Dec 2018 18:00:38 +0000 Subject: [PATCH 01/12] COMPOSER composer require --dev vimeo/psalm ^3.0.7 composer require --dev phpstan/phpstan --- composer.json | 4 +- composer.lock | 1501 +++++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 1408 insertions(+), 97 deletions(-) diff --git a/composer.json b/composer.json index e2bfb45..1dd8f85 100644 --- a/composer.json +++ b/composer.json @@ -27,7 +27,9 @@ "friendsofphp/php-cs-fixer": "~2.10.0", "sensiolabs/security-checker": "~4.0", "phpunit/phpunit": "^6.0", - "jakub-onderka/php-parallel-lint": "^0.9.2" + "jakub-onderka/php-parallel-lint": "^0.9.2", + "phpstan/phpstan": "^0.10.7", + "vimeo/psalm": "^3.0.7" }, "autoload": { "psr-4" : { diff --git a/composer.lock b/composer.lock index 4d3b5fa..0739f9b 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +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" ], - "content-hash": "c07d3ec2f105da273b9d40129cc38cea", + "content-hash": "8f34632ccad97e77e9a18c15c5b5879c", "packages": [ { "name": "doctrine/annotations", @@ -297,16 +297,16 @@ }, { "name": "psr/log", - "version": "1.0.2", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" + "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", - "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", + "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", "shasum": "" }, "require": { @@ -340,7 +340,7 @@ "psr", "psr-3" ], - "time": "2016-10-10T12:19:37+00:00" + "time": "2018-11-20T15:27:04+00:00" }, { "name": "symfony/config", @@ -1752,6 +1752,50 @@ ], "time": "2016-08-30T16:08:34+00:00" }, + { + "name": "composer/xdebug-handler", + "version": "1.3.1", + "source": { + "type": "git", + "url": "https://github.com/composer/xdebug-handler.git", + "reference": "dc523135366eb68f22268d069ea7749486458562" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/dc523135366eb68f22268d069ea7749486458562", + "reference": "dc523135366eb68f22268d069ea7749486458562", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0", + "psr/log": "^1.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Composer\\XdebugHandler\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "John Stevenson", + "email": "john-stevenson@blueyonder.co.uk" + } + ], + "description": "Restarts a process without xdebug.", + "keywords": [ + "Xdebug", + "performance" + ], + "time": "2018-11-29T10:59:02+00:00" + }, { "name": "doctrine/instantiator", "version": "1.0.5", @@ -1806,6 +1850,94 @@ ], "time": "2015-06-14T21:17:01+00:00" }, + { + "name": "felixfbecker/advanced-json-rpc", + "version": "v3.0.3", + "source": { + "type": "git", + "url": "https://github.com/felixfbecker/php-advanced-json-rpc.git", + "reference": "241c470695366e7b83672be04ea0e64d8085a551" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/felixfbecker/php-advanced-json-rpc/zipball/241c470695366e7b83672be04ea0e64d8085a551", + "reference": "241c470695366e7b83672be04ea0e64d8085a551", + "shasum": "" + }, + "require": { + "netresearch/jsonmapper": "^1.0", + "php": ">=7.0", + "phpdocumentor/reflection-docblock": "^4.0.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "AdvancedJsonRpc\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "ISC" + ], + "authors": [ + { + "name": "Felix Becker", + "email": "felix.b@outlook.com" + } + ], + "description": "A more advanced JSONRPC implementation", + "time": "2018-09-10T08:58:41+00:00" + }, + { + "name": "felixfbecker/language-server-protocol", + "version": "v1.2.0", + "source": { + "type": "git", + "url": "https://github.com/felixfbecker/php-language-server-protocol.git", + "reference": "1bdd1bcc95428edf85ec04c7b558d0886c07280f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/1bdd1bcc95428edf85ec04c7b558d0886c07280f", + "reference": "1bdd1bcc95428edf85ec04c7b558d0886c07280f", + "shasum": "" + }, + "require": { + "php": "^7.0" + }, + "require-dev": { + "phpstan/phpstan": "*", + "phpunit/phpunit": "^6.3", + "squizlabs/php_codesniffer": "^3.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "LanguageServerProtocol\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "ISC" + ], + "authors": [ + { + "name": "Felix Becker", + "email": "felix.b@outlook.com" + } + ], + "description": "PHP classes for the Language Server Protocol", + "keywords": [ + "language", + "microsoft", + "php", + "server" + ], + "time": "2018-09-25T11:42:25+00:00" + }, { "name": "friendsofphp/php-cs-fixer", "version": "v2.10.2", @@ -1992,6 +2124,113 @@ "homepage": "https://github.com/JakubOnderka/PHP-Parallel-Lint", "time": "2015-12-15T10:42:16+00:00" }, + { + "name": "jean85/pretty-package-versions", + "version": "1.2", + "source": { + "type": "git", + "url": "https://github.com/Jean85/pretty-package-versions.git", + "reference": "75c7effcf3f77501d0e0caa75111aff4daa0dd48" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/75c7effcf3f77501d0e0caa75111aff4daa0dd48", + "reference": "75c7effcf3f77501d0e0caa75111aff4daa0dd48", + "shasum": "" + }, + "require": { + "ocramius/package-versions": "^1.2.0", + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Jean85\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Alessandro Lai", + "email": "alessandro.lai85@gmail.com" + } + ], + "description": "A wrapper for ocramius/package-versions to get pretty versions strings", + "keywords": [ + "composer", + "package", + "release", + "versions" + ], + "time": "2018-06-13T13:22:40+00:00" + }, + { + "name": "muglug/package-versions-56", + "version": "1.2.4", + "source": { + "type": "git", + "url": "https://github.com/muglug/PackageVersions.git", + "reference": "a67bed26deaaf9269a348e53063bc8d4dcc60ffd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/muglug/PackageVersions/zipball/a67bed26deaaf9269a348e53063bc8d4dcc60ffd", + "reference": "a67bed26deaaf9269a348e53063bc8d4dcc60ffd", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0", + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "composer/composer": "^1.3", + "ext-zip": "*", + "phpunit/phpunit": "^5.7.5" + }, + "type": "composer-plugin", + "extra": { + "class": "Muglug\\PackageVersions\\Installer", + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Muglug\\PackageVersions\\": "src/PackageVersions" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + }, + { + "name": "Abdul Malik Ikhsan", + "email": "samsonasik@gmail.com" + }, + { + "name": "Matt Brown", + "email": "github@muglug.com" + } + ], + "description": "A backport of ocramius/package-versions that supports php ^5.6. Composer plugin that provides efficient querying for installed package versions (no runtime IO)", + "time": "2018-03-26T03:22:13+00:00" + }, { "name": "myclabs/deep-copy", "version": "1.7.0", @@ -2038,78 +2277,93 @@ "time": "2017-10-19T19:58:43+00:00" }, { - "name": "phar-io/manifest", - "version": "1.0.1", + "name": "netresearch/jsonmapper", + "version": "v1.4.0", "source": { "type": "git", - "url": "https://github.com/phar-io/manifest.git", - "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0" + "url": "https://github.com/cweiske/jsonmapper.git", + "reference": "3868fe1128ce1169228acdb623359dca74db5ef3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/2df402786ab5368a0169091f61a7c1e0eb6852d0", - "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0", + "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/3868fe1128ce1169228acdb623359dca74db5ef3", + "reference": "3868fe1128ce1169228acdb623359dca74db5ef3", "shasum": "" }, "require": { - "ext-dom": "*", - "ext-phar": "*", - "phar-io/version": "^1.0.1", - "php": "^5.6 || ^7.0" + "php": ">=5.6" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } + "require-dev": { + "phpunit/phpunit": "~4.8.35 || ~5.7 || ~6.4", + "squizlabs/php_codesniffer": "~1.5" }, + "type": "library", "autoload": { - "classmap": [ - "src/" - ] + "psr-0": { + "JsonMapper": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "OSL-3.0" ], "authors": [ { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", + "name": "Christian Weiske", + "email": "cweiske@cweiske.de", + "homepage": "http://github.com/cweiske/jsonmapper/", "role": "Developer" } ], - "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "time": "2017-03-05T18:14:27+00:00" + "description": "Map nested JSON structures onto PHP classes", + "time": "2017-11-28T21:30:01+00:00" }, { - "name": "phar-io/version", - "version": "1.0.1", + "name": "nette/bootstrap", + "version": "v2.4.6", "source": { "type": "git", - "url": "https://github.com/phar-io/version.git", - "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df" + "url": "https://github.com/nette/bootstrap.git", + "reference": "268816e3f1bb7426c3a4ceec2bd38a036b532543" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/a70c0ced4be299a63d32fa96d9281d03e94041df", - "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df", + "url": "https://api.github.com/repos/nette/bootstrap/zipball/268816e3f1bb7426c3a4ceec2bd38a036b532543", + "reference": "268816e3f1bb7426c3a4ceec2bd38a036b532543", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "nette/di": "~2.4.7", + "nette/utils": "~2.4", + "php": ">=5.6.0" + }, + "conflict": { + "nette/nette": "<2.2" + }, + "require-dev": { + "latte/latte": "~2.2", + "nette/application": "~2.3", + "nette/caching": "~2.3", + "nette/database": "~2.3", + "nette/forms": "~2.3", + "nette/http": "~2.4.0", + "nette/mail": "~2.3", + "nette/robot-loader": "^2.4.2 || ^3.0", + "nette/safe-stream": "~2.2", + "nette/security": "~2.3", + "nette/tester": "~2.0", + "tracy/tracy": "^2.4.1" + }, + "suggest": { + "nette/robot-loader": "to use Configurator::createRobotLoader()", + "tracy/tracy": "to use Configurator::enableTracy()" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.4-dev" + } + }, "autoload": { "classmap": [ "src/" @@ -2117,50 +2371,64 @@ }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "BSD-3-Clause", + "GPL-2.0", + "GPL-3.0" ], "authors": [ { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" + "name": "David Grudl", + "homepage": "https://davidgrudl.com" }, { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" + "name": "Nette Community", + "homepage": "https://nette.org/contributors" } ], - "description": "Library for handling version information and constraints", - "time": "2017-03-05T17:38:23+00:00" + "description": "🅱 Nette Bootstrap: the simple way to configure and bootstrap your Nette application.", + "homepage": "https://nette.org", + "keywords": [ + "bootstrapping", + "configurator", + "nette" + ], + "time": "2018-05-17T12:52:20+00:00" }, { - "name": "php-cs-fixer/diff", - "version": "v1.2.1", + "name": "nette/di", + "version": "v2.4.14", "source": { "type": "git", - "url": "https://github.com/PHP-CS-Fixer/diff.git", - "reference": "b95b8c02c58670b15612cfc60873f3f7f5290484" + "url": "https://github.com/nette/di.git", + "reference": "923da3e2c0aa53162ef455472c0ac7787b096c5a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/diff/zipball/b95b8c02c58670b15612cfc60873f3f7f5290484", - "reference": "b95b8c02c58670b15612cfc60873f3f7f5290484", + "url": "https://api.github.com/repos/nette/di/zipball/923da3e2c0aa53162ef455472c0ac7787b096c5a", + "reference": "923da3e2c0aa53162ef455472c0ac7787b096c5a", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "ext-tokenizer": "*", + "nette/neon": "^2.3.3 || ~3.0.0", + "nette/php-generator": "^2.6.1 || ~3.0.0", + "nette/utils": "^2.4.3 || ~3.0.0", + "php": ">=5.6.0" + }, + "conflict": { + "nette/bootstrap": "<2.4", + "nette/nette": "<2.2" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.4.3", - "symfony/process": "^3.3" + "nette/tester": "^2.0", + "tracy/tracy": "^2.3" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.4-dev" + } + }, "autoload": { "classmap": [ "src/" @@ -2168,34 +2436,673 @@ }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "BSD-3-Clause", + "GPL-2.0", + "GPL-3.0" ], "authors": [ { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "David Grudl", + "homepage": "https://davidgrudl.com" }, { - "name": "SpacePossum" + "name": "Nette Community", + "homepage": "https://nette.org/contributors" } ], - "description": "sebastian/diff v2 backport support for PHP5.6", - "homepage": "https://github.com/PHP-CS-Fixer", + "description": "💎 Nette Dependency Injection Container: Flexible, compiled and full-featured DIC with perfectly usable autowiring and support for all new PHP 7.1 features.", + "homepage": "https://nette.org", "keywords": [ - "diff" - ], - "time": "2017-10-21T10:28:17+00:00" + "compiled", + "di", + "dic", + "factory", + "ioc", + "nette", + "static" + ], + "time": "2018-09-17T15:47:40+00:00" }, { - "name": "phpdocumentor/reflection-common", - "version": "1.0.1", + "name": "nette/finder", + "version": "v2.4.2", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "url": "https://github.com/nette/finder.git", + "reference": "ee951a656cb8ac622e5dd33474a01fd2470505a0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/finder/zipball/ee951a656cb8ac622e5dd33474a01fd2470505a0", + "reference": "ee951a656cb8ac622e5dd33474a01fd2470505a0", + "shasum": "" + }, + "require": { + "nette/utils": "~2.4", + "php": ">=5.6.0" + }, + "conflict": { + "nette/nette": "<2.2" + }, + "require-dev": { + "nette/tester": "~2.0", + "tracy/tracy": "^2.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.4-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0", + "GPL-3.0" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🔍 Nette Finder: find files and directories with an intuitive API.", + "homepage": "https://nette.org", + "keywords": [ + "filesystem", + "glob", + "iterator", + "nette" + ], + "time": "2018-06-28T11:49:23+00:00" + }, + { + "name": "nette/neon", + "version": "v2.4.3", + "source": { + "type": "git", + "url": "https://github.com/nette/neon.git", + "reference": "5e72b1dd3e2d34f0863c5561139a19df6a1ef398" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/neon/zipball/5e72b1dd3e2d34f0863c5561139a19df6a1ef398", + "reference": "5e72b1dd3e2d34f0863c5561139a19df6a1ef398", + "shasum": "" + }, + "require": { + "ext-iconv": "*", + "ext-json": "*", + "php": ">=5.6.0" + }, + "require-dev": { + "nette/tester": "~2.0", + "tracy/tracy": "^2.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.4-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0", + "GPL-3.0" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🍸 Nette NEON: encodes and decodes NEON file format.", + "homepage": "http://ne-on.org", + "keywords": [ + "export", + "import", + "neon", + "nette", + "yaml" + ], + "time": "2018-03-21T12:12:21+00:00" + }, + { + "name": "nette/php-generator", + "version": "v3.0.5", + "source": { + "type": "git", + "url": "https://github.com/nette/php-generator.git", + "reference": "ea90209c2e8a7cd087b2742ca553c047a8df5eff" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/php-generator/zipball/ea90209c2e8a7cd087b2742ca553c047a8df5eff", + "reference": "ea90209c2e8a7cd087b2742ca553c047a8df5eff", + "shasum": "" + }, + "require": { + "nette/utils": "^2.4.2 || ~3.0.0", + "php": ">=7.0" + }, + "conflict": { + "nette/nette": "<2.2" + }, + "require-dev": { + "nette/tester": "^2.0", + "tracy/tracy": "^2.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0", + "GPL-3.0" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🐘 Nette PHP Generator: generates neat PHP code for you. Supports new PHP 7.2 features.", + "homepage": "https://nette.org", + "keywords": [ + "code", + "nette", + "php", + "scaffolding" + ], + "time": "2018-08-09T14:32:27+00:00" + }, + { + "name": "nette/robot-loader", + "version": "v3.1.0", + "source": { + "type": "git", + "url": "https://github.com/nette/robot-loader.git", + "reference": "fc76c70e740b10f091e502b2e393d0be912f38d4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/robot-loader/zipball/fc76c70e740b10f091e502b2e393d0be912f38d4", + "reference": "fc76c70e740b10f091e502b2e393d0be912f38d4", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "nette/finder": "^2.3 || ^3.0", + "nette/utils": "^2.4 || ^3.0", + "php": ">=5.6.0" + }, + "conflict": { + "nette/nette": "<2.2" + }, + "require-dev": { + "nette/tester": "^2.0", + "tracy/tracy": "^2.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0", + "GPL-3.0" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🍀 Nette RobotLoader: high performance and comfortable autoloader that will search and autoload classes within your application.", + "homepage": "https://nette.org", + "keywords": [ + "autoload", + "class", + "interface", + "nette", + "trait" + ], + "time": "2018-08-13T14:19:06+00:00" + }, + { + "name": "nette/utils", + "version": "v2.5.3", + "source": { + "type": "git", + "url": "https://github.com/nette/utils.git", + "reference": "17b9f76f2abd0c943adfb556e56f2165460b15ce" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/utils/zipball/17b9f76f2abd0c943adfb556e56f2165460b15ce", + "reference": "17b9f76f2abd0c943adfb556e56f2165460b15ce", + "shasum": "" + }, + "require": { + "php": ">=5.6.0" + }, + "conflict": { + "nette/nette": "<2.2" + }, + "require-dev": { + "nette/tester": "~2.0", + "tracy/tracy": "^2.3" + }, + "suggest": { + "ext-gd": "to use Image", + "ext-iconv": "to use Strings::webalize() and toAscii()", + "ext-intl": "for script transliteration in Strings::webalize() and toAscii()", + "ext-json": "to use Nette\\Utils\\Json", + "ext-mbstring": "to use Strings::lower() etc...", + "ext-xml": "to use Strings::length() etc. when mbstring is not available" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.5-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ], + "files": [ + "src/loader.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0", + "GPL-3.0" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.", + "homepage": "https://nette.org", + "keywords": [ + "array", + "core", + "datetime", + "images", + "json", + "nette", + "paginator", + "password", + "slugify", + "string", + "unicode", + "utf-8", + "utility", + "validation" + ], + "time": "2018-09-18T10:22:16+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v4.1.1", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "8aae5b59b83bb4d0dbf07b0a835f2680a658f610" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/8aae5b59b83bb4d0dbf07b0a835f2680a658f610", + "reference": "8aae5b59b83bb4d0dbf07b0a835f2680a658f610", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.5 || ^7.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.1-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "time": "2018-12-26T11:32:39+00:00" + }, + { + "name": "ocramius/package-versions", + "version": "1.3.0", + "source": { + "type": "git", + "url": "https://github.com/Ocramius/PackageVersions.git", + "reference": "4489d5002c49d55576fa0ba786f42dbb009be46f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Ocramius/PackageVersions/zipball/4489d5002c49d55576fa0ba786f42dbb009be46f", + "reference": "4489d5002c49d55576fa0ba786f42dbb009be46f", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0.0", + "php": "^7.1.0" + }, + "require-dev": { + "composer/composer": "^1.6.3", + "ext-zip": "*", + "infection/infection": "^0.7.1", + "phpunit/phpunit": "^7.0.0" + }, + "type": "composer-plugin", + "extra": { + "class": "PackageVersions\\Installer", + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "PackageVersions\\": "src/PackageVersions" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", + "time": "2018-02-05T13:05:30+00:00" + }, + { + "name": "openlss/lib-array2xml", + "version": "0.5.1", + "source": { + "type": "git", + "url": "https://github.com/nullivex/lib-array2xml.git", + "reference": "c8b5998a342d7861f2e921403f44e0a2f3ef2be0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nullivex/lib-array2xml/zipball/c8b5998a342d7861f2e921403f44e0a2f3ef2be0", + "reference": "c8b5998a342d7861f2e921403f44e0a2f3ef2be0", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "type": "library", + "autoload": { + "psr-0": { + "LSS": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Bryan Tong", + "email": "contact@nullivex.com", + "homepage": "http://bryantong.com" + }, + { + "name": "Tony Butler", + "email": "spudz76@gmail.com", + "homepage": "http://openlss.org" + } + ], + "description": "Array2XML conversion library credit to lalit.org", + "homepage": "http://openlss.org", + "keywords": [ + "array", + "array conversion", + "xml", + "xml conversion" + ], + "time": "2016-11-10T19:10:18+00:00" + }, + { + "name": "phar-io/manifest", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/2df402786ab5368a0169091f61a7c1e0eb6852d0", + "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-phar": "*", + "phar-io/version": "^1.0.1", + "php": "^5.6 || ^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "time": "2017-03-05T18:14:27+00:00" + }, + { + "name": "phar-io/version", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/a70c0ced4be299a63d32fa96d9281d03e94041df", + "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Library for handling version information and constraints", + "time": "2017-03-05T17:38:23+00:00" + }, + { + "name": "php-cs-fixer/diff", + "version": "v1.3.0", + "source": { + "type": "git", + "url": "https://github.com/PHP-CS-Fixer/diff.git", + "reference": "78bb099e9c16361126c86ce82ec4405ebab8e756" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHP-CS-Fixer/diff/zipball/78bb099e9c16361126c86ce82ec4405ebab8e756", + "reference": "78bb099e9c16361126c86ce82ec4405ebab8e756", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.7.23 || ^6.4.3", + "symfony/process": "^3.3" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "SpacePossum" + } + ], + "description": "sebastian/diff v2 backport support for PHP5.6", + "homepage": "https://github.com/PHP-CS-Fixer", + "keywords": [ + "diff" + ], + "time": "2018-02-15T16:58:55+00:00" + }, + { + "name": "phpdocumentor/reflection-common", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6" }, "dist": { @@ -2246,16 +3153,16 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "4.2.0", + "version": "4.3.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "66465776cfc249844bde6d117abff1d22e06c2da" + "reference": "94fd0001232e47129dd3504189fa1c7225010d08" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/66465776cfc249844bde6d117abff1d22e06c2da", - "reference": "66465776cfc249844bde6d117abff1d22e06c2da", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/94fd0001232e47129dd3504189fa1c7225010d08", + "reference": "94fd0001232e47129dd3504189fa1c7225010d08", "shasum": "" }, "require": { @@ -2293,7 +3200,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": "2017-11-27T17:38:31+00:00" + "time": "2017-11-30T07:14:17+00:00" }, { "name": "phpdocumentor/type-resolver", @@ -2405,6 +3312,125 @@ ], "time": "2017-11-24T13:59:53+00:00" }, + { + "name": "phpstan/phpdoc-parser", + "version": "0.3", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpdoc-parser.git", + "reference": "ed3223362174b8067729930439e139794e9e514a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/ed3223362174b8067729930439e139794e9e514a", + "reference": "ed3223362174b8067729930439e139794e9e514a", + "shasum": "" + }, + "require": { + "php": "~7.1" + }, + "require-dev": { + "consistence/coding-standard": "^2.0.0", + "jakub-onderka/php-parallel-lint": "^0.9.2", + "phing/phing": "^2.16.0", + "phpstan/phpstan": "^0.10@dev", + "phpunit/phpunit": "^6.3", + "slevomat/coding-standard": "^3.3.0", + "symfony/process": "^3.4 || ^4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.3-dev" + } + }, + "autoload": { + "psr-4": { + "PHPStan\\PhpDocParser\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPDoc parser with support for nullable, intersection and generic types", + "time": "2018-06-20T17:48:01+00:00" + }, + { + "name": "phpstan/phpstan", + "version": "0.10.7", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpstan.git", + "reference": "b7a70043d9a933c9d1575df49a7b141dbc3c469f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/b7a70043d9a933c9d1575df49a7b141dbc3c469f", + "reference": "b7a70043d9a933c9d1575df49a7b141dbc3c469f", + "shasum": "" + }, + "require": { + "composer/xdebug-handler": "^1.3.0", + "jean85/pretty-package-versions": "^1.0.3", + "nette/bootstrap": "^2.4 || ^3.0", + "nette/di": "^2.4.7 || ^3.0", + "nette/robot-loader": "^3.0.1", + "nette/utils": "^2.4.5 || ^3.0", + "nikic/php-parser": "^4.0.2", + "php": "~7.1", + "phpstan/phpdoc-parser": "^0.3", + "symfony/console": "~3.2 || ~4.0", + "symfony/finder": "~3.2 || ~4.0" + }, + "conflict": { + "symfony/console": "3.4.16 || 4.1.5" + }, + "require-dev": { + "brianium/paratest": "^2.0", + "consistence/coding-standard": "^3.5", + "dealerdirect/phpcodesniffer-composer-installer": "^0.4.4", + "ext-gd": "*", + "ext-intl": "*", + "ext-mysqli": "*", + "ext-zip": "*", + "jakub-onderka/php-parallel-lint": "^1.0", + "localheinz/composer-normalize": "~0.9.0", + "phing/phing": "^2.16.0", + "phpstan/phpstan-deprecation-rules": "^0.10.2", + "phpstan/phpstan-php-parser": "^0.10", + "phpstan/phpstan-phpunit": "^0.10", + "phpstan/phpstan-strict-rules": "^0.10", + "phpunit/phpunit": "^7.0", + "slevomat/coding-standard": "^4.7.2", + "squizlabs/php_codesniffer": "^3.3.2" + }, + "bin": [ + "bin/phpstan" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.10-dev" + } + }, + "autoload": { + "psr-4": { + "PHPStan\\": [ + "src/", + "build/PHPStan" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPStan - PHP Static Analysis Tool", + "time": "2018-12-28T13:47:37+00:00" + }, { "name": "phpunit/php-code-coverage", "version": "5.3.0", @@ -2797,6 +3823,117 @@ ], "time": "2017-08-03T14:08:16+00:00" }, + { + "name": "sabre/event", + "version": "5.0.3", + "source": { + "type": "git", + "url": "https://github.com/sabre-io/event.git", + "reference": "f5cf802d240df1257866d8813282b98aee3bc548" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sabre-io/event/zipball/f5cf802d240df1257866d8813282b98aee3bc548", + "reference": "f5cf802d240df1257866d8813282b98aee3bc548", + "shasum": "" + }, + "require": { + "php": ">=7.0" + }, + "require-dev": { + "phpunit/phpunit": ">=6", + "sabre/cs": "~1.0.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Sabre\\Event\\": "lib/" + }, + "files": [ + "lib/coroutine.php", + "lib/Loop/functions.php", + "lib/Promise/functions.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Evert Pot", + "email": "me@evertpot.com", + "homepage": "http://evertpot.com/", + "role": "Developer" + } + ], + "description": "sabre/event is a library for lightweight event-based programming", + "homepage": "http://sabre.io/event/", + "keywords": [ + "EventEmitter", + "async", + "coroutine", + "eventloop", + "events", + "hooks", + "plugin", + "promise", + "reactor", + "signal" + ], + "time": "2018-03-05T13:55:47+00:00" + }, + { + "name": "sabre/uri", + "version": "2.1.1", + "source": { + "type": "git", + "url": "https://github.com/sabre-io/uri.git", + "reference": "a42126042c7dcb53e2978dadb6d22574d1359b4c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sabre-io/uri/zipball/a42126042c7dcb53e2978dadb6d22574d1359b4c", + "reference": "a42126042c7dcb53e2978dadb6d22574d1359b4c", + "shasum": "" + }, + "require": { + "php": ">=7" + }, + "require-dev": { + "phpunit/phpunit": "^6.0", + "sabre/cs": "~1.0.0" + }, + "type": "library", + "autoload": { + "files": [ + "lib/functions.php" + ], + "psr-4": { + "Sabre\\Uri\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Evert Pot", + "email": "me@evertpot.com", + "homepage": "http://evertpot.com/", + "role": "Developer" + } + ], + "description": "Functions for making sense out of URIs.", + "homepage": "http://sabre.io/uri/", + "keywords": [ + "rfc3986", + "uri", + "url" + ], + "time": "2017-02-20T20:02:35+00:00" + }, { "name": "sebastian/code-unit-reverse-lookup", "version": "1.0.1", @@ -3701,22 +4838,101 @@ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "time": "2017-04-07T12:08:54+00:00" }, + { + "name": "vimeo/psalm", + "version": "3.0.7", + "source": { + "type": "git", + "url": "https://github.com/vimeo/psalm.git", + "reference": "10a36def968a4e642b1afec74e3f0be602c79f58" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/10a36def968a4e642b1afec74e3f0be602c79f58", + "reference": "10a36def968a4e642b1afec74e3f0be602c79f58", + "shasum": "" + }, + "require": { + "composer/xdebug-handler": "^1.1", + "felixfbecker/advanced-json-rpc": "^3.0.3", + "felixfbecker/language-server-protocol": "^1.2", + "muglug/package-versions-56": "1.2.4", + "netresearch/jsonmapper": "^1.0", + "nikic/php-parser": "^4.0.2 || ^4.1", + "openlss/lib-array2xml": "^0.0.10||^0.5.1", + "php": "^7.0", + "php-cs-fixer/diff": "^1.2", + "sabre/event": "^5.0.1", + "sabre/uri": "^2.0", + "symfony/console": "^3.0||^4.0", + "webmozart/glob": "^4.1", + "webmozart/path-util": "^2.3" + }, + "provide": { + "psalm/psalm": "self.version" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.2", + "phpunit/phpunit": "^6.0 || ^7.0", + "squizlabs/php_codesniffer": "^3.0" + }, + "suggest": { + "ext-igbinary": "^2.0.5" + }, + "bin": [ + "psalm", + "psalter", + "psalm-language-server", + "psalm-plugin" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev", + "dev-2.x": "2.x-dev", + "dev-1.x": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psalm\\Plugin\\": "src/Psalm/Plugin", + "Psalm\\": "src/Psalm" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matthew Brown" + } + ], + "description": "A static analysis tool for finding errors in PHP applications", + "keywords": [ + "code", + "inspection", + "php" + ], + "time": "2018-12-21T18:53:22+00:00" + }, { "name": "webmozart/assert", - "version": "1.2.0", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/webmozart/assert.git", - "reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f" + "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/2db61e59ff05fe5126d152bd0655c9ea113e550f", - "reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f", + "url": "https://api.github.com/repos/webmozart/assert/zipball/83e253c8e0be5b0257b881e1827274667c5c17a9", + "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0" + "php": "^5.3.3 || ^7.0", + "symfony/polyfill-ctype": "^1.8" }, "require-dev": { "phpunit/phpunit": "^4.6", @@ -3749,7 +4965,100 @@ "check", "validate" ], - "time": "2016-11-23T20:04:58+00:00" + "time": "2018-12-25T11:19:39+00:00" + }, + { + "name": "webmozart/glob", + "version": "4.1.0", + "source": { + "type": "git", + "url": "https://github.com/webmozart/glob.git", + "reference": "3cbf63d4973cf9d780b93d2da8eec7e4a9e63bbe" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozart/glob/zipball/3cbf63d4973cf9d780b93d2da8eec7e4a9e63bbe", + "reference": "3cbf63d4973cf9d780b93d2da8eec7e4a9e63bbe", + "shasum": "" + }, + "require": { + "php": "^5.3.3|^7.0", + "webmozart/path-util": "^2.2" + }, + "require-dev": { + "phpunit/phpunit": "^4.6", + "sebastian/version": "^1.0.1", + "symfony/filesystem": "^2.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.1-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Glob\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "A PHP implementation of Ant's glob.", + "time": "2015-12-29T11:14:33+00:00" + }, + { + "name": "webmozart/path-util", + "version": "2.3.0", + "source": { + "type": "git", + "url": "https://github.com/webmozart/path-util.git", + "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozart/path-util/zipball/d939f7edc24c9a1bb9c0dee5cb05d8e859490725", + "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "webmozart/assert": "~1.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.6", + "sebastian/version": "^1.0.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.3-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\PathUtil\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "A robust cross-platform utility for normalizing, comparing and modifying file paths.", + "time": "2015-12-17T08:42:14+00:00" } ], "aliases": [], From 8a759fd0b19313410d718eeb95013fcab9e1e484 Mon Sep 17 00:00:00 2001 From: Dave Liddament Date: Sat, 29 Dec 2018 00:22:02 +0000 Subject: [PATCH 02/12] COMPOSER composer require --dev dave-liddament/sarb dev-master --- composer.json | 3 ++- composer.lock | 69 +++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 69 insertions(+), 3 deletions(-) diff --git a/composer.json b/composer.json index 1dd8f85..11e09b4 100644 --- a/composer.json +++ b/composer.json @@ -29,7 +29,8 @@ "phpunit/phpunit": "^6.0", "jakub-onderka/php-parallel-lint": "^0.9.2", "phpstan/phpstan": "^0.10.7", - "vimeo/psalm": "^3.0.7" + "vimeo/psalm": "^3.0.7", + "dave-liddament/sarb": "dev-master" }, "autoload": { "psr-4" : { diff --git a/composer.lock b/composer.lock index 0739f9b..77cd084 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +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" ], - "content-hash": "8f34632ccad97e77e9a18c15c5b5879c", + "content-hash": "d023deda071543b8f86d0f5c5b97ca2e", "packages": [ { "name": "doctrine/annotations", @@ -1796,6 +1796,69 @@ ], "time": "2018-11-29T10:59:02+00:00" }, + { + "name": "dave-liddament/sarb", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/DaveLiddament/sarb.git", + "reference": "d9b49ceafe343a30d4ef848627cb7bd23848443d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/DaveLiddament/sarb/zipball/d9b49ceafe343a30d4ef848627cb7bd23848443d", + "reference": "d9b49ceafe343a30d4ef848627cb7bd23848443d", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "symfony/config": "^3.4 || ^4.0", + "symfony/console": "^3.4 || ^4.0", + "symfony/dependency-injection": "^3.4 || ^4.0", + "symfony/process": "^3.4 || ^4.0", + "symfony/yaml": "^3.4 || ^4.0", + "webmozart/assert": "^1.3", + "webmozart/path-util": "^2.3" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.13.1", + "jakub-onderka/php-parallel-lint": "~0.9", + "jakub-onderka/php-var-dump-check": "~0.2", + "phpstan/phpstan": "^0.10.5", + "phpstan/phpstan-strict-rules": "^0.10.1", + "phpstan/phpstan-webmozart-assert": "^0.10.0", + "phpunit/phpunit": "^7.0", + "sensiolabs/security-checker": "^5.0", + "symfony/filesystem": "^3.4 || ^4.0", + "vimeo/psalm": "^3.0.7" + }, + "bin": [ + "sarb" + ], + "type": "project", + "autoload": { + "psr-4": { + "DaveLiddament\\StaticAnalysisResultsBaseliner\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dave Liddament", + "email": "daveliddament@gmail.com" + } + ], + "description": "Provides tools for baselining static analysis results and comparing against that baseline", + "keywords": [ + "baseline", + "php", + "static analysis" + ], + "time": "2018-12-29T00:12:37+00:00" + }, { "name": "doctrine/instantiator", "version": "1.0.5", @@ -5063,7 +5126,9 @@ ], "aliases": [], "minimum-stability": "stable", - "stability-flags": [], + "stability-flags": { + "dave-liddament/sarb": 20 + }, "prefer-stable": false, "prefer-lowest": false, "platform": [], From 81ef311dac7e95f3adab6ca109cbfa3953bd805e Mon Sep 17 00:00:00 2001 From: Dave Liddament Date: Sun, 30 Dec 2018 10:48:25 +0000 Subject: [PATCH 03/12] ADD folders to store psalm ouput --- reports/.gitignore | 4 ---- reports/psalm/.gitignore | 2 ++ 2 files changed, 2 insertions(+), 4 deletions(-) delete mode 100644 reports/.gitignore create mode 100644 reports/psalm/.gitignore diff --git a/reports/.gitignore b/reports/.gitignore deleted file mode 100644 index a1b1951..0000000 --- a/reports/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -* -!.gitignore -!phpcs -!phpunit diff --git a/reports/psalm/.gitignore b/reports/psalm/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/reports/psalm/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore From 7f0ad7884729680eb15fc4a848f1fe47d4b29eca Mon Sep 17 00:00:00 2001 From: Dave Liddament Date: Sun, 30 Dec 2018 10:52:46 +0000 Subject: [PATCH 04/12] ADD psalm static analysis to CI --- composer.json | 4 +++- psalm.xml | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 psalm.xml diff --git a/composer.json b/composer.json index 11e09b4..a7ff2ae 100644 --- a/composer.json +++ b/composer.json @@ -58,6 +58,8 @@ "test" : "phpunit --log-junit reports/phpunit/junit.xml", "validate-data" : "php runner.php phpsw:validate-data", "generate-website" : "php runner.php phpsw:generate-website", - "security" : "security-checker security:check" + "security" : "security-checker security:check", + "psalm" : "psalm --report=reports/psalm/psalm.json --output-format=compact || true" + } } diff --git a/psalm.xml b/psalm.xml new file mode 100644 index 0000000..4ec9a52 --- /dev/null +++ b/psalm.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + From 67a7db8bdd26dc4bf8c660fb203a275f733ca94d Mon Sep 17 00:00:00 2001 From: Dave Liddament Date: Sun, 30 Dec 2018 11:12:17 +0000 Subject: [PATCH 05/12] ADD SARB baseline --- reports/sarb/.gitkeep | 0 reports/sarb/psalm-sarb-baseline.json | 1 + 2 files changed, 1 insertion(+) create mode 100644 reports/sarb/.gitkeep create mode 100644 reports/sarb/psalm-sarb-baseline.json diff --git a/reports/sarb/.gitkeep b/reports/sarb/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/reports/sarb/psalm-sarb-baseline.json b/reports/sarb/psalm-sarb-baseline.json new file mode 100644 index 0000000..5b0ac35 --- /dev/null +++ b/reports/sarb/psalm-sarb-baseline.json @@ -0,0 +1 @@ +{"historyAnalyser":"git","historyMarker":"7f0ad7884729680eb15fc4a848f1fe47d4b29eca","resultsParser":"psalm-json","analysisResults":[{"lineNumber":54,"fileName":"app\/src\/Common\/StringUtils.php","type":"MixedArgument","message":"Argument 1 of str_replace cannot be mixed, expecting array|string","fullDetails":"{\"severity\":\"error\",\"line_from\":54,\"line_to\":54,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of str_replace cannot be mixed, expecting array|string\",\"file_name\":\"app\\\/src\\\/Common\\\/StringUtils.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Common\\\/StringUtils.php\",\"snippet\":\" $value = str_replace($languageSpecific[0], $languageSpecific[1], $value);\",\"selected_text\":\"$languageSpecific[0]\",\"from\":1813,\"to\":1833,\"snippet_from\":1780,\"snippet_to\":1865,\"column_from\":34,\"column_to\":54}"},{"lineNumber":54,"fileName":"app\/src\/Common\/StringUtils.php","type":"MixedArgument","message":"Argument 2 of str_replace cannot be mixed, expecting array|string","fullDetails":"{\"severity\":\"error\",\"line_from\":54,\"line_to\":54,\"type\":\"MixedArgument\",\"message\":\"Argument 2 of str_replace cannot be mixed, expecting array|string\",\"file_name\":\"app\\\/src\\\/Common\\\/StringUtils.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Common\\\/StringUtils.php\",\"snippet\":\" $value = str_replace($languageSpecific[0], $languageSpecific[1], $value);\",\"selected_text\":\"$languageSpecific[1]\",\"from\":1835,\"to\":1855,\"snippet_from\":1780,\"snippet_to\":1865,\"column_from\":56,\"column_to\":76}"},{"lineNumber":57,"fileName":"app\/src\/Common\/StringUtils.php","type":"MixedAssignment","message":"Cannot assign $val to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":57,\"line_to\":57,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign $val to a mixed type\",\"file_name\":\"app\\\/src\\\/Common\\\/StringUtils.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Common\\\/StringUtils.php\",\"snippet\":\" foreach (static::charsArray() as $key => $val) {\",\"selected_text\":\"$val\",\"from\":1926,\"to\":1930,\"snippet_from\":1877,\"snippet_to\":1933,\"column_from\":50,\"column_to\":54}"},{"lineNumber":58,"fileName":"app\/src\/Common\/StringUtils.php","type":"MixedArgument","message":"Argument 1 of str_replace cannot be mixed, expecting array|string","fullDetails":"{\"severity\":\"error\",\"line_from\":58,\"line_to\":58,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of str_replace cannot be mixed, expecting array|string\",\"file_name\":\"app\\\/src\\\/Common\\\/StringUtils.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Common\\\/StringUtils.php\",\"snippet\":\" $value = str_replace($val, $key, $value);\",\"selected_text\":\"$val\",\"from\":1967,\"to\":1971,\"snippet_from\":1934,\"snippet_to\":1987,\"column_from\":34,\"column_to\":38}"},{"lineNumber":58,"fileName":"app\/src\/Common\/StringUtils.php","type":"MixedArgument","message":"Argument 2 of str_replace cannot be mixed, expecting array|string","fullDetails":"{\"severity\":\"error\",\"line_from\":58,\"line_to\":58,\"type\":\"MixedArgument\",\"message\":\"Argument 2 of str_replace cannot be mixed, expecting array|string\",\"file_name\":\"app\\\/src\\\/Common\\\/StringUtils.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Common\\\/StringUtils.php\",\"snippet\":\" $value = str_replace($val, $key, $value);\",\"selected_text\":\"$key\",\"from\":1973,\"to\":1977,\"snippet_from\":1934,\"snippet_to\":1987,\"column_from\":40,\"column_to\":44}"},{"lineNumber":71,"fileName":"app\/src\/Common\/StringUtils.php","type":"MixedInferredReturnType","message":"Could not verify return type 'array' for Phpsw\\Website\\Common\\StringUtils::charsArray","fullDetails":"{\"severity\":\"error\",\"line_from\":71,\"line_to\":71,\"type\":\"MixedInferredReturnType\",\"message\":\"Could not verify return type 'array' for Phpsw\\\\Website\\\\Common\\\\StringUtils::charsArray\",\"file_name\":\"app\\\/src\\\/Common\\\/StringUtils.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Common\\\/StringUtils.php\",\"snippet\":\" \\\/**\\n * Returns the replacements for the ascii method.\\n *\\n * Note: Adapted from Stringy\\\\Stringy.\\n *\\n * @see https:\\\/\\\/github.com\\\/danielstjules\\\/Stringy\\\/blob\\\/3.1.0\\\/LICENSE.txt\\n *\\n * @return array\\n *\\\/\\n protected static function charsArray()\\n {\\n static $charsArray;\\n\\n if (isset($charsArray)) {\\n return $charsArray;\\n }\\n\\n return $charsArray = [\",\"selected_text\":\"array\",\"from\":2283,\"to\":2288,\"snippet_from\":2066,\"snippet_to\":2482,\"column_from\":16,\"column_to\":21}"},{"lineNumber":78,"fileName":"app\/src\/Common\/StringUtils.php","type":"MixedReturnStatement","message":"Could not infer a return type","fullDetails":"{\"severity\":\"error\",\"line_from\":78,\"line_to\":78,\"type\":\"MixedReturnStatement\",\"message\":\"Could not infer a return type\",\"file_name\":\"app\\\/src\\\/Common\\\/StringUtils.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Common\\\/StringUtils.php\",\"snippet\":\" return $charsArray;\",\"selected_text\":\"return $charsArray;\",\"from\":2421,\"to\":2440,\"snippet_from\":2409,\"snippet_to\":2440,\"column_from\":13,\"column_to\":32}"},{"lineNumber":207,"fileName":"app\/src\/Common\/StringUtils.php","type":"MixedInferredReturnType","message":"Could not verify return type 'array|null' for Phpsw\\Website\\Common\\StringUtils::languageSpecificCharsArray","fullDetails":"{\"severity\":\"error\",\"line_from\":207,\"line_to\":207,\"type\":\"MixedInferredReturnType\",\"message\":\"Could not verify return type 'array|null' for Phpsw\\\\Website\\\\Common\\\\StringUtils::languageSpecificCharsArray\",\"file_name\":\"app\\\/src\\\/Common\\\/StringUtils.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Common\\\/StringUtils.php\",\"snippet\":\" \\\/**\\n * Returns the language specific replacements for the ascii method.\\n *\\n * Note: Adapted from Stringy\\\\Stringy.\\n *\\n * @see https:\\\/\\\/github.com\\\/danielstjules\\\/Stringy\\\/blob\\\/3.1.0\\\/LICENSE.txt\\n *\\n * @param string $language\\n *\\n * @return array|null\\n *\\\/\\n protected static function languageSpecificCharsArray($language)\\n {\\n static $languageSpecific;\\n\\n if (!isset($languageSpecific)) {\\n $languageSpecific = [\",\"selected_text\":\"array|null\",\"from\":10663,\"to\":10673,\"snippet_from\":10388,\"snippet_to\":10865,\"column_from\":16,\"column_to\":26}"},{"lineNumber":226,"fileName":"app\/src\/Common\/StringUtils.php","type":"MixedReturnStatement","message":"Could not infer a return type","fullDetails":"{\"severity\":\"error\",\"line_from\":226,\"line_to\":226,\"type\":\"MixedReturnStatement\",\"message\":\"Could not infer a return type\",\"file_name\":\"app\\\/src\\\/Common\\\/StringUtils.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Common\\\/StringUtils.php\",\"snippet\":\" return $languageSpecific[$language] ?? null;\",\"selected_text\":\"return $languageSpecific[$language] ?? null;\",\"from\":11248,\"to\":11292,\"snippet_from\":11240,\"snippet_to\":11292,\"column_from\":9,\"column_to\":53}"},{"lineNumber":19,"fileName":"app\/src\/Container\/CommandCompilerClass.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Container\\CommandCompilerClass::process does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":19,\"line_to\":19,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Container\\\\CommandCompilerClass::process does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Container\\\/CommandCompilerClass.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Container\\\/CommandCompilerClass.php\",\"snippet\":\" public function process(ContainerBuilder $container)\",\"selected_text\":\"process\",\"from\":560,\"to\":567,\"snippet_from\":540,\"snippet_to\":596,\"column_from\":21,\"column_to\":28}"},{"lineNumber":24,"fileName":"app\/src\/Container\/CommandCompilerClass.php","type":"MixedAssignment","message":"Cannot assign $tags to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":24,\"line_to\":24,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign $tags to a mixed type\",\"file_name\":\"app\\\/src\\\/Container\\\/CommandCompilerClass.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Container\\\/CommandCompilerClass.php\",\"snippet\":\" foreach ($taggedServices as $id => $tags) {\",\"selected_text\":\"$tags\",\"from\":786,\"to\":791,\"snippet_from\":743,\"snippet_to\":794,\"column_from\":44,\"column_to\":49}"},{"lineNumber":25,"fileName":"app\/src\/Container\/CommandCompilerClass.php","type":"MixedArgument","message":"Argument 1 of Symfony\\Component\\DependencyInjection\\Reference::__construct cannot be mixed, expecting string","fullDetails":"{\"severity\":\"error\",\"line_from\":25,\"line_to\":25,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of Symfony\\\\Component\\\\DependencyInjection\\\\Reference::__construct cannot be mixed, expecting string\",\"file_name\":\"app\\\/src\\\/Container\\\/CommandCompilerClass.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Container\\\/CommandCompilerClass.php\",\"snippet\":\" $definition->addMethodCall('add', [new Reference($id)]);\",\"selected_text\":\"$id\",\"from\":856,\"to\":859,\"snippet_from\":795,\"snippet_to\":863,\"column_from\":62,\"column_to\":65}"},{"lineNumber":27,"fileName":"app\/src\/Container\/Container.php","type":"MixedArgument","message":"Argument 1 of Symfony\\Component\\DependencyInjection\\ContainerBuilder::__construct cannot be mixed, expecting Symfony\\Component\\DependencyInjection\\ParameterBag\\ParameterBagInterface|null","fullDetails":"{\"severity\":\"error\",\"line_from\":27,\"line_to\":27,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of Symfony\\\\Component\\\\DependencyInjection\\\\ContainerBuilder::__construct cannot be mixed, expecting Symfony\\\\Component\\\\DependencyInjection\\\\ParameterBag\\\\ParameterBagInterface|null\",\"file_name\":\"app\\\/src\\\/Container\\\/Container.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Container\\\/Container.php\",\"snippet\":\" $this->containerBuilder = new ContainerBuilder($this->getParameters());\",\"selected_text\":\"$this->getParameters()\",\"from\":624,\"to\":646,\"snippet_from\":569,\"snippet_to\":648,\"column_from\":56,\"column_to\":78}"},{"lineNumber":50,"fileName":"app\/src\/Container\/Container.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Container\\Container::getParameters does not have a return type, expecting Symfony\\Component\\DependencyInjection\\ParameterBag\\ParameterBag","fullDetails":"{\"severity\":\"error\",\"line_from\":50,\"line_to\":50,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Container\\\\Container::getParameters does not have a return type, expecting Symfony\\\\Component\\\\DependencyInjection\\\\ParameterBag\\\\ParameterBag\",\"file_name\":\"app\\\/src\\\/Container\\\/Container.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Container\\\/Container.php\",\"snippet\":\" private function getParameters()\",\"selected_text\":\"getParameters\",\"from\":1516,\"to\":1529,\"snippet_from\":1495,\"snippet_to\":1531,\"column_from\":22,\"column_to\":35}"},{"lineNumber":19,"fileName":"app\/src\/Container\/ContentTypeGeneratorCompilerClass.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Container\\ContentTypeGeneratorCompilerClass::process does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":19,\"line_to\":19,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Container\\\\ContentTypeGeneratorCompilerClass::process does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Container\\\/ContentTypeGeneratorCompilerClass.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Container\\\/ContentTypeGeneratorCompilerClass.php\",\"snippet\":\" public function process(ContainerBuilder $container)\",\"selected_text\":\"process\",\"from\":579,\"to\":586,\"snippet_from\":559,\"snippet_to\":615,\"column_from\":21,\"column_to\":28}"},{"lineNumber":24,"fileName":"app\/src\/Container\/ContentTypeGeneratorCompilerClass.php","type":"MixedAssignment","message":"Cannot assign $tags to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":24,\"line_to\":24,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign $tags to a mixed type\",\"file_name\":\"app\\\/src\\\/Container\\\/ContentTypeGeneratorCompilerClass.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Container\\\/ContentTypeGeneratorCompilerClass.php\",\"snippet\":\" foreach ($taggedServices as $id => $tags) {\",\"selected_text\":\"$tags\",\"from\":824,\"to\":829,\"snippet_from\":781,\"snippet_to\":832,\"column_from\":44,\"column_to\":49}"},{"lineNumber":25,"fileName":"app\/src\/Container\/ContentTypeGeneratorCompilerClass.php","type":"MixedArgument","message":"Argument 1 of Symfony\\Component\\DependencyInjection\\Reference::__construct cannot be mixed, expecting string","fullDetails":"{\"severity\":\"error\",\"line_from\":25,\"line_to\":25,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of Symfony\\\\Component\\\\DependencyInjection\\\\Reference::__construct cannot be mixed, expecting string\",\"file_name\":\"app\\\/src\\\/Container\\\/ContentTypeGeneratorCompilerClass.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Container\\\/ContentTypeGeneratorCompilerClass.php\",\"snippet\":\" $definition->addMethodCall('addContentTypeGenerator', [new Reference($id)]);\",\"selected_text\":\"$id\",\"from\":914,\"to\":917,\"snippet_from\":833,\"snippet_to\":921,\"column_from\":82,\"column_to\":85}"},{"lineNumber":19,"fileName":"app\/src\/Container\/FormTypeCompilerClass.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Container\\FormTypeCompilerClass::process does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":19,\"line_to\":19,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Container\\\\FormTypeCompilerClass::process does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Container\\\/FormTypeCompilerClass.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Container\\\/FormTypeCompilerClass.php\",\"snippet\":\" public function process(ContainerBuilder $container)\",\"selected_text\":\"process\",\"from\":577,\"to\":584,\"snippet_from\":557,\"snippet_to\":613,\"column_from\":21,\"column_to\":28}"},{"lineNumber":24,"fileName":"app\/src\/Container\/FormTypeCompilerClass.php","type":"MixedAssignment","message":"Cannot assign $tags to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":24,\"line_to\":24,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign $tags to a mixed type\",\"file_name\":\"app\\\/src\\\/Container\\\/FormTypeCompilerClass.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Container\\\/FormTypeCompilerClass.php\",\"snippet\":\" foreach ($taggedServices as $id => $tags) {\",\"selected_text\":\"$tags\",\"from\":842,\"to\":847,\"snippet_from\":799,\"snippet_to\":850,\"column_from\":44,\"column_to\":49}"},{"lineNumber":25,"fileName":"app\/src\/Container\/FormTypeCompilerClass.php","type":"MixedAssignment","message":"Cannot assign $tag to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":25,\"line_to\":25,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign $tag to a mixed type\",\"file_name\":\"app\\\/src\\\/Container\\\/FormTypeCompilerClass.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Container\\\/FormTypeCompilerClass.php\",\"snippet\":\" foreach ($tags as $tag) {\",\"selected_text\":\"$tag\",\"from\":881,\"to\":885,\"snippet_from\":851,\"snippet_to\":888,\"column_from\":31,\"column_to\":35}"},{"lineNumber":26,"fileName":"app\/src\/Container\/FormTypeCompilerClass.php","type":"MixedArrayAccess","message":"Cannot access array value on mixed variable $tag","fullDetails":"{\"severity\":\"error\",\"line_from\":26,\"line_to\":26,\"type\":\"MixedArrayAccess\",\"message\":\"Cannot access array value on mixed variable $tag\",\"file_name\":\"app\\\/src\\\/Container\\\/FormTypeCompilerClass.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Container\\\/FormTypeCompilerClass.php\",\"snippet\":\" $definition->addMethodCall('addFormType', [$tag['entityFqcn'], new Reference($id)]);\",\"selected_text\":\"$tag['entityFqcn']\",\"from\":948,\"to\":966,\"snippet_from\":889,\"snippet_to\":989,\"column_from\":60,\"column_to\":78}"},{"lineNumber":26,"fileName":"app\/src\/Container\/FormTypeCompilerClass.php","type":"MixedArgument","message":"Argument 1 of Symfony\\Component\\DependencyInjection\\Reference::__construct cannot be mixed, expecting string","fullDetails":"{\"severity\":\"error\",\"line_from\":26,\"line_to\":26,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of Symfony\\\\Component\\\\DependencyInjection\\\\Reference::__construct cannot be mixed, expecting string\",\"file_name\":\"app\\\/src\\\/Container\\\/FormTypeCompilerClass.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Container\\\/FormTypeCompilerClass.php\",\"snippet\":\" $definition->addMethodCall('addFormType', [$tag['entityFqcn'], new Reference($id)]);\",\"selected_text\":\"$id\",\"from\":982,\"to\":985,\"snippet_from\":889,\"snippet_to\":989,\"column_from\":94,\"column_to\":97}"},{"lineNumber":21,"fileName":"app\/src\/Container\/ImporterCompilerClass.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Container\\ImporterCompilerClass::process does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":21,\"line_to\":21,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Container\\\\ImporterCompilerClass::process does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Container\\\/ImporterCompilerClass.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Container\\\/ImporterCompilerClass.php\",\"snippet\":\" public function process(ContainerBuilder $container)\",\"selected_text\":\"process\",\"from\":741,\"to\":748,\"snippet_from\":721,\"snippet_to\":777,\"column_from\":21,\"column_to\":28}"},{"lineNumber":26,"fileName":"app\/src\/Container\/ImporterCompilerClass.php","type":"MixedAssignment","message":"Cannot assign $tags to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":26,\"line_to\":26,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign $tags to a mixed type\",\"file_name\":\"app\\\/src\\\/Container\\\/ImporterCompilerClass.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Container\\\/ImporterCompilerClass.php\",\"snippet\":\" foreach ($taggedServices as $id => $tags) {\",\"selected_text\":\"$tags\",\"from\":972,\"to\":977,\"snippet_from\":929,\"snippet_to\":980,\"column_from\":44,\"column_to\":49}"},{"lineNumber":27,"fileName":"app\/src\/Container\/ImporterCompilerClass.php","type":"MixedAssignment","message":"Cannot assign $tag to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":27,\"line_to\":27,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign $tag to a mixed type\",\"file_name\":\"app\\\/src\\\/Container\\\/ImporterCompilerClass.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Container\\\/ImporterCompilerClass.php\",\"snippet\":\" foreach ($tags as $tag) {\",\"selected_text\":\"$tag\",\"from\":1011,\"to\":1015,\"snippet_from\":981,\"snippet_to\":1018,\"column_from\":31,\"column_to\":35}"},{"lineNumber":28,"fileName":"app\/src\/Container\/ImporterCompilerClass.php","type":"MixedArgument","message":"Argument 1 of Symfony\\Component\\DependencyInjection\\Reference::__construct cannot be mixed, expecting string","fullDetails":"{\"severity\":\"error\",\"line_from\":28,\"line_to\":28,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of Symfony\\\\Component\\\\DependencyInjection\\\\Reference::__construct cannot be mixed, expecting string\",\"file_name\":\"app\\\/src\\\/Container\\\/ImporterCompilerClass.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Container\\\/ImporterCompilerClass.php\",\"snippet\":\" $definition->addMethodCall('addImporter', [new Reference($id), $tag['directory'], $tag['order']]);\",\"selected_text\":\"$id\",\"from\":1092,\"to\":1095,\"snippet_from\":1019,\"snippet_to\":1133,\"column_from\":74,\"column_to\":77}"},{"lineNumber":28,"fileName":"app\/src\/Container\/ImporterCompilerClass.php","type":"MixedArrayAccess","message":"Cannot access array value on mixed variable $tag","fullDetails":"{\"severity\":\"error\",\"line_from\":28,\"line_to\":28,\"type\":\"MixedArrayAccess\",\"message\":\"Cannot access array value on mixed variable $tag\",\"file_name\":\"app\\\/src\\\/Container\\\/ImporterCompilerClass.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Container\\\/ImporterCompilerClass.php\",\"snippet\":\" $definition->addMethodCall('addImporter', [new Reference($id), $tag['directory'], $tag['order']]);\",\"selected_text\":\"$tag['directory']\",\"from\":1098,\"to\":1115,\"snippet_from\":1019,\"snippet_to\":1133,\"column_from\":80,\"column_to\":97}"},{"lineNumber":17,"fileName":"app\/src\/Container\/TwigExtensionCompilerClass.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Container\\TwigExtensionCompilerClass::process does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":17,\"line_to\":17,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Container\\\\TwigExtensionCompilerClass::process does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Container\\\/TwigExtensionCompilerClass.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Container\\\/TwigExtensionCompilerClass.php\",\"snippet\":\" public function process(ContainerBuilder $container)\",\"selected_text\":\"process\",\"from\":420,\"to\":427,\"snippet_from\":400,\"snippet_to\":456,\"column_from\":21,\"column_to\":28}"},{"lineNumber":22,"fileName":"app\/src\/Container\/TwigExtensionCompilerClass.php","type":"MixedAssignment","message":"Cannot assign $tags to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":22,\"line_to\":22,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign $tags to a mixed type\",\"file_name\":\"app\\\/src\\\/Container\\\/TwigExtensionCompilerClass.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Container\\\/TwigExtensionCompilerClass.php\",\"snippet\":\" foreach ($taggedServices as $id => $tags) {\",\"selected_text\":\"$tags\",\"from\":670,\"to\":675,\"snippet_from\":627,\"snippet_to\":678,\"column_from\":44,\"column_to\":49}"},{"lineNumber":23,"fileName":"app\/src\/Container\/TwigExtensionCompilerClass.php","type":"MixedArgument","message":"Argument 1 of Symfony\\Component\\DependencyInjection\\Reference::__construct cannot be mixed, expecting string","fullDetails":"{\"severity\":\"error\",\"line_from\":23,\"line_to\":23,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of Symfony\\\\Component\\\\DependencyInjection\\\\Reference::__construct cannot be mixed, expecting string\",\"file_name\":\"app\\\/src\\\/Container\\\/TwigExtensionCompilerClass.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Container\\\/TwigExtensionCompilerClass.php\",\"snippet\":\" $definition->addMethodCall('addExtension', [new Reference($id)]);\",\"selected_text\":\"$id\",\"from\":749,\"to\":752,\"snippet_from\":679,\"snippet_to\":756,\"column_from\":71,\"column_to\":74}"},{"lineNumber":29,"fileName":"app\/src\/DataFileGenerator\/EventFileGenerator.php","type":"MixedInferredReturnType","message":"Could not verify return type 'Phpsw\\Website\\Entity\\Event' for Phpsw\\Website\\DataFileGenerator\\EventFileGenerator::getEventFromMeetup","fullDetails":"{\"severity\":\"error\",\"line_from\":29,\"line_to\":29,\"type\":\"MixedInferredReturnType\",\"message\":\"Could not verify return type 'Phpsw\\\\Website\\\\Entity\\\\Event' for Phpsw\\\\Website\\\\DataFileGenerator\\\\EventFileGenerator::getEventFromMeetup\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/EventFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/EventFileGenerator.php\",\"snippet\":\" \\\/**\\n * @param int $meetupId\\n *\\n * @throws \\\\Exception\\n *\\n * @return Event\\n *\\\/\\n public function getEventFromMeetup(int $meetupId)\\n {\\n $result = $this->meetupAPIClient->getEvents(['event_id' => $meetupId]);\\n if (1 !== count($result->results)) {\",\"selected_text\":\"Event\",\"from\":578,\"to\":583,\"snippet_from\":487,\"snippet_to\":776,\"column_from\":16,\"column_to\":21}"},{"lineNumber":33,"fileName":"app\/src\/DataFileGenerator\/EventFileGenerator.php","type":"MixedAssignment","message":"Cannot assign $result to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":33,\"line_to\":33,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign $result to a mixed type\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/EventFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/EventFileGenerator.php\",\"snippet\":\" $result = $this->meetupAPIClient->getEvents(['event_id' => $meetupId]);\",\"selected_text\":\"$result\",\"from\":660,\"to\":667,\"snippet_from\":652,\"snippet_to\":731,\"column_from\":9,\"column_to\":16}"},{"lineNumber":34,"fileName":"app\/src\/DataFileGenerator\/EventFileGenerator.php","type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $result","fullDetails":"{\"severity\":\"error\",\"line_from\":34,\"line_to\":34,\"type\":\"MixedPropertyFetch\",\"message\":\"Cannot fetch property on mixed var $result\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/EventFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/EventFileGenerator.php\",\"snippet\":\" if (1 !== count($result->results)) {\",\"selected_text\":\"$result->results\",\"from\":756,\"to\":772,\"snippet_from\":732,\"snippet_to\":776,\"column_from\":25,\"column_to\":41}"},{"lineNumber":34,"fileName":"app\/src\/DataFileGenerator\/EventFileGenerator.php","type":"MixedArgument","message":"Argument 1 of count cannot be mixed, expecting array|Countable","fullDetails":"{\"severity\":\"error\",\"line_from\":34,\"line_to\":34,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of count cannot be mixed, expecting array|Countable\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/EventFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/EventFileGenerator.php\",\"snippet\":\" if (1 !== count($result->results)) {\",\"selected_text\":\"$result->results\",\"from\":756,\"to\":772,\"snippet_from\":732,\"snippet_to\":776,\"column_from\":25,\"column_to\":41}"},{"lineNumber":38,"fileName":"app\/src\/DataFileGenerator\/EventFileGenerator.php","type":"MixedAssignment","message":"Cannot assign $eventRaw to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":38,\"line_to\":38,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign $eventRaw to a mixed type\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/EventFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/EventFileGenerator.php\",\"snippet\":\" $eventRaw = $result->results[0];\",\"selected_text\":\"$eventRaw\",\"from\":894,\"to\":903,\"snippet_from\":886,\"snippet_to\":926,\"column_from\":9,\"column_to\":18}"},{"lineNumber":38,"fileName":"app\/src\/DataFileGenerator\/EventFileGenerator.php","type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $result","fullDetails":"{\"severity\":\"error\",\"line_from\":38,\"line_to\":38,\"type\":\"MixedPropertyFetch\",\"message\":\"Cannot fetch property on mixed var $result\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/EventFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/EventFileGenerator.php\",\"snippet\":\" $eventRaw = $result->results[0];\",\"selected_text\":\"$result->results\",\"from\":906,\"to\":922,\"snippet_from\":886,\"snippet_to\":926,\"column_from\":21,\"column_to\":37}"},{"lineNumber":38,"fileName":"app\/src\/DataFileGenerator\/EventFileGenerator.php","type":"MixedArrayAccess","message":"Cannot access array value on mixed variable $result->results","fullDetails":"{\"severity\":\"error\",\"line_from\":38,\"line_to\":38,\"type\":\"MixedArrayAccess\",\"message\":\"Cannot access array value on mixed variable $result->results\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/EventFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/EventFileGenerator.php\",\"snippet\":\" $eventRaw = $result->results[0];\",\"selected_text\":\"$result->results[0]\",\"from\":906,\"to\":925,\"snippet_from\":886,\"snippet_to\":926,\"column_from\":21,\"column_to\":40}"},{"lineNumber":41,"fileName":"app\/src\/DataFileGenerator\/EventFileGenerator.php","type":"InvalidScalarArgument","message":"Argument 1 of Phpsw\\Website\\Entity\\Event::setMeetupId expects string, int provided","fullDetails":"{\"severity\":\"error\",\"line_from\":41,\"line_to\":41,\"type\":\"InvalidScalarArgument\",\"message\":\"Argument 1 of Phpsw\\\\Website\\\\Entity\\\\Event::setMeetupId expects string, int provided\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/EventFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/EventFileGenerator.php\",\"snippet\":\" $event->setMeetupId($meetupId);\",\"selected_text\":\"$meetupId\",\"from\":986,\"to\":995,\"snippet_from\":958,\"snippet_to\":997,\"column_from\":29,\"column_to\":38}"},{"lineNumber":103,"fileName":"app\/src\/DataFileGenerator\/EventFileGenerator.php","type":"MixedTypeCoercion","message":"Argument 1 of Phpsw\\Website\\Entity\\Event::setSponsors expects array, parent type array provided","fullDetails":"{\"severity\":\"error\",\"line_from\":103,\"line_to\":103,\"type\":\"MixedTypeCoercion\",\"message\":\"Argument 1 of Phpsw\\\\Website\\\\Entity\\\\Event::setSponsors expects array, parent type array provided\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/EventFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/EventFileGenerator.php\",\"snippet\":\" $event->setSponsors($this->guessSponsors($event->getDate(), $event->getVenue()));\",\"selected_text\":\"$this->guessSponsors($event->getDate(), $event->getVenue())\",\"from\":3050,\"to\":3109,\"snippet_from\":3022,\"snippet_to\":3111,\"column_from\":29,\"column_to\":88}"},{"lineNumber":149,"fileName":"app\/src\/DataFileGenerator\/EventFileGenerator.php","type":"InvalidArrayOffset","message":"Cannot access value on variable $sponsors using a false|int(0)|int(1)|int(2)|int(3)|int(4) offset, expecting int(0)|int(1)|int(2)|int(3)|int(4)","fullDetails":"{\"severity\":\"error\",\"line_from\":149,\"line_to\":149,\"type\":\"InvalidArrayOffset\",\"message\":\"Cannot access value on variable $sponsors using a false|int(0)|int(1)|int(2)|int(3)|int(4) offset, expecting int(0)|int(1)|int(2)|int(3)|int(4)\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/EventFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/EventFileGenerator.php\",\"snippet\":\" unset($sponsors[$key]);\",\"selected_text\":\"$sponsors[$key]\",\"from\":4748,\"to\":4763,\"snippet_from\":4726,\"snippet_to\":4765,\"column_from\":23,\"column_to\":38}"},{"lineNumber":161,"fileName":"app\/src\/DataFileGenerator\/EventFileGenerator.php","type":"PossiblyInvalidArrayOffset","message":"Cannot access value on variable $sponsors using a false|int offset, expecting int","fullDetails":"{\"severity\":\"error\",\"line_from\":161,\"line_to\":161,\"type\":\"PossiblyInvalidArrayOffset\",\"message\":\"Cannot access value on variable $sponsors using a false|int offset, expecting int\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/EventFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/EventFileGenerator.php\",\"snippet\":\" unset($sponsors[$key]);\",\"selected_text\":\"$sponsors[$key]\",\"from\":5187,\"to\":5202,\"snippet_from\":5165,\"snippet_to\":5204,\"column_from\":23,\"column_to\":38}"},{"lineNumber":27,"fileName":"app\/src\/DataFileGenerator\/GenerateEventFileCommand.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\DataFileGenerator\\GenerateEventFileCommand::configure does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":27,\"line_to\":27,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\DataFileGenerator\\\\GenerateEventFileCommand::configure does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/GenerateEventFileCommand.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/GenerateEventFileCommand.php\",\"snippet\":\" protected function configure()\",\"selected_text\":\"configure\",\"from\":723,\"to\":732,\"snippet_from\":700,\"snippet_to\":734,\"column_from\":24,\"column_to\":33}"},{"lineNumber":34,"fileName":"app\/src\/DataFileGenerator\/GenerateEventFileCommand.php","type":"InvalidReturnType","message":"The declared return type 'null|int' for Phpsw\\Website\\DataFileGenerator\\GenerateEventFileCommand::execute is incorrect, got 'void'","fullDetails":"{\"severity\":\"error\",\"line_from\":34,\"line_to\":34,\"type\":\"InvalidReturnType\",\"message\":\"The declared return type 'null|int' for Phpsw\\\\Website\\\\DataFileGenerator\\\\GenerateEventFileCommand::execute is incorrect, got 'void'\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/GenerateEventFileCommand.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/GenerateEventFileCommand.php\",\"snippet\":\" protected function execute(InputInterface $input, OutputInterface $output)\",\"selected_text\":\"execute\",\"from\":1050,\"to\":1057,\"snippet_from\":1027,\"snippet_to\":1105,\"column_from\":24,\"column_to\":31}"},{"lineNumber":37,"fileName":"app\/src\/DataFileGenerator\/GenerateEventFileCommand.php","type":"MixedAssignment","message":"Cannot assign $meetupId to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":37,\"line_to\":37,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign $meetupId to a mixed type\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/GenerateEventFileCommand.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/GenerateEventFileCommand.php\",\"snippet\":\" $meetupId = $input->getArgument('meetupId');\",\"selected_text\":\"$meetupId\",\"from\":1138,\"to\":1147,\"snippet_from\":1126,\"snippet_to\":1182,\"column_from\":13,\"column_to\":22}"},{"lineNumber":42,"fileName":"app\/src\/DataFileGenerator\/GenerateEventFileCommand.php","type":"MixedArgument","message":"Argument 1 of Phpsw\\Website\\DataFileGenerator\\EventFileGenerator::getEventFromMeetup cannot be mixed, expecting int","fullDetails":"{\"severity\":\"error\",\"line_from\":42,\"line_to\":42,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of Phpsw\\\\Website\\\\DataFileGenerator\\\\EventFileGenerator::getEventFromMeetup cannot be mixed, expecting int\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/GenerateEventFileCommand.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/GenerateEventFileCommand.php\",\"snippet\":\" $event = $this->eventFileGenerator->getEventFromMeetup($meetupId);\",\"selected_text\":\"$meetupId\",\"from\":1397,\"to\":1406,\"snippet_from\":1322,\"snippet_to\":1408,\"column_from\":76,\"column_to\":85}"},{"lineNumber":28,"fileName":"app\/src\/DataFileGenerator\/GeneratePersonFileCommand.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\DataFileGenerator\\GeneratePersonFileCommand::configure does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":28,\"line_to\":28,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\DataFileGenerator\\\\GeneratePersonFileCommand::configure does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"snippet\":\" protected function configure()\",\"selected_text\":\"configure\",\"from\":783,\"to\":792,\"snippet_from\":760,\"snippet_to\":794,\"column_from\":24,\"column_to\":33}"},{"lineNumber":35,"fileName":"app\/src\/DataFileGenerator\/GeneratePersonFileCommand.php","type":"InvalidReturnType","message":"The declared return type 'null|int' for Phpsw\\Website\\DataFileGenerator\\GeneratePersonFileCommand::execute is incorrect, got 'void'","fullDetails":"{\"severity\":\"error\",\"line_from\":35,\"line_to\":35,\"type\":\"InvalidReturnType\",\"message\":\"The declared return type 'null|int' for Phpsw\\\\Website\\\\DataFileGenerator\\\\GeneratePersonFileCommand::execute is incorrect, got 'void'\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"snippet\":\" protected function execute(InputInterface $input, OutputInterface $output)\",\"selected_text\":\"execute\",\"from\":1112,\"to\":1119,\"snippet_from\":1089,\"snippet_to\":1167,\"column_from\":24,\"column_to\":31}"},{"lineNumber":38,"fileName":"app\/src\/DataFileGenerator\/GeneratePersonFileCommand.php","type":"MixedAssignment","message":"Cannot assign $meetupId to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":38,\"line_to\":38,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign $meetupId to a mixed type\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"snippet\":\" $meetupId = $input->getArgument('meetupId');\",\"selected_text\":\"$meetupId\",\"from\":1200,\"to\":1209,\"snippet_from\":1188,\"snippet_to\":1244,\"column_from\":13,\"column_to\":22}"},{"lineNumber":43,"fileName":"app\/src\/DataFileGenerator\/GeneratePersonFileCommand.php","type":"MixedArgument","message":"Argument 1 of Phpsw\\Website\\DataFileGenerator\\PersonFileGenerator::getPersonFromMeetup cannot be mixed, expecting int","fullDetails":"{\"severity\":\"error\",\"line_from\":43,\"line_to\":43,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of Phpsw\\\\Website\\\\DataFileGenerator\\\\PersonFileGenerator::getPersonFromMeetup cannot be mixed, expecting int\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"snippet\":\" $person = $this->personFileGenerator->getPersonFromMeetup($meetupId);\",\"selected_text\":\"$meetupId\",\"from\":1461,\"to\":1470,\"snippet_from\":1383,\"snippet_to\":1472,\"column_from\":79,\"column_to\":88}"},{"lineNumber":74,"fileName":"app\/src\/DataFileGenerator\/GeneratePersonFileCommand.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\DataFileGenerator\\GeneratePersonFileCommand::checkMissingData does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":74,\"line_to\":74,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\DataFileGenerator\\\\GeneratePersonFileCommand::checkMissingData does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"snippet\":\" private function checkMissingData(Person $person, InputInterface $input, OutputInterface $output)\",\"selected_text\":\"checkMissingData\",\"from\":2453,\"to\":2469,\"snippet_from\":2432,\"snippet_to\":2533,\"column_from\":22,\"column_to\":38}"},{"lineNumber":82,"fileName":"app\/src\/DataFileGenerator\/GeneratePersonFileCommand.php","type":"MixedAssignment","message":"Cannot assign $name to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":82,\"line_to\":82,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign $name to a mixed type\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"snippet\":\" $name = $this->askUserQuestion('Enter the full name of this person: ', $input, $output);\",\"selected_text\":\"$name\",\"from\":2722,\"to\":2727,\"snippet_from\":2710,\"snippet_to\":2810,\"column_from\":13,\"column_to\":18}"},{"lineNumber":86,"fileName":"app\/src\/DataFileGenerator\/GeneratePersonFileCommand.php","type":"MixedArgument","message":"Argument 1 of Phpsw\\Website\\Entity\\Person::setName cannot be mixed, expecting string","fullDetails":"{\"severity\":\"error\",\"line_from\":86,\"line_to\":86,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of Phpsw\\\\Website\\\\Entity\\\\Person::setName cannot be mixed, expecting string\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"snippet\":\" $person->setName($name);\",\"selected_text\":\"$name\",\"from\":2954,\"to\":2959,\"snippet_from\":2925,\"snippet_to\":2961,\"column_from\":30,\"column_to\":35}"},{"lineNumber":93,"fileName":"app\/src\/DataFileGenerator\/GeneratePersonFileCommand.php","type":"MixedAssignment","message":"Cannot assign $description to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":93,\"line_to\":93,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign $description to a mixed type\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"snippet\":\" $description = $this->askUserQuestion('Enter this person\\\\'s description: ', $input, $output);\",\"selected_text\":\"$description\",\"from\":3142,\"to\":3154,\"snippet_from\":3130,\"snippet_to\":3235,\"column_from\":13,\"column_to\":25}"},{"lineNumber":97,"fileName":"app\/src\/DataFileGenerator\/GeneratePersonFileCommand.php","type":"MixedArgument","message":"Argument 1 of Phpsw\\Website\\Entity\\Person::setDescription cannot be mixed, expecting string","fullDetails":"{\"severity\":\"error\",\"line_from\":97,\"line_to\":97,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of Phpsw\\\\Website\\\\Entity\\\\Person::setDescription cannot be mixed, expecting string\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"snippet\":\" $person->setDescription($description);\",\"selected_text\":\"$description\",\"from\":3395,\"to\":3407,\"snippet_from\":3359,\"snippet_to\":3409,\"column_from\":37,\"column_to\":49}"},{"lineNumber":103,"fileName":"app\/src\/DataFileGenerator\/GeneratePersonFileCommand.php","type":"MixedAssignment","message":"Cannot assign $photoUrl to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":103,\"line_to\":103,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign $photoUrl to a mixed type\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"snippet\":\" $photoUrl = $this->askUserQuestion('Enter photo URL or leave blank to skip: ', $input, $output);\",\"selected_text\":\"$photoUrl\",\"from\":3577,\"to\":3586,\"snippet_from\":3565,\"snippet_to\":3673,\"column_from\":13,\"column_to\":22}"},{"lineNumber":105,"fileName":"app\/src\/DataFileGenerator\/GeneratePersonFileCommand.php","type":"MixedArgument","message":"Argument 1 of Phpsw\\Website\\Entity\\Person::setPhotoUrl cannot be mixed, expecting string","fullDetails":"{\"severity\":\"error\",\"line_from\":105,\"line_to\":105,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of Phpsw\\\\Website\\\\Entity\\\\Person::setPhotoUrl cannot be mixed, expecting string\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"snippet\":\" $person->setPhotoUrl($photoUrl);\",\"selected_text\":\"$photoUrl\",\"from\":3748,\"to\":3757,\"snippet_from\":3711,\"snippet_to\":3759,\"column_from\":38,\"column_to\":47}"},{"lineNumber":112,"fileName":"app\/src\/DataFileGenerator\/GeneratePersonFileCommand.php","type":"MixedAssignment","message":"Cannot assign $websiteUrl to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":112,\"line_to\":112,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign $websiteUrl to a mixed type\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"snippet\":\" $websiteUrl = $this->askUserQuestion('Enter website URL or leave blank to skip: ', $input, $output);\",\"selected_text\":\"$websiteUrl\",\"from\":3945,\"to\":3956,\"snippet_from\":3933,\"snippet_to\":4045,\"column_from\":13,\"column_to\":24}"},{"lineNumber":114,"fileName":"app\/src\/DataFileGenerator\/GeneratePersonFileCommand.php","type":"MixedArgument","message":"Argument 1 of Phpsw\\Website\\Entity\\Person::setWebsiteUrl cannot be mixed, expecting string","fullDetails":"{\"severity\":\"error\",\"line_from\":114,\"line_to\":114,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of Phpsw\\\\Website\\\\Entity\\\\Person::setWebsiteUrl cannot be mixed, expecting string\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"snippet\":\" $person->setWebsiteUrl($websiteUrl);\",\"selected_text\":\"$websiteUrl\",\"from\":4124,\"to\":4135,\"snippet_from\":4085,\"snippet_to\":4137,\"column_from\":40,\"column_to\":51}"},{"lineNumber":121,"fileName":"app\/src\/DataFileGenerator\/GeneratePersonFileCommand.php","type":"MixedAssignment","message":"Cannot assign $twitter to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":121,\"line_to\":121,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign $twitter to a mixed type\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"snippet\":\" $twitter = $this->askUserQuestion('Enter twitter handle or leave blank to skip: ', $input, $output);\",\"selected_text\":\"$twitter\",\"from\":4329,\"to\":4337,\"snippet_from\":4317,\"snippet_to\":4429,\"column_from\":13,\"column_to\":21}"},{"lineNumber":123,"fileName":"app\/src\/DataFileGenerator\/GeneratePersonFileCommand.php","type":"MixedArgument","message":"Argument 1 of Phpsw\\Website\\Entity\\Person::setTwitterHandle cannot be mixed, expecting string","fullDetails":"{\"severity\":\"error\",\"line_from\":123,\"line_to\":123,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of Phpsw\\\\Website\\\\Entity\\\\Person::setTwitterHandle cannot be mixed, expecting string\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"snippet\":\" $person->setTwitterHandle($twitter);\",\"selected_text\":\"$twitter\",\"from\":4508,\"to\":4516,\"snippet_from\":4466,\"snippet_to\":4518,\"column_from\":43,\"column_to\":51}"},{"lineNumber":130,"fileName":"app\/src\/DataFileGenerator\/GeneratePersonFileCommand.php","type":"MixedAssignment","message":"Cannot assign $github to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":130,\"line_to\":130,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign $github to a mixed type\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"snippet\":\" $github = $this->askUserQuestion('Enter github handle or leave blank to skip: ', $input, $output);\",\"selected_text\":\"$github\",\"from\":4708,\"to\":4715,\"snippet_from\":4696,\"snippet_to\":4806,\"column_from\":13,\"column_to\":20}"},{"lineNumber":132,"fileName":"app\/src\/DataFileGenerator\/GeneratePersonFileCommand.php","type":"MixedArgument","message":"Argument 1 of Phpsw\\Website\\Entity\\Person::setGithubHandle cannot be mixed, expecting string","fullDetails":"{\"severity\":\"error\",\"line_from\":132,\"line_to\":132,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of Phpsw\\\\Website\\\\Entity\\\\Person::setGithubHandle cannot be mixed, expecting string\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"snippet\":\" $person->setGithubHandle($github);\",\"selected_text\":\"$github\",\"from\":4883,\"to\":4890,\"snippet_from\":4842,\"snippet_to\":4892,\"column_from\":42,\"column_to\":49}"},{"lineNumber":139,"fileName":"app\/src\/DataFileGenerator\/GeneratePersonFileCommand.php","type":"MixedAssignment","message":"Cannot assign $meetupId to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":139,\"line_to\":139,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign $meetupId to a mixed type\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"snippet\":\" $meetupId = $this->askUserQuestion('Enter meetup ID or leave blank to skip: ', $input, $output);\",\"selected_text\":\"$meetupId\",\"from\":5074,\"to\":5083,\"snippet_from\":5062,\"snippet_to\":5170,\"column_from\":13,\"column_to\":22}"},{"lineNumber":141,"fileName":"app\/src\/DataFileGenerator\/GeneratePersonFileCommand.php","type":"MixedArgument","message":"Argument 1 of Phpsw\\Website\\Entity\\Person::setMeetupId cannot be mixed, expecting int","fullDetails":"{\"severity\":\"error\",\"line_from\":141,\"line_to\":141,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of Phpsw\\\\Website\\\\Entity\\\\Person::setMeetupId cannot be mixed, expecting int\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"snippet\":\" $person->setMeetupId($meetupId);\",\"selected_text\":\"$meetupId\",\"from\":5245,\"to\":5254,\"snippet_from\":5208,\"snippet_to\":5256,\"column_from\":38,\"column_to\":47}"},{"lineNumber":150,"fileName":"app\/src\/DataFileGenerator\/GeneratePersonFileCommand.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\DataFileGenerator\\GeneratePersonFileCommand::askUserQuestion does not have a return type","fullDetails":"{\"severity\":\"error\",\"line_from\":150,\"line_to\":150,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\DataFileGenerator\\\\GeneratePersonFileCommand::askUserQuestion does not have a return type\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"snippet\":\" private function askUserQuestion($question, InputInterface $input, OutputInterface $output)\",\"selected_text\":\"askUserQuestion\",\"from\":5410,\"to\":5425,\"snippet_from\":5389,\"snippet_to\":5484,\"column_from\":22,\"column_to\":37}"},{"lineNumber":150,"fileName":"app\/src\/DataFileGenerator\/GeneratePersonFileCommand.php","type":"MissingParamType","message":"Parameter $question has no provided type","fullDetails":"{\"severity\":\"error\",\"line_from\":150,\"line_to\":150,\"type\":\"MissingParamType\",\"message\":\"Parameter $question has no provided type\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"snippet\":\" private function askUserQuestion($question, InputInterface $input, OutputInterface $output)\",\"selected_text\":\"$question\",\"from\":5426,\"to\":5435,\"snippet_from\":5389,\"snippet_to\":5484,\"column_from\":38,\"column_to\":47}"},{"lineNumber":152,"fileName":"app\/src\/DataFileGenerator\/GeneratePersonFileCommand.php","type":"MixedAssignment","message":"Cannot assign $helper to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":152,\"line_to\":152,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign $helper to a mixed type\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"snippet\":\" $helper = $this->getHelper('question');\",\"selected_text\":\"$helper\",\"from\":5499,\"to\":5506,\"snippet_from\":5491,\"snippet_to\":5538,\"column_from\":9,\"column_to\":16}"},{"lineNumber":153,"fileName":"app\/src\/DataFileGenerator\/GeneratePersonFileCommand.php","type":"MixedArgument","message":"Argument 1 of Symfony\\Component\\Console\\Question\\Question::__construct cannot be mixed, expecting string","fullDetails":"{\"severity\":\"error\",\"line_from\":153,\"line_to\":153,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of Symfony\\\\Component\\\\Console\\\\Question\\\\Question::__construct cannot be mixed, expecting string\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"snippet\":\" $q = new Question($question, null);\",\"selected_text\":\"$question\",\"from\":5565,\"to\":5574,\"snippet_from\":5539,\"snippet_to\":5582,\"column_from\":27,\"column_to\":36}"},{"lineNumber":155,"fileName":"app\/src\/DataFileGenerator\/GeneratePersonFileCommand.php","type":"MixedMethodCall","message":"Cannot call method on a mixed variable $helper","fullDetails":"{\"severity\":\"error\",\"line_from\":155,\"line_to\":155,\"type\":\"MixedMethodCall\",\"message\":\"Cannot call method on a mixed variable $helper\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/GeneratePersonFileCommand.php\",\"snippet\":\" return $helper->ask($input, $output, $q);\",\"selected_text\":\"ask\",\"from\":5608,\"to\":5611,\"snippet_from\":5584,\"snippet_to\":5633,\"column_from\":25,\"column_to\":28}"},{"lineNumber":76,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MissingParamType","message":"Parameter $apiKey has no provided type","fullDetails":"{\"severity\":\"error\",\"line_from\":76,\"line_to\":76,\"type\":\"MissingParamType\",\"message\":\"Parameter $apiKey has no provided type\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" public function __construct($apiKey)\",\"selected_text\":\"$apiKey\",\"from\":1398,\"to\":1405,\"snippet_from\":1366,\"snippet_to\":1406,\"column_from\":33,\"column_to\":40}"},{"lineNumber":79,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"UndefinedThisPropertyAssignment","message":"Instance property Phpsw\\Website\\DataFileGenerator\\MeetupApiClient::$_next is not defined","fullDetails":"{\"severity\":\"error\",\"line_from\":79,\"line_to\":79,\"type\":\"UndefinedThisPropertyAssignment\",\"message\":\"Instance property Phpsw\\\\Website\\\\DataFileGenerator\\\\MeetupApiClient::$_next is not defined\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" $this->_next = $this->_response = null;\",\"selected_text\":\"$this->_next\",\"from\":1503,\"to\":1515,\"snippet_from\":1495,\"snippet_to\":1542,\"column_from\":9,\"column_to\":21}"},{"lineNumber":111,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MissingParamType","message":"Parameter $path has no provided type","fullDetails":"{\"severity\":\"error\",\"line_from\":111,\"line_to\":111,\"type\":\"MissingParamType\",\"message\":\"Parameter $path has no provided type\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" public function get($path, array $parameters = [])\",\"selected_text\":\"$path\",\"from\":2481,\"to\":2486,\"snippet_from\":2457,\"snippet_to\":2511,\"column_from\":25,\"column_to\":30}"},{"lineNumber":113,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedArgument","message":"Argument 1 of Phpsw\\Website\\DataFileGenerator\\MeetupApiClient::params cannot be mixed, expecting string","fullDetails":"{\"severity\":\"error\",\"line_from\":113,\"line_to\":113,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of Phpsw\\\\Website\\\\DataFileGenerator\\\\MeetupApiClient::params cannot be mixed, expecting string\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" list($url, $params) = $this->params($path, $parameters);\",\"selected_text\":\"$path\",\"from\":2562,\"to\":2567,\"snippet_from\":2518,\"snippet_to\":2582,\"column_from\":45,\"column_to\":50}"},{"lineNumber":115,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedOperand","message":"Right operand cannot be mixed","fullDetails":"{\"severity\":\"error\",\"line_from\":115,\"line_to\":115,\"type\":\"MixedOperand\",\"message\":\"Right operand cannot be mixed\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" return $this->api(self::BASE.$url, $params, self::GET);\",\"selected_text\":\"$url\",\"from\":2621,\"to\":2625,\"snippet_from\":2584,\"snippet_to\":2647,\"column_from\":38,\"column_to\":42}"},{"lineNumber":115,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedArgument","message":"Argument 2 of Phpsw\\Website\\DataFileGenerator\\MeetupApiClient::api cannot be mixed, expecting array","fullDetails":"{\"severity\":\"error\",\"line_from\":115,\"line_to\":115,\"type\":\"MixedArgument\",\"message\":\"Argument 2 of Phpsw\\\\Website\\\\DataFileGenerator\\\\MeetupApiClient::api cannot be mixed, expecting array\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" return $this->api(self::BASE.$url, $params, self::GET);\",\"selected_text\":\"$params\",\"from\":2627,\"to\":2634,\"snippet_from\":2584,\"snippet_to\":2647,\"column_from\":44,\"column_to\":51}"},{"lineNumber":135,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedAssignment","message":"Cannot assign $match to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":135,\"line_to\":135,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign $match to a mixed type\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" foreach ($matches[0] as $i => $match) {\",\"selected_text\":\"$match\",\"from\":3460,\"to\":3466,\"snippet_from\":3418,\"snippet_to\":3469,\"column_from\":43,\"column_to\":49}"},{"lineNumber":136,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedArrayOffset","message":"Cannot access value on variable $params using mixed offset","fullDetails":"{\"severity\":\"error\",\"line_from\":136,\"line_to\":136,\"type\":\"MixedArrayOffset\",\"message\":\"Cannot access value on variable $params using mixed offset\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" if (isset($params[$matches[1][$i]])) {\",\"selected_text\":\"$params[$matches[1][$i]]\",\"from\":3496,\"to\":3520,\"snippet_from\":3470,\"snippet_to\":3524,\"column_from\":27,\"column_to\":51}"},{"lineNumber":136,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedArrayOffset","message":"Cannot access value on variable $matches[1] using mixed offset","fullDetails":"{\"severity\":\"error\",\"line_from\":136,\"line_to\":136,\"type\":\"MixedArrayOffset\",\"message\":\"Cannot access value on variable $matches[1] using mixed offset\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" if (isset($params[$matches[1][$i]])) {\",\"selected_text\":\"$matches[1][$i]\",\"from\":3504,\"to\":3519,\"snippet_from\":3470,\"snippet_to\":3524,\"column_from\":35,\"column_to\":50}"},{"lineNumber":137,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedArgument","message":"Argument 1 of str_replace cannot be mixed, expecting array|string","fullDetails":"{\"severity\":\"error\",\"line_from\":137,\"line_to\":137,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of str_replace cannot be mixed, expecting array|string\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" $url = str_replace($match, $params[$matches[1][$i]], $url);\",\"selected_text\":\"$match\",\"from\":3564,\"to\":3570,\"snippet_from\":3525,\"snippet_to\":3604,\"column_from\":40,\"column_to\":46}"},{"lineNumber":137,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedArrayOffset","message":"Cannot access value on variable $params using mixed offset","fullDetails":"{\"severity\":\"error\",\"line_from\":137,\"line_to\":137,\"type\":\"MixedArrayOffset\",\"message\":\"Cannot access value on variable $params using mixed offset\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" $url = str_replace($match, $params[$matches[1][$i]], $url);\",\"selected_text\":\"$params[$matches[1][$i]]\",\"from\":3572,\"to\":3596,\"snippet_from\":3525,\"snippet_to\":3604,\"column_from\":48,\"column_to\":72}"},{"lineNumber":137,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedArgument","message":"Argument 2 of str_replace cannot be mixed, expecting array|string","fullDetails":"{\"severity\":\"error\",\"line_from\":137,\"line_to\":137,\"type\":\"MixedArgument\",\"message\":\"Argument 2 of str_replace cannot be mixed, expecting array|string\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" $url = str_replace($match, $params[$matches[1][$i]], $url);\",\"selected_text\":\"$params[$matches[1][$i]]\",\"from\":3572,\"to\":3596,\"snippet_from\":3525,\"snippet_to\":3604,\"column_from\":48,\"column_to\":72}"},{"lineNumber":137,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedArrayAccess","message":"Cannot access array value on mixed variable $matches[1]","fullDetails":"{\"severity\":\"error\",\"line_from\":137,\"line_to\":137,\"type\":\"MixedArrayAccess\",\"message\":\"Cannot access array value on mixed variable $matches[1]\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" $url = str_replace($match, $params[$matches[1][$i]], $url);\",\"selected_text\":\"$matches[1][$i]\",\"from\":3580,\"to\":3595,\"snippet_from\":3525,\"snippet_to\":3604,\"column_from\":56,\"column_to\":71}"},{"lineNumber":137,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedArrayOffset","message":"Cannot access value on variable $matches[1] using mixed offset","fullDetails":"{\"severity\":\"error\",\"line_from\":137,\"line_to\":137,\"type\":\"MixedArrayOffset\",\"message\":\"Cannot access value on variable $matches[1] using mixed offset\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" $url = str_replace($match, $params[$matches[1][$i]], $url);\",\"selected_text\":\"$matches[1][$i]\",\"from\":3580,\"to\":3595,\"snippet_from\":3525,\"snippet_to\":3604,\"column_from\":56,\"column_to\":71}"},{"lineNumber":138,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedArrayOffset","message":"Cannot access value on variable $params using mixed offset","fullDetails":"{\"severity\":\"error\",\"line_from\":138,\"line_to\":138,\"type\":\"MixedArrayOffset\",\"message\":\"Cannot access value on variable $params using mixed offset\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" unset($params[$matches[1][$i]]);\",\"selected_text\":\"$params[$matches[1][$i]]\",\"from\":3631,\"to\":3655,\"snippet_from\":3605,\"snippet_to\":3657,\"column_from\":27,\"column_to\":51}"},{"lineNumber":140,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedArrayAccess","message":"Cannot access array value on mixed variable $matches[1]","fullDetails":"{\"severity\":\"error\",\"line_from\":140,\"line_to\":140,\"type\":\"MixedArrayAccess\",\"message\":\"Cannot access array value on mixed variable $matches[1]\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" throw new \\\\Exception(\\\"Missing parameter '\\\".$matches[1][$i].\\\"' for path '\\\".$path.\\\"'.\\\");\",\"selected_text\":\"$matches[1][$i]\",\"from\":3746,\"to\":3761,\"snippet_from\":3683,\"snippet_to\":3789,\"column_from\":64,\"column_to\":79}"},{"lineNumber":140,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedArrayOffset","message":"Cannot access value on variable $matches[1] using mixed offset","fullDetails":"{\"severity\":\"error\",\"line_from\":140,\"line_to\":140,\"type\":\"MixedArrayOffset\",\"message\":\"Cannot access value on variable $matches[1] using mixed offset\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" throw new \\\\Exception(\\\"Missing parameter '\\\".$matches[1][$i].\\\"' for path '\\\".$path.\\\"'.\\\");\",\"selected_text\":\"$matches[1][$i]\",\"from\":3746,\"to\":3761,\"snippet_from\":3683,\"snippet_to\":3789,\"column_from\":64,\"column_to\":79}"},{"lineNumber":140,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedOperand","message":"Right operand cannot be mixed","fullDetails":"{\"severity\":\"error\",\"line_from\":140,\"line_to\":140,\"type\":\"MixedOperand\",\"message\":\"Right operand cannot be mixed\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" throw new \\\\Exception(\\\"Missing parameter '\\\".$matches[1][$i].\\\"' for path '\\\".$path.\\\"'.\\\");\",\"selected_text\":\"$matches[1][$i]\",\"from\":3746,\"to\":3761,\"snippet_from\":3683,\"snippet_to\":3789,\"column_from\":64,\"column_to\":79}"},{"lineNumber":157,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\DataFileGenerator\\MeetupApiClient::api does not have a return type","fullDetails":"{\"severity\":\"error\",\"line_from\":157,\"line_to\":157,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\DataFileGenerator\\\\MeetupApiClient::api does not have a return type\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" protected function api($url, $parameters, $action = self::GET)\",\"selected_text\":\"api\",\"from\":4256,\"to\":4259,\"snippet_from\":4233,\"snippet_to\":4299,\"column_from\":24,\"column_to\":27}"},{"lineNumber":157,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MissingParamType","message":"Parameter $url has no provided type","fullDetails":"{\"severity\":\"error\",\"line_from\":157,\"line_to\":157,\"type\":\"MissingParamType\",\"message\":\"Parameter $url has no provided type\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" protected function api($url, $parameters, $action = self::GET)\",\"selected_text\":\"$url\",\"from\":4260,\"to\":4264,\"snippet_from\":4233,\"snippet_to\":4299,\"column_from\":28,\"column_to\":32}"},{"lineNumber":157,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MissingParamType","message":"Parameter $action has no provided type","fullDetails":"{\"severity\":\"error\",\"line_from\":157,\"line_to\":157,\"type\":\"MissingParamType\",\"message\":\"Parameter $action has no provided type\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" protected function api($url, $parameters, $action = self::GET)\",\"selected_text\":\"$action\",\"from\":4279,\"to\":4286,\"snippet_from\":4233,\"snippet_to\":4299,\"column_from\":47,\"column_to\":54}"},{"lineNumber":191,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedArgument","message":"Argument 1 of strpos cannot be mixed, expecting string","fullDetails":"{\"severity\":\"error\",\"line_from\":191,\"line_to\":191,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of strpos cannot be mixed, expecting string\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" } elseif (0 === strpos($url, self::BASE) && in_array('access_token', $params)) {\",\"selected_text\":\"$url\",\"from\":5626,\"to\":5630,\"snippet_from\":5591,\"snippet_to\":5683,\"column_from\":36,\"column_to\":40}"},{"lineNumber":195,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedOperand","message":"Left operand cannot be mixed","fullDetails":"{\"severity\":\"error\",\"line_from\":195,\"line_to\":195,\"type\":\"MixedOperand\",\"message\":\"Left operand cannot be mixed\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" curl_setopt($ch, CURLOPT_URL, $url.(!empty($params) ? ('?'.http_build_query($params)) : ''));\",\"selected_text\":\"$url\",\"from\":5807,\"to\":5811,\"snippet_from\":5765,\"snippet_to\":5870,\"column_from\":43,\"column_to\":47}"},{"lineNumber":224,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedOperand","message":"Right operand cannot be mixed","fullDetails":"{\"severity\":\"error\",\"line_from\":224,\"line_to\":224,\"type\":\"MixedOperand\",\"message\":\"Right operand cannot be mixed\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" throw new \\\\Exception(\\\"Failed retrieving '\\\".$url.\\\"' because of connection issue: ' \\\".$error.\\\"'.\\\");\",\"selected_text\":\"$url\",\"from\":6748,\"to\":6752,\"snippet_from\":6692,\"snippet_to\":6802,\"column_from\":57,\"column_to\":61}"},{"lineNumber":228,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"InvalidScalarArgument","message":"Argument 1 of json_decode expects string, bool|string provided","fullDetails":"{\"severity\":\"error\",\"line_from\":228,\"line_to\":228,\"type\":\"InvalidScalarArgument\",\"message\":\"Argument 1 of json_decode expects string, bool|string provided\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" $this->_response = json_decode($content);\",\"selected_text\":\"$content\",\"from\":6901,\"to\":6909,\"snippet_from\":6862,\"snippet_to\":6911,\"column_from\":40,\"column_to\":48}"},{"lineNumber":229,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedAssignment","message":"Cannot assign $status to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":229,\"line_to\":229,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign $status to a mixed type\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" $status = curl_getinfo($ch, CURLINFO_HTTP_CODE);\",\"selected_text\":\"$status\",\"from\":6920,\"to\":6927,\"snippet_from\":6912,\"snippet_to\":6968,\"column_from\":9,\"column_to\":16}"},{"lineNumber":235,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $this->_response","fullDetails":"{\"severity\":\"error\",\"line_from\":235,\"line_to\":235,\"type\":\"MixedPropertyFetch\",\"message\":\"Cannot fetch property on mixed var $this->_response\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" if (isset($this->_response->error) && isset($this->_response->error_description)) {\",\"selected_text\":\"$this->_response->error\",\"from\":7162,\"to\":7185,\"snippet_from\":7140,\"snippet_to\":7235,\"column_from\":23,\"column_to\":46}"},{"lineNumber":237,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedOperand","message":"Left operand cannot be mixed","fullDetails":"{\"severity\":\"error\",\"line_from\":237,\"line_to\":237,\"type\":\"MixedOperand\",\"message\":\"Left operand cannot be mixed\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" $error = $this->_response->error.' - '.$this->_response->error_description;\",\"selected_text\":\"$this->_response->error\",\"from\":7304,\"to\":7327,\"snippet_from\":7279,\"snippet_to\":7370,\"column_from\":26,\"column_to\":49}"},{"lineNumber":237,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $this->_response","fullDetails":"{\"severity\":\"error\",\"line_from\":237,\"line_to\":237,\"type\":\"MixedPropertyFetch\",\"message\":\"Cannot fetch property on mixed var $this->_response\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" $error = $this->_response->error.' - '.$this->_response->error_description;\",\"selected_text\":\"$this->_response->error_description\",\"from\":7334,\"to\":7369,\"snippet_from\":7279,\"snippet_to\":7370,\"column_from\":56,\"column_to\":91}"},{"lineNumber":237,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedOperand","message":"Right operand cannot be mixed","fullDetails":"{\"severity\":\"error\",\"line_from\":237,\"line_to\":237,\"type\":\"MixedOperand\",\"message\":\"Right operand cannot be mixed\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" $error = $this->_response->error.' - '.$this->_response->error_description;\",\"selected_text\":\"$this->_response->error_description\",\"from\":7334,\"to\":7369,\"snippet_from\":7279,\"snippet_to\":7370,\"column_from\":56,\"column_to\":91}"},{"lineNumber":238,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $this->_response","fullDetails":"{\"severity\":\"error\",\"line_from\":238,\"line_to\":238,\"type\":\"MixedPropertyFetch\",\"message\":\"Cannot fetch property on mixed var $this->_response\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" } elseif (isset($this->_response->details) && isset($this->_response->problem) && isset($this->_response->code)) {\",\"selected_text\":\"$this->_response->details\",\"from\":7399,\"to\":7424,\"snippet_from\":7371,\"snippet_to\":7497,\"column_from\":29,\"column_to\":54}"},{"lineNumber":240,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedOperand","message":"Left operand cannot be mixed","fullDetails":"{\"severity\":\"error\",\"line_from\":240,\"line_to\":240,\"type\":\"MixedOperand\",\"message\":\"Left operand cannot be mixed\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" $error = $this->_response->code.' - '.$this->_response->problem.' - '.$this->_response->details;\",\"selected_text\":\"$this->_response->code\",\"from\":7576,\"to\":7598,\"snippet_from\":7551,\"snippet_to\":7663,\"column_from\":26,\"column_to\":48}"},{"lineNumber":240,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $this->_response","fullDetails":"{\"severity\":\"error\",\"line_from\":240,\"line_to\":240,\"type\":\"MixedPropertyFetch\",\"message\":\"Cannot fetch property on mixed var $this->_response\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" $error = $this->_response->code.' - '.$this->_response->problem.' - '.$this->_response->details;\",\"selected_text\":\"$this->_response->code\",\"from\":7576,\"to\":7598,\"snippet_from\":7551,\"snippet_to\":7663,\"column_from\":26,\"column_to\":48}"},{"lineNumber":240,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedOperand","message":"Right operand cannot be mixed","fullDetails":"{\"severity\":\"error\",\"line_from\":240,\"line_to\":240,\"type\":\"MixedOperand\",\"message\":\"Right operand cannot be mixed\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" $error = $this->_response->code.' - '.$this->_response->problem.' - '.$this->_response->details;\",\"selected_text\":\"$this->_response->problem\",\"from\":7605,\"to\":7630,\"snippet_from\":7551,\"snippet_to\":7663,\"column_from\":55,\"column_to\":80}"},{"lineNumber":242,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedOperand","message":"Right operand cannot be mixed","fullDetails":"{\"severity\":\"error\",\"line_from\":242,\"line_to\":242,\"type\":\"MixedOperand\",\"message\":\"Right operand cannot be mixed\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" $error = 'Status '.$status;\",\"selected_text\":\"$status\",\"from\":7720,\"to\":7727,\"snippet_from\":7685,\"snippet_to\":7728,\"column_from\":36,\"column_to\":43}"},{"lineNumber":245,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedOperand","message":"Right operand cannot be mixed","fullDetails":"{\"severity\":\"error\",\"line_from\":245,\"line_to\":245,\"type\":\"MixedOperand\",\"message\":\"Right operand cannot be mixed\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" throw new \\\\Exception(\\\"Failed retrieving '\\\".$url.\\\"' because of ' \\\".$error.\\\"'.\\\");\",\"selected_text\":\"$url\",\"from\":7800,\"to\":7804,\"snippet_from\":7744,\"snippet_to\":7836,\"column_from\":57,\"column_to\":61}"},{"lineNumber":272,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedOperand","message":"Right operand cannot be mixed","fullDetails":"{\"severity\":\"error\",\"line_from\":272,\"line_to\":272,\"type\":\"MixedOperand\",\"message\":\"Right operand cannot be mixed\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" throw new \\\\Exception(\\\"Cannot read response by '\\\".$url.\\\"' because of: '\\\".$error.\\\"'.\\\");\",\"selected_text\":\"$url\",\"from\":8956,\"to\":8960,\"snippet_from\":8894,\"snippet_to\":8992,\"column_from\":63,\"column_to\":67}"},{"lineNumber":372,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $this->_response","fullDetails":"{\"severity\":\"error\",\"line_from\":372,\"line_to\":372,\"type\":\"MixedPropertyFetch\",\"message\":\"Cannot fetch property on mixed var $this->_response\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" return $this->hasNext() ? $this->api($this->_response->meta->next, [], self::GET) : null;\",\"selected_text\":\"$this->_response->meta\",\"from\":11723,\"to\":11745,\"snippet_from\":11678,\"snippet_to\":11775,\"column_from\":46,\"column_to\":68}"},{"lineNumber":372,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $this->_response->meta","fullDetails":"{\"severity\":\"error\",\"line_from\":372,\"line_to\":372,\"type\":\"MixedPropertyFetch\",\"message\":\"Cannot fetch property on mixed var $this->_response->meta\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" return $this->hasNext() ? $this->api($this->_response->meta->next, [], self::GET) : null;\",\"selected_text\":\"$this->_response->meta->next\",\"from\":11723,\"to\":11751,\"snippet_from\":11678,\"snippet_to\":11775,\"column_from\":46,\"column_to\":74}"},{"lineNumber":383,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $this->_response","fullDetails":"{\"severity\":\"error\",\"line_from\":383,\"line_to\":383,\"type\":\"MixedPropertyFetch\",\"message\":\"Cannot fetch property on mixed var $this->_response\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" if (isset($this->_response->meta) && isset($this->_response->meta->next)) {\",\"selected_text\":\"$this->_response->meta\",\"from\":11981,\"to\":12003,\"snippet_from\":11963,\"snippet_to\":12046,\"column_from\":19,\"column_to\":41}"},{"lineNumber":383,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $this->_response->meta","fullDetails":"{\"severity\":\"error\",\"line_from\":383,\"line_to\":383,\"type\":\"MixedPropertyFetch\",\"message\":\"Cannot fetch property on mixed var $this->_response->meta\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" if (isset($this->_response->meta) && isset($this->_response->meta->next)) {\",\"selected_text\":\"$this->_response->meta->next\",\"from\":12014,\"to\":12042,\"snippet_from\":11963,\"snippet_to\":12046,\"column_from\":52,\"column_to\":80}"},{"lineNumber":384,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedAssignment","message":"Cannot assign $next to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":384,\"line_to\":384,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign $next to a mixed type\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" $next = $this->_response->meta->next;\",\"selected_text\":\"$next\",\"from\":12059,\"to\":12064,\"snippet_from\":12047,\"snippet_to\":12096,\"column_from\":13,\"column_to\":18}"},{"lineNumber":384,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $this->_response->meta","fullDetails":"{\"severity\":\"error\",\"line_from\":384,\"line_to\":384,\"type\":\"MixedPropertyFetch\",\"message\":\"Cannot fetch property on mixed var $this->_response->meta\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" $next = $this->_response->meta->next;\",\"selected_text\":\"$this->_response->meta->next\",\"from\":12067,\"to\":12095,\"snippet_from\":12047,\"snippet_to\":12096,\"column_from\":21,\"column_to\":49}"},{"lineNumber":385,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedArgument","message":"Argument 1 of strlen cannot be mixed, expecting string","fullDetails":"{\"severity\":\"error\",\"line_from\":385,\"line_to\":385,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of strlen cannot be mixed, expecting string\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" if (strlen($next)) {\",\"selected_text\":\"$next\",\"from\":12120,\"to\":12125,\"snippet_from\":12097,\"snippet_to\":12129,\"column_from\":24,\"column_to\":29}"},{"lineNumber":421,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MissingParamType","message":"Parameter $path has no provided type","fullDetails":"{\"severity\":\"error\",\"line_from\":421,\"line_to\":421,\"type\":\"MissingParamType\",\"message\":\"Parameter $path has no provided type\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" public function post($path, array $parameters = [])\",\"selected_text\":\"$path\",\"from\":13033,\"to\":13038,\"snippet_from\":13008,\"snippet_to\":13063,\"column_from\":26,\"column_to\":31}"},{"lineNumber":423,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedArgument","message":"Argument 1 of Phpsw\\Website\\DataFileGenerator\\MeetupApiClient::params cannot be mixed, expecting string","fullDetails":"{\"severity\":\"error\",\"line_from\":423,\"line_to\":423,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of Phpsw\\\\Website\\\\DataFileGenerator\\\\MeetupApiClient::params cannot be mixed, expecting string\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" list($url, $params) = $this->params($path, $parameters);\",\"selected_text\":\"$path\",\"from\":13114,\"to\":13119,\"snippet_from\":13070,\"snippet_to\":13134,\"column_from\":45,\"column_to\":50}"},{"lineNumber":425,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedOperand","message":"Right operand cannot be mixed","fullDetails":"{\"severity\":\"error\",\"line_from\":425,\"line_to\":425,\"type\":\"MixedOperand\",\"message\":\"Right operand cannot be mixed\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" return $this->api(self::BASE.$url, $params, self::POST);\",\"selected_text\":\"$url\",\"from\":13173,\"to\":13177,\"snippet_from\":13136,\"snippet_to\":13200,\"column_from\":38,\"column_to\":42}"},{"lineNumber":425,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedArgument","message":"Argument 2 of Phpsw\\Website\\DataFileGenerator\\MeetupApiClient::api cannot be mixed, expecting array","fullDetails":"{\"severity\":\"error\",\"line_from\":425,\"line_to\":425,\"type\":\"MixedArgument\",\"message\":\"Argument 2 of Phpsw\\\\Website\\\\DataFileGenerator\\\\MeetupApiClient::api cannot be mixed, expecting array\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" return $this->api(self::BASE.$url, $params, self::POST);\",\"selected_text\":\"$params\",\"from\":13179,\"to\":13186,\"snippet_from\":13136,\"snippet_to\":13200,\"column_from\":44,\"column_to\":51}"},{"lineNumber":470,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MissingParamType","message":"Parameter $path has no provided type","fullDetails":"{\"severity\":\"error\",\"line_from\":470,\"line_to\":470,\"type\":\"MissingParamType\",\"message\":\"Parameter $path has no provided type\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" public function delete($path, array $parameters = [])\",\"selected_text\":\"$path\",\"from\":14468,\"to\":14473,\"snippet_from\":14441,\"snippet_to\":14498,\"column_from\":28,\"column_to\":33}"},{"lineNumber":472,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedArgument","message":"Argument 1 of Phpsw\\Website\\DataFileGenerator\\MeetupApiClient::params cannot be mixed, expecting string","fullDetails":"{\"severity\":\"error\",\"line_from\":472,\"line_to\":472,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of Phpsw\\\\Website\\\\DataFileGenerator\\\\MeetupApiClient::params cannot be mixed, expecting string\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" list($url, $params) = $this->params($path, $parameters);\",\"selected_text\":\"$path\",\"from\":14549,\"to\":14554,\"snippet_from\":14505,\"snippet_to\":14569,\"column_from\":45,\"column_to\":50}"},{"lineNumber":474,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedOperand","message":"Right operand cannot be mixed","fullDetails":"{\"severity\":\"error\",\"line_from\":474,\"line_to\":474,\"type\":\"MixedOperand\",\"message\":\"Right operand cannot be mixed\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" return $this->api(self::BASE.$url, $params, self::DELETE);\",\"selected_text\":\"$url\",\"from\":14608,\"to\":14612,\"snippet_from\":14571,\"snippet_to\":14637,\"column_from\":38,\"column_to\":42}"},{"lineNumber":474,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedArgument","message":"Argument 2 of Phpsw\\Website\\DataFileGenerator\\MeetupApiClient::api cannot be mixed, expecting array","fullDetails":"{\"severity\":\"error\",\"line_from\":474,\"line_to\":474,\"type\":\"MixedArgument\",\"message\":\"Argument 2 of Phpsw\\\\Website\\\\DataFileGenerator\\\\MeetupApiClient::api cannot be mixed, expecting array\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" return $this->api(self::BASE.$url, $params, self::DELETE);\",\"selected_text\":\"$params\",\"from\":14614,\"to\":14621,\"snippet_from\":14571,\"snippet_to\":14637,\"column_from\":44,\"column_to\":51}"},{"lineNumber":489,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MissingParamType","message":"Parameter $path has no provided type","fullDetails":"{\"severity\":\"error\",\"line_from\":489,\"line_to\":489,\"type\":\"MissingParamType\",\"message\":\"Parameter $path has no provided type\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" public function put($path, array $parameters = [])\",\"selected_text\":\"$path\",\"from\":15118,\"to\":15123,\"snippet_from\":15094,\"snippet_to\":15148,\"column_from\":25,\"column_to\":30}"},{"lineNumber":491,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedArgument","message":"Argument 1 of Phpsw\\Website\\DataFileGenerator\\MeetupApiClient::params cannot be mixed, expecting string","fullDetails":"{\"severity\":\"error\",\"line_from\":491,\"line_to\":491,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of Phpsw\\\\Website\\\\DataFileGenerator\\\\MeetupApiClient::params cannot be mixed, expecting string\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" list($url, $params) = $this->params($path, $parameters);\",\"selected_text\":\"$path\",\"from\":15199,\"to\":15204,\"snippet_from\":15155,\"snippet_to\":15219,\"column_from\":45,\"column_to\":50}"},{"lineNumber":493,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedOperand","message":"Right operand cannot be mixed","fullDetails":"{\"severity\":\"error\",\"line_from\":493,\"line_to\":493,\"type\":\"MixedOperand\",\"message\":\"Right operand cannot be mixed\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" return $this->api(self::BASE.$url, $params, self::PUT);\",\"selected_text\":\"$url\",\"from\":15258,\"to\":15262,\"snippet_from\":15221,\"snippet_to\":15284,\"column_from\":38,\"column_to\":42}"},{"lineNumber":493,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MixedArgument","message":"Argument 2 of Phpsw\\Website\\DataFileGenerator\\MeetupApiClient::api cannot be mixed, expecting array","fullDetails":"{\"severity\":\"error\",\"line_from\":493,\"line_to\":493,\"type\":\"MixedArgument\",\"message\":\"Argument 2 of Phpsw\\\\Website\\\\DataFileGenerator\\\\MeetupApiClient::api cannot be mixed, expecting array\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" return $this->api(self::BASE.$url, $params, self::PUT);\",\"selected_text\":\"$params\",\"from\":15264,\"to\":15271,\"snippet_from\":15221,\"snippet_to\":15284,\"column_from\":44,\"column_to\":51}"},{"lineNumber":506,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\DataFileGenerator\\MeetupApiClient::authorize does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":506,\"line_to\":506,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\DataFileGenerator\\\\MeetupApiClient::authorize does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"snippet\":\" public function authorize(array $parameters = [])\",\"selected_text\":\"authorize\",\"from\":15915,\"to\":15924,\"snippet_from\":15895,\"snippet_to\":15948,\"column_from\":21,\"column_to\":30}"},{"lineNumber":34,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"MixedAssignment","message":"Cannot assign $result to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":34,\"line_to\":34,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign $result to a mixed type\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"snippet\":\" $result = $this->meetupAPIClient->getMembers(['member_id' => $meetupId]);\",\"selected_text\":\"$result\",\"from\":681,\"to\":688,\"snippet_from\":673,\"snippet_to\":754,\"column_from\":9,\"column_to\":16}"},{"lineNumber":35,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $result","fullDetails":"{\"severity\":\"error\",\"line_from\":35,\"line_to\":35,\"type\":\"MixedPropertyFetch\",\"message\":\"Cannot fetch property on mixed var $result\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"snippet\":\" if (1 !== count($result->results)) {\",\"selected_text\":\"$result->results\",\"from\":779,\"to\":795,\"snippet_from\":755,\"snippet_to\":799,\"column_from\":25,\"column_to\":41}"},{"lineNumber":35,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"MixedArgument","message":"Argument 1 of count cannot be mixed, expecting array|Countable","fullDetails":"{\"severity\":\"error\",\"line_from\":35,\"line_to\":35,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of count cannot be mixed, expecting array|Countable\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"snippet\":\" if (1 !== count($result->results)) {\",\"selected_text\":\"$result->results\",\"from\":779,\"to\":795,\"snippet_from\":755,\"snippet_to\":799,\"column_from\":25,\"column_to\":41}"},{"lineNumber":39,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"MixedAssignment","message":"Cannot assign $member to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":39,\"line_to\":39,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign $member to a mixed type\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"snippet\":\" $member = $result->results[0];\",\"selected_text\":\"$member\",\"from\":913,\"to\":920,\"snippet_from\":905,\"snippet_to\":943,\"column_from\":9,\"column_to\":16}"},{"lineNumber":39,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $result","fullDetails":"{\"severity\":\"error\",\"line_from\":39,\"line_to\":39,\"type\":\"MixedPropertyFetch\",\"message\":\"Cannot fetch property on mixed var $result\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"snippet\":\" $member = $result->results[0];\",\"selected_text\":\"$result->results\",\"from\":923,\"to\":939,\"snippet_from\":905,\"snippet_to\":943,\"column_from\":19,\"column_to\":35}"},{"lineNumber":39,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"MixedArrayAccess","message":"Cannot access array value on mixed variable $result->results","fullDetails":"{\"severity\":\"error\",\"line_from\":39,\"line_to\":39,\"type\":\"MixedArrayAccess\",\"message\":\"Cannot access array value on mixed variable $result->results\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"snippet\":\" $member = $result->results[0];\",\"selected_text\":\"$result->results[0]\",\"from\":923,\"to\":942,\"snippet_from\":905,\"snippet_to\":943,\"column_from\":19,\"column_to\":38}"},{"lineNumber":44,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $member","fullDetails":"{\"severity\":\"error\",\"line_from\":44,\"line_to\":44,\"type\":\"MixedPropertyFetch\",\"message\":\"Cannot fetch property on mixed var $member\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"snippet\":\" if (!empty($member->name)) {\",\"selected_text\":\"$member->name\",\"from\":1038,\"to\":1051,\"snippet_from\":1019,\"snippet_to\":1055,\"column_from\":20,\"column_to\":33}"},{"lineNumber":45,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"MixedArgument","message":"Argument 1 of Phpsw\\Website\\Entity\\Person::setName cannot be mixed, expecting string","fullDetails":"{\"severity\":\"error\",\"line_from\":45,\"line_to\":45,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of Phpsw\\\\Website\\\\Entity\\\\Person::setName cannot be mixed, expecting string\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"snippet\":\" $person->setName($member->name);\",\"selected_text\":\"$member->name\",\"from\":1085,\"to\":1098,\"snippet_from\":1056,\"snippet_to\":1100,\"column_from\":30,\"column_to\":43}"},{"lineNumber":45,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $member","fullDetails":"{\"severity\":\"error\",\"line_from\":45,\"line_to\":45,\"type\":\"MixedPropertyFetch\",\"message\":\"Cannot fetch property on mixed var $member\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"snippet\":\" $person->setName($member->name);\",\"selected_text\":\"$member->name\",\"from\":1085,\"to\":1098,\"snippet_from\":1056,\"snippet_to\":1100,\"column_from\":30,\"column_to\":43}"},{"lineNumber":48,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $member->photo","fullDetails":"{\"severity\":\"error\",\"line_from\":48,\"line_to\":48,\"type\":\"MixedPropertyFetch\",\"message\":\"Cannot fetch property on mixed var $member->photo\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"snippet\":\" if (!empty($member->photo->highres_link)) {\",\"selected_text\":\"$member->photo->highres_link\",\"from\":1131,\"to\":1159,\"snippet_from\":1112,\"snippet_to\":1163,\"column_from\":20,\"column_to\":48}"},{"lineNumber":48,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $member","fullDetails":"{\"severity\":\"error\",\"line_from\":48,\"line_to\":48,\"type\":\"MixedPropertyFetch\",\"message\":\"Cannot fetch property on mixed var $member\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"snippet\":\" if (!empty($member->photo->highres_link)) {\",\"selected_text\":\"$member->photo\",\"from\":1131,\"to\":1145,\"snippet_from\":1112,\"snippet_to\":1163,\"column_from\":20,\"column_to\":34}"},{"lineNumber":49,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"MixedArgument","message":"Argument 1 of Phpsw\\Website\\Entity\\Person::setPhotoUrl cannot be mixed, expecting string","fullDetails":"{\"severity\":\"error\",\"line_from\":49,\"line_to\":49,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of Phpsw\\\\Website\\\\Entity\\\\Person::setPhotoUrl cannot be mixed, expecting string\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"snippet\":\" $person->setPhotoUrl($member->photo->highres_link);\",\"selected_text\":\"$member->photo->highres_link\",\"from\":1197,\"to\":1225,\"snippet_from\":1164,\"snippet_to\":1227,\"column_from\":34,\"column_to\":62}"},{"lineNumber":49,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $member->photo","fullDetails":"{\"severity\":\"error\",\"line_from\":49,\"line_to\":49,\"type\":\"MixedPropertyFetch\",\"message\":\"Cannot fetch property on mixed var $member->photo\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"snippet\":\" $person->setPhotoUrl($member->photo->highres_link);\",\"selected_text\":\"$member->photo->highres_link\",\"from\":1197,\"to\":1225,\"snippet_from\":1164,\"snippet_to\":1227,\"column_from\":34,\"column_to\":62}"},{"lineNumber":49,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $member","fullDetails":"{\"severity\":\"error\",\"line_from\":49,\"line_to\":49,\"type\":\"MixedPropertyFetch\",\"message\":\"Cannot fetch property on mixed var $member\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"snippet\":\" $person->setPhotoUrl($member->photo->highres_link);\",\"selected_text\":\"$member->photo\",\"from\":1197,\"to\":1211,\"snippet_from\":1164,\"snippet_to\":1227,\"column_from\":34,\"column_to\":48}"},{"lineNumber":53,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"MixedAssignment","message":"Cannot assign $r to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":53,\"line_to\":53,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign $r to a mixed type\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"snippet\":\" $r = $this->meetupAPIClient->getProfiles(['member_id' => $meetupId, 'group_urlname' => 'php-sw']);\",\"selected_text\":\"$r\",\"from\":1352,\"to\":1354,\"snippet_from\":1344,\"snippet_to\":1450,\"column_from\":9,\"column_to\":11}"},{"lineNumber":54,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"MixedArgument","message":"Argument 1 of count cannot be mixed, expecting array|Countable","fullDetails":"{\"severity\":\"error\",\"line_from\":54,\"line_to\":54,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of count cannot be mixed, expecting array|Countable\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"snippet\":\" if (1 === count($r->results)) {\",\"selected_text\":\"$r->results\",\"from\":1475,\"to\":1486,\"snippet_from\":1451,\"snippet_to\":1490,\"column_from\":25,\"column_to\":36}"},{"lineNumber":54,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $r","fullDetails":"{\"severity\":\"error\",\"line_from\":54,\"line_to\":54,\"type\":\"MixedPropertyFetch\",\"message\":\"Cannot fetch property on mixed var $r\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"snippet\":\" if (1 === count($r->results)) {\",\"selected_text\":\"$r->results\",\"from\":1475,\"to\":1486,\"snippet_from\":1451,\"snippet_to\":1490,\"column_from\":25,\"column_to\":36}"},{"lineNumber":55,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"MixedAssignment","message":"Cannot assign $m to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":55,\"line_to\":55,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign $m to a mixed type\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"snippet\":\" $m = $r->results[0];\",\"selected_text\":\"$m\",\"from\":1503,\"to\":1505,\"snippet_from\":1491,\"snippet_to\":1523,\"column_from\":13,\"column_to\":15}"},{"lineNumber":55,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $r","fullDetails":"{\"severity\":\"error\",\"line_from\":55,\"line_to\":55,\"type\":\"MixedPropertyFetch\",\"message\":\"Cannot fetch property on mixed var $r\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"snippet\":\" $m = $r->results[0];\",\"selected_text\":\"$r->results\",\"from\":1508,\"to\":1519,\"snippet_from\":1491,\"snippet_to\":1523,\"column_from\":18,\"column_to\":29}"},{"lineNumber":55,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"MixedArrayAccess","message":"Cannot access array value on mixed variable $r->results","fullDetails":"{\"severity\":\"error\",\"line_from\":55,\"line_to\":55,\"type\":\"MixedArrayAccess\",\"message\":\"Cannot access array value on mixed variable $r->results\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"snippet\":\" $m = $r->results[0];\",\"selected_text\":\"$r->results[0]\",\"from\":1508,\"to\":1522,\"snippet_from\":1491,\"snippet_to\":1523,\"column_from\":18,\"column_to\":32}"},{"lineNumber":56,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $m","fullDetails":"{\"severity\":\"error\",\"line_from\":56,\"line_to\":56,\"type\":\"MixedPropertyFetch\",\"message\":\"Cannot fetch property on mixed var $m\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"snippet\":\" if (!empty($m->bio)) {\",\"selected_text\":\"$m->bio\",\"from\":1547,\"to\":1554,\"snippet_from\":1524,\"snippet_to\":1558,\"column_from\":24,\"column_to\":31}"},{"lineNumber":57,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $m","fullDetails":"{\"severity\":\"error\",\"line_from\":57,\"line_to\":57,\"type\":\"MixedPropertyFetch\",\"message\":\"Cannot fetch property on mixed var $m\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"snippet\":\" $person->setDescription($m->bio);\",\"selected_text\":\"$m->bio\",\"from\":1599,\"to\":1606,\"snippet_from\":1559,\"snippet_to\":1608,\"column_from\":41,\"column_to\":48}"},{"lineNumber":57,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"MixedArgument","message":"Argument 1 of Phpsw\\Website\\Entity\\Person::setDescription cannot be mixed, expecting string","fullDetails":"{\"severity\":\"error\",\"line_from\":57,\"line_to\":57,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of Phpsw\\\\Website\\\\Entity\\\\Person::setDescription cannot be mixed, expecting string\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"snippet\":\" $person->setDescription($m->bio);\",\"selected_text\":\"$m->bio\",\"from\":1599,\"to\":1606,\"snippet_from\":1559,\"snippet_to\":1608,\"column_from\":41,\"column_to\":48}"},{"lineNumber":59,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $member","fullDetails":"{\"severity\":\"error\",\"line_from\":59,\"line_to\":59,\"type\":\"MixedPropertyFetch\",\"message\":\"Cannot fetch property on mixed var $member\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"snippet\":\" } elseif (!empty($member->bio)) {\",\"selected_text\":\"$member->bio\",\"from\":1648,\"to\":1660,\"snippet_from\":1623,\"snippet_to\":1664,\"column_from\":26,\"column_to\":38}"},{"lineNumber":60,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"MixedArgument","message":"Argument 1 of Phpsw\\Website\\Entity\\Person::setDescription cannot be mixed, expecting string","fullDetails":"{\"severity\":\"error\",\"line_from\":60,\"line_to\":60,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of Phpsw\\\\Website\\\\Entity\\\\Person::setDescription cannot be mixed, expecting string\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"snippet\":\" $person->setDescription($member->bio);\",\"selected_text\":\"$member->bio\",\"from\":1701,\"to\":1713,\"snippet_from\":1665,\"snippet_to\":1715,\"column_from\":37,\"column_to\":49}"},{"lineNumber":60,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $member","fullDetails":"{\"severity\":\"error\",\"line_from\":60,\"line_to\":60,\"type\":\"MixedPropertyFetch\",\"message\":\"Cannot fetch property on mixed var $member\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"snippet\":\" $person->setDescription($member->bio);\",\"selected_text\":\"$member->bio\",\"from\":1701,\"to\":1713,\"snippet_from\":1665,\"snippet_to\":1715,\"column_from\":37,\"column_to\":49}"},{"lineNumber":63,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $member->other_services->twitter","fullDetails":"{\"severity\":\"error\",\"line_from\":63,\"line_to\":63,\"type\":\"MixedPropertyFetch\",\"message\":\"Cannot fetch property on mixed var $member->other_services->twitter\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"snippet\":\" if (!empty($member->other_services->twitter->identifier)) {\",\"selected_text\":\"$member->other_services->twitter->identifier\",\"from\":1746,\"to\":1790,\"snippet_from\":1727,\"snippet_to\":1794,\"column_from\":20,\"column_to\":64}"},{"lineNumber":63,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $member->other_services","fullDetails":"{\"severity\":\"error\",\"line_from\":63,\"line_to\":63,\"type\":\"MixedPropertyFetch\",\"message\":\"Cannot fetch property on mixed var $member->other_services\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"snippet\":\" if (!empty($member->other_services->twitter->identifier)) {\",\"selected_text\":\"$member->other_services->twitter\",\"from\":1746,\"to\":1778,\"snippet_from\":1727,\"snippet_to\":1794,\"column_from\":20,\"column_to\":52}"},{"lineNumber":63,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $member","fullDetails":"{\"severity\":\"error\",\"line_from\":63,\"line_to\":63,\"type\":\"MixedPropertyFetch\",\"message\":\"Cannot fetch property on mixed var $member\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"snippet\":\" if (!empty($member->other_services->twitter->identifier)) {\",\"selected_text\":\"$member->other_services\",\"from\":1746,\"to\":1769,\"snippet_from\":1727,\"snippet_to\":1794,\"column_from\":20,\"column_to\":43}"},{"lineNumber":64,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"MixedArgument","message":"Argument 3 of str_replace cannot be mixed, expecting array|string","fullDetails":"{\"severity\":\"error\",\"line_from\":64,\"line_to\":64,\"type\":\"MixedArgument\",\"message\":\"Argument 3 of str_replace cannot be mixed, expecting array|string\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"snippet\":\" $person->setTwitterHandle(str_replace('@', '', $member->other_services->twitter->identifier));\",\"selected_text\":\"$member->other_services->twitter->identifier\",\"from\":1854,\"to\":1898,\"snippet_from\":1795,\"snippet_to\":1901,\"column_from\":60,\"column_to\":104}"},{"lineNumber":64,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $member->other_services->twitter","fullDetails":"{\"severity\":\"error\",\"line_from\":64,\"line_to\":64,\"type\":\"MixedPropertyFetch\",\"message\":\"Cannot fetch property on mixed var $member->other_services->twitter\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"snippet\":\" $person->setTwitterHandle(str_replace('@', '', $member->other_services->twitter->identifier));\",\"selected_text\":\"$member->other_services->twitter->identifier\",\"from\":1854,\"to\":1898,\"snippet_from\":1795,\"snippet_to\":1901,\"column_from\":60,\"column_to\":104}"},{"lineNumber":64,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $member->other_services","fullDetails":"{\"severity\":\"error\",\"line_from\":64,\"line_to\":64,\"type\":\"MixedPropertyFetch\",\"message\":\"Cannot fetch property on mixed var $member->other_services\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"snippet\":\" $person->setTwitterHandle(str_replace('@', '', $member->other_services->twitter->identifier));\",\"selected_text\":\"$member->other_services->twitter\",\"from\":1854,\"to\":1886,\"snippet_from\":1795,\"snippet_to\":1901,\"column_from\":60,\"column_to\":92}"},{"lineNumber":64,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $member","fullDetails":"{\"severity\":\"error\",\"line_from\":64,\"line_to\":64,\"type\":\"MixedPropertyFetch\",\"message\":\"Cannot fetch property on mixed var $member\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"snippet\":\" $person->setTwitterHandle(str_replace('@', '', $member->other_services->twitter->identifier));\",\"selected_text\":\"$member->other_services\",\"from\":1854,\"to\":1877,\"snippet_from\":1795,\"snippet_to\":1901,\"column_from\":60,\"column_to\":83}"},{"lineNumber":67,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $member","fullDetails":"{\"severity\":\"error\",\"line_from\":67,\"line_to\":67,\"type\":\"MixedPropertyFetch\",\"message\":\"Cannot fetch property on mixed var $member\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"snippet\":\" if (!empty($member->site_url)) {\",\"selected_text\":\"$member->site_url\",\"from\":1932,\"to\":1949,\"snippet_from\":1913,\"snippet_to\":1953,\"column_from\":20,\"column_to\":37}"},{"lineNumber":68,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"MixedArgument","message":"Argument 1 of Phpsw\\Website\\Entity\\Person::setWebsiteUrl cannot be mixed, expecting string","fullDetails":"{\"severity\":\"error\",\"line_from\":68,\"line_to\":68,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of Phpsw\\\\Website\\\\Entity\\\\Person::setWebsiteUrl cannot be mixed, expecting string\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"snippet\":\" $person->setWebsiteUrl($member->site_url);\",\"selected_text\":\"$member->site_url\",\"from\":1989,\"to\":2006,\"snippet_from\":1954,\"snippet_to\":2008,\"column_from\":36,\"column_to\":53}"},{"lineNumber":68,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"MixedPropertyFetch","message":"Cannot fetch property on mixed var $member","fullDetails":"{\"severity\":\"error\",\"line_from\":68,\"line_to\":68,\"type\":\"MixedPropertyFetch\",\"message\":\"Cannot fetch property on mixed var $member\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"snippet\":\" $person->setWebsiteUrl($member->site_url);\",\"selected_text\":\"$member->site_url\",\"from\":1989,\"to\":2006,\"snippet_from\":1954,\"snippet_to\":2008,\"column_from\":36,\"column_to\":53}"},{"lineNumber":71,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"PossiblyNullArgument","message":"Argument 1 of Phpsw\\Website\\Entity\\Person::setGithubHandle cannot be null, possibly null value provided","fullDetails":"{\"severity\":\"error\",\"line_from\":71,\"line_to\":71,\"type\":\"PossiblyNullArgument\",\"message\":\"Argument 1 of Phpsw\\\\Website\\\\Entity\\\\Person::setGithubHandle cannot be null, possibly null value provided\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"snippet\":\" $person->setGithubHandle($this->guessGithub($person));\",\"selected_text\":\"$this->guessGithub($person)\",\"from\":2053,\"to\":2080,\"snippet_from\":2020,\"snippet_to\":2082,\"column_from\":34,\"column_to\":61}"},{"lineNumber":88,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"MixedArgument","message":"Argument 1 of strpos cannot be mixed, expecting string","fullDetails":"{\"severity\":\"error\",\"line_from\":88,\"line_to\":88,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of strpos cannot be mixed, expecting string\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"snippet\":\" if (false === strpos($headers[0], '404')) {\",\"selected_text\":\"$headers[0]\",\"from\":2563,\"to\":2574,\"snippet_from\":2530,\"snippet_to\":2585,\"column_from\":34,\"column_to\":45}"},{"lineNumber":96,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"MixedArgument","message":"Argument 1 of strpos cannot be mixed, expecting string","fullDetails":"{\"severity\":\"error\",\"line_from\":96,\"line_to\":96,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of strpos cannot be mixed, expecting string\",\"file_name\":\"app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"snippet\":\" if (false === strpos($headers[0], '404')) {\",\"selected_text\":\"$headers[0]\",\"from\":2899,\"to\":2910,\"snippet_from\":2866,\"snippet_to\":2921,\"column_from\":34,\"column_to\":45}"},{"lineNumber":16,"fileName":"app\/src\/Entity\/Event.php","type":"MissingConstructor","message":"Phpsw\\Website\\Entity\\Event has an uninitialized variable $this->slug, but no constructor","fullDetails":"{\"severity\":\"error\",\"line_from\":16,\"line_to\":16,\"type\":\"MissingConstructor\",\"message\":\"Phpsw\\\\Website\\\\Entity\\\\Event has an uninitialized variable $this->slug, but no constructor\",\"file_name\":\"app\\\/src\\\/Entity\\\/Event.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Event.php\",\"snippet\":\" private $slug;\",\"selected_text\":\"$slug\",\"from\":234,\"to\":239,\"snippet_from\":222,\"snippet_to\":240,\"column_from\":13,\"column_to\":18}"},{"lineNumber":87,"fileName":"app\/src\/Entity\/Event.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Event::setSlug does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":87,\"line_to\":87,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Event::setSlug does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Event.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Event.php\",\"snippet\":\" public function setSlug($slug)\",\"selected_text\":\"setSlug\",\"from\":1183,\"to\":1190,\"snippet_from\":1163,\"snippet_to\":1197,\"column_from\":21,\"column_to\":28}"},{"lineNumber":103,"fileName":"app\/src\/Entity\/Event.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Event::setMeetupId does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":103,\"line_to\":103,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Event::setMeetupId does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Event.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Event.php\",\"snippet\":\" public function setMeetupId($meetupId)\",\"selected_text\":\"setMeetupId\",\"from\":1424,\"to\":1435,\"snippet_from\":1404,\"snippet_to\":1446,\"column_from\":21,\"column_to\":32}"},{"lineNumber":119,"fileName":"app\/src\/Entity\/Event.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Event::setDate does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":119,\"line_to\":119,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Event::setDate does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Event.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Event.php\",\"snippet\":\" public function setDate($date)\",\"selected_text\":\"setDate\",\"from\":1673,\"to\":1680,\"snippet_from\":1653,\"snippet_to\":1687,\"column_from\":21,\"column_to\":28}"},{"lineNumber":155,"fileName":"app\/src\/Entity\/Event.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Event::setTitle does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":155,\"line_to\":155,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Event::setTitle does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Event.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Event.php\",\"snippet\":\" public function setTitle($title)\",\"selected_text\":\"setTitle\",\"from\":2293,\"to\":2301,\"snippet_from\":2273,\"snippet_to\":2309,\"column_from\":21,\"column_to\":29}"},{"lineNumber":171,"fileName":"app\/src\/Entity\/Event.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Event::setDescription does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":171,\"line_to\":171,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Event::setDescription does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Event.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Event.php\",\"snippet\":\" public function setDescription($description)\",\"selected_text\":\"setDescription\",\"from\":2547,\"to\":2561,\"snippet_from\":2527,\"snippet_to\":2575,\"column_from\":21,\"column_to\":35}"},{"lineNumber":187,"fileName":"app\/src\/Entity\/Event.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Event::setVenue does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":187,\"line_to\":187,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Event::setVenue does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Event.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Event.php\",\"snippet\":\" public function setVenue($venue)\",\"selected_text\":\"setVenue\",\"from\":2811,\"to\":2819,\"snippet_from\":2791,\"snippet_to\":2827,\"column_from\":21,\"column_to\":29}"},{"lineNumber":203,"fileName":"app\/src\/Entity\/Event.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Event::setPub does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":203,\"line_to\":203,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Event::setPub does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Event.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Event.php\",\"snippet\":\" public function setPub($pub)\",\"selected_text\":\"setPub\",\"from\":3045,\"to\":3051,\"snippet_from\":3025,\"snippet_to\":3057,\"column_from\":21,\"column_to\":27}"},{"lineNumber":219,"fileName":"app\/src\/Entity\/Event.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Event::setOrganisers does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":219,\"line_to\":219,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Event::setOrganisers does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Event.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Event.php\",\"snippet\":\" public function setOrganisers($organisers)\",\"selected_text\":\"setOrganisers\",\"from\":3292,\"to\":3305,\"snippet_from\":3272,\"snippet_to\":3318,\"column_from\":21,\"column_to\":34}"},{"lineNumber":235,"fileName":"app\/src\/Entity\/Event.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Event::setSponsors does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":235,\"line_to\":235,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Event::setSponsors does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Event.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Event.php\",\"snippet\":\" public function setSponsors($sponsors)\",\"selected_text\":\"setSponsors\",\"from\":3563,\"to\":3574,\"snippet_from\":3543,\"snippet_to\":3585,\"column_from\":21,\"column_to\":32}"},{"lineNumber":247,"fileName":"app\/src\/Entity\/Event.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Event::addTalk does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":247,\"line_to\":247,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Event::addTalk does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Event.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Event.php\",\"snippet\":\" public function addTalk(Talk $talk)\",\"selected_text\":\"addTalk\",\"from\":3827,\"to\":3834,\"snippet_from\":3807,\"snippet_to\":3846,\"column_from\":21,\"column_to\":28}"},{"lineNumber":18,"fileName":"app\/src\/Entity\/Location.php","type":"InvalidDocblock","message":"Phpsw\\Website\\Entity\\string; is not a valid type","fullDetails":"{\"severity\":\"error\",\"line_from\":18,\"line_to\":18,\"type\":\"InvalidDocblock\",\"message\":\"Phpsw\\\\Website\\\\Entity\\\\string; is not a valid type\",\"file_name\":\"app\\\/src\\\/Entity\\\/Location.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Location.php\",\"snippet\":\" \\\/**\\n * @var string;\\n *\\n * @Assert\\\\NotBlank()\\n * @Assert\\\\Type(\\\"string\\\")\\n *\\\/\\n private $slug;\",\"selected_text\":\"private $slug;\",\"from\":322,\"to\":336,\"snippet_from\":219,\"snippet_to\":336,\"column_from\":5,\"column_to\":19}"},{"lineNumber":26,"fileName":"app\/src\/Entity\/Location.php","type":"MissingConstructor","message":"Phpsw\\Website\\Entity\\Location has an uninitialized variable $this->name, but no constructor","fullDetails":"{\"severity\":\"error\",\"line_from\":26,\"line_to\":26,\"type\":\"MissingConstructor\",\"message\":\"Phpsw\\\\Website\\\\Entity\\\\Location has an uninitialized variable $this->name, but no constructor\",\"file_name\":\"app\\\/src\\\/Entity\\\/Location.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Location.php\",\"snippet\":\" private $name;\",\"selected_text\":\"$name\",\"from\":472,\"to\":477,\"snippet_from\":460,\"snippet_to\":478,\"column_from\":13,\"column_to\":18}"},{"lineNumber":34,"fileName":"app\/src\/Entity\/Location.php","type":"InvalidDocblock","message":"Phpsw\\Website\\Entity\\string; is not a valid type","fullDetails":"{\"severity\":\"error\",\"line_from\":34,\"line_to\":34,\"type\":\"InvalidDocblock\",\"message\":\"Phpsw\\\\Website\\\\Entity\\\\string; is not a valid type\",\"file_name\":\"app\\\/src\\\/Entity\\\/Location.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Location.php\",\"snippet\":\" \\\/**\\n * @var string;\\n *\\n * @Assert\\\\NotBlank()\\n * @Assert\\\\Type(\\\"string\\\")\\n *\\\/\\n private $address;\",\"selected_text\":\"private $address;\",\"from\":583,\"to\":600,\"snippet_from\":480,\"snippet_to\":600,\"column_from\":5,\"column_to\":22}"},{"lineNumber":42,"fileName":"app\/src\/Entity\/Location.php","type":"InvalidDocblock","message":"Phpsw\\Website\\Entity\\string; is not a valid type","fullDetails":"{\"severity\":\"error\",\"line_from\":42,\"line_to\":42,\"type\":\"InvalidDocblock\",\"message\":\"Phpsw\\\\Website\\\\Entity\\\\string; is not a valid type\",\"file_name\":\"app\\\/src\\\/Entity\\\/Location.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Location.php\",\"snippet\":\" \\\/**\\n * @var string;\\n *\\n * @Assert\\\\NotBlank()\\n * @Assert\\\\Type(\\\"string\\\")\\n *\\\/\\n private $postcode;\",\"selected_text\":\"private $postcode;\",\"from\":705,\"to\":723,\"snippet_from\":602,\"snippet_to\":723,\"column_from\":5,\"column_to\":23}"},{"lineNumber":50,"fileName":"app\/src\/Entity\/Location.php","type":"InvalidDocblock","message":"Phpsw\\Website\\Entity\\string; is not a valid type","fullDetails":"{\"severity\":\"error\",\"line_from\":50,\"line_to\":50,\"type\":\"InvalidDocblock\",\"message\":\"Phpsw\\\\Website\\\\Entity\\\\string; is not a valid type\",\"file_name\":\"app\\\/src\\\/Entity\\\/Location.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Location.php\",\"snippet\":\" \\\/**\\n * @var string;\\n *\\n * @Assert\\\\Type(\\\"string\\\")\\n * @Assert\\\\Url()\\n *\\\/\\n private $mapsUrl;\",\"selected_text\":\"private $mapsUrl;\",\"from\":823,\"to\":840,\"snippet_from\":725,\"snippet_to\":840,\"column_from\":5,\"column_to\":22}"},{"lineNumber":58,"fileName":"app\/src\/Entity\/Location.php","type":"InvalidDocblock","message":"Phpsw\\Website\\Entity\\string; is not a valid type","fullDetails":"{\"severity\":\"error\",\"line_from\":58,\"line_to\":58,\"type\":\"InvalidDocblock\",\"message\":\"Phpsw\\\\Website\\\\Entity\\\\string; is not a valid type\",\"file_name\":\"app\\\/src\\\/Entity\\\/Location.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Location.php\",\"snippet\":\" \\\/**\\n * @var string;\\n *\\n * @Assert\\\\Type(\\\"string\\\")\\n * @Assert\\\\Url()\\n *\\\/\\n private $website;\",\"selected_text\":\"private $website;\",\"from\":940,\"to\":957,\"snippet_from\":842,\"snippet_to\":957,\"column_from\":5,\"column_to\":22}"},{"lineNumber":61,"fileName":"app\/src\/Entity\/Location.php","type":"MixedInferredReturnType","message":"Could not verify return type 'string' for Phpsw\\Website\\Entity\\Location::getSlug","fullDetails":"{\"severity\":\"error\",\"line_from\":61,\"line_to\":61,\"type\":\"MixedInferredReturnType\",\"message\":\"Could not verify return type 'string' for Phpsw\\\\Website\\\\Entity\\\\Location::getSlug\",\"file_name\":\"app\\\/src\\\/Entity\\\/Location.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Location.php\",\"snippet\":\" \\\/**\\n * @return string\\n *\\\/\\n public function getSlug()\\n {\\n return $this->slug;\\n }\",\"selected_text\":\"string\",\"from\":982,\"to\":988,\"snippet_from\":959,\"snippet_to\":1066,\"column_from\":16,\"column_to\":22}"},{"lineNumber":65,"fileName":"app\/src\/Entity\/Location.php","type":"MixedReturnStatement","message":"Could not infer a return type","fullDetails":"{\"severity\":\"error\",\"line_from\":65,\"line_to\":65,\"type\":\"MixedReturnStatement\",\"message\":\"Could not infer a return type\",\"file_name\":\"app\\\/src\\\/Entity\\\/Location.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Location.php\",\"snippet\":\" return $this->slug;\",\"selected_text\":\"return $this->slug;\",\"from\":1041,\"to\":1060,\"snippet_from\":1033,\"snippet_to\":1060,\"column_from\":9,\"column_to\":28}"},{"lineNumber":71,"fileName":"app\/src\/Entity\/Location.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Location::setSlug does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":71,\"line_to\":71,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Location::setSlug does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Location.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Location.php\",\"snippet\":\" public function setSlug($slug)\",\"selected_text\":\"setSlug\",\"from\":1131,\"to\":1138,\"snippet_from\":1111,\"snippet_to\":1145,\"column_from\":21,\"column_to\":28}"},{"lineNumber":87,"fileName":"app\/src\/Entity\/Location.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Location::setName does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":87,\"line_to\":87,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Location::setName does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Location.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Location.php\",\"snippet\":\" public function setName($name)\",\"selected_text\":\"setName\",\"from\":1360,\"to\":1367,\"snippet_from\":1340,\"snippet_to\":1374,\"column_from\":21,\"column_to\":28}"},{"lineNumber":93,"fileName":"app\/src\/Entity\/Location.php","type":"MixedInferredReturnType","message":"Could not verify return type 'string' for Phpsw\\Website\\Entity\\Location::getAddress","fullDetails":"{\"severity\":\"error\",\"line_from\":93,\"line_to\":93,\"type\":\"MixedInferredReturnType\",\"message\":\"Could not verify return type 'string' for Phpsw\\\\Website\\\\Entity\\\\Location::getAddress\",\"file_name\":\"app\\\/src\\\/Entity\\\/Location.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Location.php\",\"snippet\":\" \\\/**\\n * @return string\\n *\\\/\\n public function getAddress()\\n {\\n return $this->address;\\n }\",\"selected_text\":\"string\",\"from\":1440,\"to\":1446,\"snippet_from\":1417,\"snippet_to\":1530,\"column_from\":16,\"column_to\":22}"},{"lineNumber":97,"fileName":"app\/src\/Entity\/Location.php","type":"MixedReturnStatement","message":"Could not infer a return type","fullDetails":"{\"severity\":\"error\",\"line_from\":97,\"line_to\":97,\"type\":\"MixedReturnStatement\",\"message\":\"Could not infer a return type\",\"file_name\":\"app\\\/src\\\/Entity\\\/Location.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Location.php\",\"snippet\":\" return $this->address;\",\"selected_text\":\"return $this->address;\",\"from\":1502,\"to\":1524,\"snippet_from\":1494,\"snippet_to\":1524,\"column_from\":9,\"column_to\":31}"},{"lineNumber":103,"fileName":"app\/src\/Entity\/Location.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Location::setAddress does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":103,\"line_to\":103,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Location::setAddress does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Location.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Location.php\",\"snippet\":\" public function setAddress($address)\",\"selected_text\":\"setAddress\",\"from\":1598,\"to\":1608,\"snippet_from\":1578,\"snippet_to\":1618,\"column_from\":21,\"column_to\":31}"},{"lineNumber":109,"fileName":"app\/src\/Entity\/Location.php","type":"MixedInferredReturnType","message":"Could not verify return type 'string' for Phpsw\\Website\\Entity\\Location::getPostcode","fullDetails":"{\"severity\":\"error\",\"line_from\":109,\"line_to\":109,\"type\":\"MixedInferredReturnType\",\"message\":\"Could not verify return type 'string' for Phpsw\\\\Website\\\\Entity\\\\Location::getPostcode\",\"file_name\":\"app\\\/src\\\/Entity\\\/Location.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Location.php\",\"snippet\":\" \\\/**\\n * @return string\\n *\\\/\\n public function getPostcode()\\n {\\n return $this->postcode;\\n }\",\"selected_text\":\"string\",\"from\":1690,\"to\":1696,\"snippet_from\":1667,\"snippet_to\":1782,\"column_from\":16,\"column_to\":22}"},{"lineNumber":113,"fileName":"app\/src\/Entity\/Location.php","type":"MixedReturnStatement","message":"Could not infer a return type","fullDetails":"{\"severity\":\"error\",\"line_from\":113,\"line_to\":113,\"type\":\"MixedReturnStatement\",\"message\":\"Could not infer a return type\",\"file_name\":\"app\\\/src\\\/Entity\\\/Location.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Location.php\",\"snippet\":\" return $this->postcode;\",\"selected_text\":\"return $this->postcode;\",\"from\":1753,\"to\":1776,\"snippet_from\":1745,\"snippet_to\":1776,\"column_from\":9,\"column_to\":32}"},{"lineNumber":119,"fileName":"app\/src\/Entity\/Location.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Location::setPostcode does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":119,\"line_to\":119,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Location::setPostcode does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Location.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Location.php\",\"snippet\":\" public function setPostcode($postcode)\",\"selected_text\":\"setPostcode\",\"from\":1851,\"to\":1862,\"snippet_from\":1831,\"snippet_to\":1873,\"column_from\":21,\"column_to\":32}"},{"lineNumber":125,"fileName":"app\/src\/Entity\/Location.php","type":"MixedInferredReturnType","message":"Could not verify return type 'string' for Phpsw\\Website\\Entity\\Location::getMapsUrl","fullDetails":"{\"severity\":\"error\",\"line_from\":125,\"line_to\":125,\"type\":\"MixedInferredReturnType\",\"message\":\"Could not verify return type 'string' for Phpsw\\\\Website\\\\Entity\\\\Location::getMapsUrl\",\"file_name\":\"app\\\/src\\\/Entity\\\/Location.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Location.php\",\"snippet\":\" \\\/**\\n * @return string\\n *\\\/\\n public function getMapsUrl()\\n {\\n return $this->mapsUrl;\\n }\",\"selected_text\":\"string\",\"from\":1947,\"to\":1953,\"snippet_from\":1924,\"snippet_to\":2037,\"column_from\":16,\"column_to\":22}"},{"lineNumber":129,"fileName":"app\/src\/Entity\/Location.php","type":"MixedReturnStatement","message":"Could not infer a return type","fullDetails":"{\"severity\":\"error\",\"line_from\":129,\"line_to\":129,\"type\":\"MixedReturnStatement\",\"message\":\"Could not infer a return type\",\"file_name\":\"app\\\/src\\\/Entity\\\/Location.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Location.php\",\"snippet\":\" return $this->mapsUrl;\",\"selected_text\":\"return $this->mapsUrl;\",\"from\":2009,\"to\":2031,\"snippet_from\":2001,\"snippet_to\":2031,\"column_from\":9,\"column_to\":31}"},{"lineNumber":135,"fileName":"app\/src\/Entity\/Location.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Location::setMapsUrl does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":135,\"line_to\":135,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Location::setMapsUrl does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Location.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Location.php\",\"snippet\":\" public function setMapsUrl($mapsUrl)\",\"selected_text\":\"setMapsUrl\",\"from\":2105,\"to\":2115,\"snippet_from\":2085,\"snippet_to\":2125,\"column_from\":21,\"column_to\":31}"},{"lineNumber":141,"fileName":"app\/src\/Entity\/Location.php","type":"MixedInferredReturnType","message":"Could not verify return type 'string' for Phpsw\\Website\\Entity\\Location::getWebsite","fullDetails":"{\"severity\":\"error\",\"line_from\":141,\"line_to\":141,\"type\":\"MixedInferredReturnType\",\"message\":\"Could not verify return type 'string' for Phpsw\\\\Website\\\\Entity\\\\Location::getWebsite\",\"file_name\":\"app\\\/src\\\/Entity\\\/Location.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Location.php\",\"snippet\":\" \\\/**\\n * @return string\\n *\\\/\\n public function getWebsite()\\n {\\n return $this->website;\\n }\",\"selected_text\":\"string\",\"from\":2197,\"to\":2203,\"snippet_from\":2174,\"snippet_to\":2287,\"column_from\":16,\"column_to\":22}"},{"lineNumber":145,"fileName":"app\/src\/Entity\/Location.php","type":"MixedReturnStatement","message":"Could not infer a return type","fullDetails":"{\"severity\":\"error\",\"line_from\":145,\"line_to\":145,\"type\":\"MixedReturnStatement\",\"message\":\"Could not infer a return type\",\"file_name\":\"app\\\/src\\\/Entity\\\/Location.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Location.php\",\"snippet\":\" return $this->website;\",\"selected_text\":\"return $this->website;\",\"from\":2259,\"to\":2281,\"snippet_from\":2251,\"snippet_to\":2281,\"column_from\":9,\"column_to\":31}"},{"lineNumber":151,"fileName":"app\/src\/Entity\/Location.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Location::setWebsite does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":151,\"line_to\":151,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Location::setWebsite does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Location.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Location.php\",\"snippet\":\" public function setWebsite($website)\",\"selected_text\":\"setWebsite\",\"from\":2355,\"to\":2365,\"snippet_from\":2335,\"snippet_to\":2375,\"column_from\":21,\"column_to\":31}"},{"lineNumber":22,"fileName":"app\/src\/Entity\/Person.php","type":"InvalidDocblock","message":"Phpsw\\Website\\Entity\\string; is not a valid type","fullDetails":"{\"severity\":\"error\",\"line_from\":22,\"line_to\":22,\"type\":\"InvalidDocblock\",\"message\":\"Phpsw\\\\Website\\\\Entity\\\\string; is not a valid type\",\"file_name\":\"app\\\/src\\\/Entity\\\/Person.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Person.php\",\"snippet\":\" \\\/**\\n * @var string;\\n *\\n * @Assert\\\\NotBlank()\\n * @Assert\\\\Type(\\\"string\\\")\\n *\\\/\\n private $slug;\",\"selected_text\":\"private $slug;\",\"from\":606,\"to\":620,\"snippet_from\":503,\"snippet_to\":620,\"column_from\":5,\"column_to\":19}"},{"lineNumber":30,"fileName":"app\/src\/Entity\/Person.php","type":"MissingConstructor","message":"Phpsw\\Website\\Entity\\Person has an uninitialized variable $this->name, but no constructor","fullDetails":"{\"severity\":\"error\",\"line_from\":30,\"line_to\":30,\"type\":\"MissingConstructor\",\"message\":\"Phpsw\\\\Website\\\\Entity\\\\Person has an uninitialized variable $this->name, but no constructor\",\"file_name\":\"app\\\/src\\\/Entity\\\/Person.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Person.php\",\"snippet\":\" private $name;\",\"selected_text\":\"$name\",\"from\":756,\"to\":761,\"snippet_from\":744,\"snippet_to\":762,\"column_from\":13,\"column_to\":18}"},{"lineNumber":79,"fileName":"app\/src\/Entity\/Person.php","type":"MixedInferredReturnType","message":"Could not verify return type 'string' for Phpsw\\Website\\Entity\\Person::getSlug","fullDetails":"{\"severity\":\"error\",\"line_from\":79,\"line_to\":79,\"type\":\"MixedInferredReturnType\",\"message\":\"Could not verify return type 'string' for Phpsw\\\\Website\\\\Entity\\\\Person::getSlug\",\"file_name\":\"app\\\/src\\\/Entity\\\/Person.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Person.php\",\"snippet\":\" \\\/**\\n * @return string\\n *\\\/\\n public function getSlug()\\n {\\n return $this->slug;\\n }\",\"selected_text\":\"string\",\"from\":1500,\"to\":1506,\"snippet_from\":1477,\"snippet_to\":1584,\"column_from\":16,\"column_to\":22}"},{"lineNumber":83,"fileName":"app\/src\/Entity\/Person.php","type":"MixedReturnStatement","message":"Could not infer a return type","fullDetails":"{\"severity\":\"error\",\"line_from\":83,\"line_to\":83,\"type\":\"MixedReturnStatement\",\"message\":\"Could not infer a return type\",\"file_name\":\"app\\\/src\\\/Entity\\\/Person.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Person.php\",\"snippet\":\" return $this->slug;\",\"selected_text\":\"return $this->slug;\",\"from\":1559,\"to\":1578,\"snippet_from\":1551,\"snippet_to\":1578,\"column_from\":9,\"column_to\":28}"},{"lineNumber":89,"fileName":"app\/src\/Entity\/Person.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Person::setSlug does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":89,\"line_to\":89,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Person::setSlug does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Person.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Person.php\",\"snippet\":\" public function setSlug($slug)\",\"selected_text\":\"setSlug\",\"from\":1649,\"to\":1656,\"snippet_from\":1629,\"snippet_to\":1663,\"column_from\":21,\"column_to\":28}"},{"lineNumber":105,"fileName":"app\/src\/Entity\/Person.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Person::setName does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":105,\"line_to\":105,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Person::setName does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Person.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Person.php\",\"snippet\":\" public function setName($name)\",\"selected_text\":\"setName\",\"from\":1878,\"to\":1885,\"snippet_from\":1858,\"snippet_to\":1892,\"column_from\":21,\"column_to\":28}"},{"lineNumber":121,"fileName":"app\/src\/Entity\/Person.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Person::setPhotoUrl does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":121,\"line_to\":121,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Person::setPhotoUrl does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Person.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Person.php\",\"snippet\":\" public function setPhotoUrl($photoUrl)\",\"selected_text\":\"setPhotoUrl\",\"from\":2119,\"to\":2130,\"snippet_from\":2099,\"snippet_to\":2141,\"column_from\":21,\"column_to\":32}"},{"lineNumber":137,"fileName":"app\/src\/Entity\/Person.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Person::setDescription does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":137,\"line_to\":137,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Person::setDescription does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Person.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Person.php\",\"snippet\":\" public function setDescription($description)\",\"selected_text\":\"setDescription\",\"from\":2385,\"to\":2399,\"snippet_from\":2365,\"snippet_to\":2413,\"column_from\":21,\"column_to\":35}"},{"lineNumber":153,"fileName":"app\/src\/Entity\/Person.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Person::setTwitterHandle does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":153,\"line_to\":153,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Person::setTwitterHandle does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Person.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Person.php\",\"snippet\":\" public function setTwitterHandle($twitterHandle)\",\"selected_text\":\"setTwitterHandle\",\"from\":2669,\"to\":2685,\"snippet_from\":2649,\"snippet_to\":2701,\"column_from\":21,\"column_to\":37}"},{"lineNumber":169,"fileName":"app\/src\/Entity\/Person.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Person::setGithubHandle does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":169,\"line_to\":169,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Person::setGithubHandle does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Person.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Person.php\",\"snippet\":\" public function setGithubHandle($githubHandle)\",\"selected_text\":\"setGithubHandle\",\"from\":2958,\"to\":2973,\"snippet_from\":2938,\"snippet_to\":2988,\"column_from\":21,\"column_to\":36}"},{"lineNumber":185,"fileName":"app\/src\/Entity\/Person.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Person::setWebsiteUrl does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":185,\"line_to\":185,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Person::setWebsiteUrl does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Person.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Person.php\",\"snippet\":\" public function setWebsiteUrl($websiteUrl)\",\"selected_text\":\"setWebsiteUrl\",\"from\":3237,\"to\":3250,\"snippet_from\":3217,\"snippet_to\":3263,\"column_from\":21,\"column_to\":34}"},{"lineNumber":201,"fileName":"app\/src\/Entity\/Person.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Person::setMeetupId does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":201,\"line_to\":201,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Person::setMeetupId does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Person.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Person.php\",\"snippet\":\" public function setMeetupId($meetupId)\",\"selected_text\":\"setMeetupId\",\"from\":3496,\"to\":3507,\"snippet_from\":3476,\"snippet_to\":3518,\"column_from\":21,\"column_to\":32}"},{"lineNumber":213,"fileName":"app\/src\/Entity\/Person.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Person::addTalk does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":213,\"line_to\":213,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Person::addTalk does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Person.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Person.php\",\"snippet\":\" public function addTalk(Talk $talk)\",\"selected_text\":\"addTalk\",\"from\":3764,\"to\":3771,\"snippet_from\":3744,\"snippet_to\":3783,\"column_from\":21,\"column_to\":28}"},{"lineNumber":25,"fileName":"app\/src\/Entity\/Sponsor.php","type":"MissingConstructor","message":"Phpsw\\Website\\Entity\\Sponsor has an uninitialized variable $this->slug, but no constructor","fullDetails":"{\"severity\":\"error\",\"line_from\":25,\"line_to\":25,\"type\":\"MissingConstructor\",\"message\":\"Phpsw\\\\Website\\\\Entity\\\\Sponsor has an uninitialized variable $this->slug, but no constructor\",\"file_name\":\"app\\\/src\\\/Entity\\\/Sponsor.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Sponsor.php\",\"snippet\":\" private $slug;\",\"selected_text\":\"$slug\",\"from\":391,\"to\":396,\"snippet_from\":379,\"snippet_to\":397,\"column_from\":13,\"column_to\":18}"},{"lineNumber":77,"fileName":"app\/src\/Entity\/Sponsor.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Sponsor::setSlug does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":77,\"line_to\":77,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Sponsor::setSlug does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Sponsor.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Sponsor.php\",\"snippet\":\" public function setSlug($slug)\",\"selected_text\":\"setSlug\",\"from\":1207,\"to\":1214,\"snippet_from\":1187,\"snippet_to\":1221,\"column_from\":21,\"column_to\":28}"},{"lineNumber":93,"fileName":"app\/src\/Entity\/Sponsor.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Sponsor::setName does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":93,\"line_to\":93,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Sponsor::setName does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Sponsor.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Sponsor.php\",\"snippet\":\" public function setName($name)\",\"selected_text\":\"setName\",\"from\":1436,\"to\":1443,\"snippet_from\":1416,\"snippet_to\":1450,\"column_from\":21,\"column_to\":28}"},{"lineNumber":109,"fileName":"app\/src\/Entity\/Sponsor.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Sponsor::setLogoUrl does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":109,\"line_to\":109,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Sponsor::setLogoUrl does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Sponsor.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Sponsor.php\",\"snippet\":\" public function setLogoUrl($logoUrl)\",\"selected_text\":\"setLogoUrl\",\"from\":1674,\"to\":1684,\"snippet_from\":1654,\"snippet_to\":1694,\"column_from\":21,\"column_to\":31}"},{"lineNumber":125,"fileName":"app\/src\/Entity\/Sponsor.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Sponsor::setWebsiteUrl does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":125,\"line_to\":125,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Sponsor::setWebsiteUrl does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Sponsor.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Sponsor.php\",\"snippet\":\" public function setWebsiteUrl($websiteUrl)\",\"selected_text\":\"setWebsiteUrl\",\"from\":1933,\"to\":1946,\"snippet_from\":1913,\"snippet_to\":1959,\"column_from\":21,\"column_to\":34}"},{"lineNumber":141,"fileName":"app\/src\/Entity\/Sponsor.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Sponsor::setSponsorType does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":141,\"line_to\":141,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Sponsor::setSponsorType does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Sponsor.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Sponsor.php\",\"snippet\":\" public function setSponsorType(string $sponsorType)\",\"selected_text\":\"setSponsorType\",\"from\":2207,\"to\":2221,\"snippet_from\":2187,\"snippet_to\":2242,\"column_from\":21,\"column_to\":35}"},{"lineNumber":157,"fileName":"app\/src\/Entity\/Sponsor.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Sponsor::setDescription does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":157,\"line_to\":157,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Sponsor::setDescription does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Sponsor.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Sponsor.php\",\"snippet\":\" public function setDescription(string $description)\",\"selected_text\":\"setDescription\",\"from\":2492,\"to\":2506,\"snippet_from\":2472,\"snippet_to\":2527,\"column_from\":21,\"column_to\":35}"},{"lineNumber":15,"fileName":"app\/src\/Entity\/Talk.php","type":"MissingConstructor","message":"Phpsw\\Website\\Entity\\Talk has an uninitialized variable $this->slug, but no constructor","fullDetails":"{\"severity\":\"error\",\"line_from\":15,\"line_to\":15,\"type\":\"MissingConstructor\",\"message\":\"Phpsw\\\\Website\\\\Entity\\\\Talk has an uninitialized variable $this->slug, but no constructor\",\"file_name\":\"app\\\/src\\\/Entity\\\/Talk.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Talk.php\",\"snippet\":\" private $slug;\",\"selected_text\":\"$slug\",\"from\":219,\"to\":224,\"snippet_from\":207,\"snippet_to\":225,\"column_from\":13,\"column_to\":18}"},{"lineNumber":86,"fileName":"app\/src\/Entity\/Talk.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Talk::setSlug does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":86,\"line_to\":86,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Talk::setSlug does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Talk.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Talk.php\",\"snippet\":\" public function setSlug($slug)\",\"selected_text\":\"setSlug\",\"from\":1226,\"to\":1233,\"snippet_from\":1206,\"snippet_to\":1240,\"column_from\":21,\"column_to\":28}"},{"lineNumber":102,"fileName":"app\/src\/Entity\/Talk.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Talk::setTitle does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":102,\"line_to\":102,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Talk::setTitle does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Talk.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Talk.php\",\"snippet\":\" public function setTitle($title)\",\"selected_text\":\"setTitle\",\"from\":1458,\"to\":1466,\"snippet_from\":1438,\"snippet_to\":1474,\"column_from\":21,\"column_to\":29}"},{"lineNumber":118,"fileName":"app\/src\/Entity\/Talk.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Talk::setAbstract does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":118,\"line_to\":118,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Talk::setAbstract does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Talk.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Talk.php\",\"snippet\":\" public function setAbstract($abstract)\",\"selected_text\":\"setAbstract\",\"from\":1703,\"to\":1714,\"snippet_from\":1683,\"snippet_to\":1725,\"column_from\":21,\"column_to\":32}"},{"lineNumber":134,"fileName":"app\/src\/Entity\/Talk.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Talk::setEvent does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":134,\"line_to\":134,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Talk::setEvent does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Talk.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Talk.php\",\"snippet\":\" public function setEvent($event)\",\"selected_text\":\"setEvent\",\"from\":1949,\"to\":1957,\"snippet_from\":1929,\"snippet_to\":1965,\"column_from\":21,\"column_to\":29}"},{"lineNumber":151,"fileName":"app\/src\/Entity\/Talk.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Talk::setSlidesUrl does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":151,\"line_to\":151,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Talk::setSlidesUrl does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Talk.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Talk.php\",\"snippet\":\" public function setSlidesUrl($slidesUrl)\",\"selected_text\":\"setSlidesUrl\",\"from\":2229,\"to\":2241,\"snippet_from\":2209,\"snippet_to\":2253,\"column_from\":21,\"column_to\":33}"},{"lineNumber":167,"fileName":"app\/src\/Entity\/Talk.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Talk::setJoindinUrl does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":167,\"line_to\":167,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Talk::setJoindinUrl does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Talk.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Talk.php\",\"snippet\":\" public function setJoindinUrl($joindinUrl)\",\"selected_text\":\"setJoindinUrl\",\"from\":2496,\"to\":2509,\"snippet_from\":2476,\"snippet_to\":2522,\"column_from\":21,\"column_to\":34}"},{"lineNumber":183,"fileName":"app\/src\/Entity\/Talk.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Talk::setVideoUrl does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":183,\"line_to\":183,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Talk::setVideoUrl does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Talk.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Talk.php\",\"snippet\":\" public function setVideoUrl($videoUrl)\",\"selected_text\":\"setVideoUrl\",\"from\":2761,\"to\":2772,\"snippet_from\":2741,\"snippet_to\":2783,\"column_from\":21,\"column_to\":32}"},{"lineNumber":199,"fileName":"app\/src\/Entity\/Talk.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Talk::setSpeakers does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":199,\"line_to\":199,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Talk::setSpeakers does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Talk.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Talk.php\",\"snippet\":\" public function setSpeakers($speakers)\",\"selected_text\":\"setSpeakers\",\"from\":3022,\"to\":3033,\"snippet_from\":3002,\"snippet_to\":3044,\"column_from\":21,\"column_to\":32}"},{"lineNumber":220,"fileName":"app\/src\/Entity\/Talk.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\Talk::setShowcase does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":220,\"line_to\":220,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\Talk::setShowcase does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/Talk.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/Talk.php\",\"snippet\":\" public function setShowcase(bool $showcase)\",\"selected_text\":\"setShowcase\",\"from\":3492,\"to\":3503,\"snippet_from\":3472,\"snippet_to\":3519,\"column_from\":21,\"column_to\":32}"},{"lineNumber":18,"fileName":"app\/src\/Entity\/WebsiteInfo.php","type":"MissingConstructor","message":"Phpsw\\Website\\Entity\\WebsiteInfo has an uninitialized variable $this->emailAddress, but no constructor","fullDetails":"{\"severity\":\"error\",\"line_from\":18,\"line_to\":18,\"type\":\"MissingConstructor\",\"message\":\"Phpsw\\\\Website\\\\Entity\\\\WebsiteInfo has an uninitialized variable $this->emailAddress, but no constructor\",\"file_name\":\"app\\\/src\\\/Entity\\\/WebsiteInfo.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/WebsiteInfo.php\",\"snippet\":\" private $emailAddress;\",\"selected_text\":\"$emailAddress\",\"from\":275,\"to\":288,\"snippet_from\":263,\"snippet_to\":289,\"column_from\":13,\"column_to\":26}"},{"lineNumber":32,"fileName":"app\/src\/Entity\/WebsiteInfo.php","type":"InvalidDocblock","message":"Phpsw\\Website\\Entity\\string; is not a valid type","fullDetails":"{\"severity\":\"error\",\"line_from\":32,\"line_to\":32,\"type\":\"InvalidDocblock\",\"message\":\"Phpsw\\\\Website\\\\Entity\\\\string; is not a valid type\",\"file_name\":\"app\\\/src\\\/Entity\\\/WebsiteInfo.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/WebsiteInfo.php\",\"snippet\":\" \\\/**\\n * @var string;\\n *\\n * @Assert\\\\NotBlank()\\n * @Assert\\\\Type(\\\"string\\\")\\n *\\\/\\n private $slug;\",\"selected_text\":\"private $slug;\",\"from\":491,\"to\":505,\"snippet_from\":388,\"snippet_to\":505,\"column_from\":5,\"column_to\":19}"},{"lineNumber":58,"fileName":"app\/src\/Entity\/WebsiteInfo.php","type":"MixedInferredReturnType","message":"Could not verify return type 'string' for Phpsw\\Website\\Entity\\WebsiteInfo::getSlug","fullDetails":"{\"severity\":\"error\",\"line_from\":58,\"line_to\":58,\"type\":\"MixedInferredReturnType\",\"message\":\"Could not verify return type 'string' for Phpsw\\\\Website\\\\Entity\\\\WebsiteInfo::getSlug\",\"file_name\":\"app\\\/src\\\/Entity\\\/WebsiteInfo.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/WebsiteInfo.php\",\"snippet\":\" \\\/**\\n * @return string\\n *\\\/\\n public function getSlug()\\n {\\n return $this->slug;\\n }\",\"selected_text\":\"string\",\"from\":877,\"to\":883,\"snippet_from\":854,\"snippet_to\":961,\"column_from\":16,\"column_to\":22}"},{"lineNumber":62,"fileName":"app\/src\/Entity\/WebsiteInfo.php","type":"MixedReturnStatement","message":"Could not infer a return type","fullDetails":"{\"severity\":\"error\",\"line_from\":62,\"line_to\":62,\"type\":\"MixedReturnStatement\",\"message\":\"Could not infer a return type\",\"file_name\":\"app\\\/src\\\/Entity\\\/WebsiteInfo.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/WebsiteInfo.php\",\"snippet\":\" return $this->slug;\",\"selected_text\":\"return $this->slug;\",\"from\":936,\"to\":955,\"snippet_from\":928,\"snippet_to\":955,\"column_from\":9,\"column_to\":28}"},{"lineNumber":68,"fileName":"app\/src\/Entity\/WebsiteInfo.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\WebsiteInfo::setSlug does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":68,\"line_to\":68,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\WebsiteInfo::setSlug does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/WebsiteInfo.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/WebsiteInfo.php\",\"snippet\":\" public function setSlug($slug)\",\"selected_text\":\"setSlug\",\"from\":1026,\"to\":1033,\"snippet_from\":1006,\"snippet_to\":1040,\"column_from\":21,\"column_to\":28}"},{"lineNumber":84,"fileName":"app\/src\/Entity\/WebsiteInfo.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\WebsiteInfo::setOrganisers does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":84,\"line_to\":84,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\WebsiteInfo::setOrganisers does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/WebsiteInfo.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/WebsiteInfo.php\",\"snippet\":\" public function setOrganisers($organisers)\",\"selected_text\":\"setOrganisers\",\"from\":1277,\"to\":1290,\"snippet_from\":1257,\"snippet_to\":1303,\"column_from\":21,\"column_to\":34}"},{"lineNumber":100,"fileName":"app\/src\/Entity\/WebsiteInfo.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\WebsiteInfo::setSponsors does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":100,\"line_to\":100,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\WebsiteInfo::setSponsors does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/WebsiteInfo.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/WebsiteInfo.php\",\"snippet\":\" public function setSponsors($sponsors)\",\"selected_text\":\"setSponsors\",\"from\":1548,\"to\":1559,\"snippet_from\":1528,\"snippet_to\":1570,\"column_from\":21,\"column_to\":32}"},{"lineNumber":116,"fileName":"app\/src\/Entity\/WebsiteInfo.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\WebsiteInfo::setEmailAddress does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":116,\"line_to\":116,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\WebsiteInfo::setEmailAddress does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/WebsiteInfo.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/WebsiteInfo.php\",\"snippet\":\" public function setEmailAddress($emailAddress)\",\"selected_text\":\"setEmailAddress\",\"from\":1817,\"to\":1832,\"snippet_from\":1797,\"snippet_to\":1847,\"column_from\":21,\"column_to\":36}"},{"lineNumber":122,"fileName":"app\/src\/Entity\/WebsiteInfo.php","type":"MixedInferredReturnType","message":"Could not verify return type 'string' for Phpsw\\Website\\Entity\\WebsiteInfo::getMeetupUrl","fullDetails":"{\"severity\":\"error\",\"line_from\":122,\"line_to\":122,\"type\":\"MixedInferredReturnType\",\"message\":\"Could not verify return type 'string' for Phpsw\\\\Website\\\\Entity\\\\WebsiteInfo::getMeetupUrl\",\"file_name\":\"app\\\/src\\\/Entity\\\/WebsiteInfo.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/WebsiteInfo.php\",\"snippet\":\" \\\/**\\n * @return string\\n *\\\/\\n public function getMeetupUrl()\\n {\\n return $this->meetupUrl;\\n }\",\"selected_text\":\"string\",\"from\":1929,\"to\":1935,\"snippet_from\":1906,\"snippet_to\":2023,\"column_from\":16,\"column_to\":22}"},{"lineNumber":126,"fileName":"app\/src\/Entity\/WebsiteInfo.php","type":"MixedReturnStatement","message":"Could not infer a return type","fullDetails":"{\"severity\":\"error\",\"line_from\":126,\"line_to\":126,\"type\":\"MixedReturnStatement\",\"message\":\"Could not infer a return type\",\"file_name\":\"app\\\/src\\\/Entity\\\/WebsiteInfo.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/WebsiteInfo.php\",\"snippet\":\" return $this->meetupUrl;\",\"selected_text\":\"return $this->meetupUrl;\",\"from\":1993,\"to\":2017,\"snippet_from\":1985,\"snippet_to\":2017,\"column_from\":9,\"column_to\":33}"},{"lineNumber":132,"fileName":"app\/src\/Entity\/WebsiteInfo.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\WebsiteInfo::setMeetupUrl does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":132,\"line_to\":132,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\WebsiteInfo::setMeetupUrl does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/WebsiteInfo.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/WebsiteInfo.php\",\"snippet\":\" public function setMeetupUrl($meetupUrl)\",\"selected_text\":\"setMeetupUrl\",\"from\":2093,\"to\":2105,\"snippet_from\":2073,\"snippet_to\":2117,\"column_from\":21,\"column_to\":33}"},{"lineNumber":148,"fileName":"app\/src\/Entity\/WebsiteInfo.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Entity\\WebsiteInfo::setFriends does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":148,\"line_to\":148,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Entity\\\\WebsiteInfo::setFriends does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Entity\\\/WebsiteInfo.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Entity\\\/WebsiteInfo.php\",\"snippet\":\" public function setFriends($friends)\",\"selected_text\":\"setFriends\",\"from\":2349,\"to\":2359,\"snippet_from\":2329,\"snippet_to\":2369,\"column_from\":21,\"column_to\":31}"},{"lineNumber":12,"fileName":"app\/src\/Importer\/EntityImporter\/EntityImporter.php","type":"MissingPropertyType","message":"Property Phpsw\\Website\\Importer\\EntityImporter\\EntityImporter::$repository does not have a declared type","fullDetails":"{\"severity\":\"error\",\"line_from\":12,\"line_to\":12,\"type\":\"MissingPropertyType\",\"message\":\"Property Phpsw\\\\Website\\\\Importer\\\\EntityImporter\\\\EntityImporter::$repository does not have a declared type\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/EntityImporter.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/EntityImporter.php\",\"snippet\":\" private $repository;\",\"selected_text\":\"$repository\",\"from\":322,\"to\":333,\"snippet_from\":310,\"snippet_to\":334,\"column_from\":13,\"column_to\":24}"},{"lineNumber":35,"fileName":"app\/src\/Importer\/EntityImporter\/EntityImporter.php","type":"MissingParamType","message":"Parameter $repository has no provided type","fullDetails":"{\"severity\":\"error\",\"line_from\":35,\"line_to\":35,\"type\":\"MissingParamType\",\"message\":\"Parameter $repository has no provided type\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/EntityImporter.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/EntityImporter.php\",\"snippet\":\" $repository,\",\"selected_text\":\"$repository\",\"from\":761,\"to\":772,\"snippet_from\":753,\"snippet_to\":773,\"column_from\":9,\"column_to\":20}"},{"lineNumber":48,"fileName":"app\/src\/Importer\/EntityImporter\/EntityImporter.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Importer\\EntityImporter\\EntityImporter::importEntity does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":48,\"line_to\":48,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Importer\\\\EntityImporter\\\\EntityImporter::importEntity does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/EntityImporter.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/EntityImporter.php\",\"snippet\":\" public function importEntity(string $slug, array $entityData)\",\"selected_text\":\"importEntity\",\"from\":1030,\"to\":1042,\"snippet_from\":1010,\"snippet_to\":1075,\"column_from\":21,\"column_to\":33}"},{"lineNumber":50,"fileName":"app\/src\/Importer\/EntityImporter\/EntityImporter.php","type":"MixedAssignment","message":"Cannot assign $entity to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":50,\"line_to\":50,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign $entity to a mixed type\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/EntityImporter.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/EntityImporter.php\",\"snippet\":\" $entity = $this->convertDataToEntity($slug, $entityData);\",\"selected_text\":\"$entity\",\"from\":1090,\"to\":1097,\"snippet_from\":1082,\"snippet_to\":1147,\"column_from\":9,\"column_to\":16}"},{"lineNumber":51,"fileName":"app\/src\/Importer\/EntityImporter\/EntityImporter.php","type":"MixedMethodCall","message":"Cannot call method on a mixed variable $this->repository","fullDetails":"{\"severity\":\"error\",\"line_from\":51,\"line_to\":51,\"type\":\"MixedMethodCall\",\"message\":\"Cannot call method on a mixed variable $this->repository\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/EntityImporter.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/EntityImporter.php\",\"snippet\":\" $this->repository->persist($entity);\",\"selected_text\":\"persist\",\"from\":1175,\"to\":1182,\"snippet_from\":1148,\"snippet_to\":1192,\"column_from\":28,\"column_to\":35}"},{"lineNumber":54,"fileName":"app\/src\/Importer\/EntityImporter\/EntityImporter.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Importer\\EntityImporter\\EntityImporter::convertDataToEntity does not have a return type","fullDetails":"{\"severity\":\"error\",\"line_from\":54,\"line_to\":54,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Importer\\\\EntityImporter\\\\EntityImporter::convertDataToEntity does not have a return type\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/EntityImporter.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/EntityImporter.php\",\"snippet\":\" private function convertDataToEntity(string $slug, array $entityData)\",\"selected_text\":\"convertDataToEntity\",\"from\":1221,\"to\":1240,\"snippet_from\":1200,\"snippet_to\":1273,\"column_from\":22,\"column_to\":41}"},{"lineNumber":67,"fileName":"app\/src\/Importer\/EntityImporter\/EntityImporter.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Importer\\EntityImporter\\EntityImporter::handleInvalidForm does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":67,\"line_to\":67,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Importer\\\\EntityImporter\\\\EntityImporter::handleInvalidForm does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/EntityImporter.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/EntityImporter.php\",\"snippet\":\" private function handleInvalidForm(string $slug, FormInterface $form)\",\"selected_text\":\"handleInvalidForm\",\"from\":1584,\"to\":1601,\"snippet_from\":1563,\"snippet_to\":1636,\"column_from\":22,\"column_to\":39}"},{"lineNumber":73,"fileName":"app\/src\/Importer\/EntityImporter\/EntityImporter.php","type":"PossiblyNullArgument","message":"Argument 1 of Phpsw\\Website\\Importer\\ValidationError::__construct cannot be null, possibly null value provided","fullDetails":"{\"severity\":\"error\",\"line_from\":73,\"line_to\":73,\"type\":\"PossiblyNullArgument\",\"message\":\"Argument 1 of Phpsw\\\\Website\\\\Importer\\\\ValidationError::__construct cannot be null, possibly null value provided\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/EntityImporter.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/EntityImporter.php\",\"snippet\":\" $form->getConfig()->getDataClass(),\",\"selected_text\":\"$form->getConfig()->getDataClass()\",\"from\":1800,\"to\":1834,\"snippet_from\":1784,\"snippet_to\":1835,\"column_from\":17,\"column_to\":51}"},{"lineNumber":75,"fileName":"app\/src\/Importer\/EntityImporter\/EntityImporter.php","type":"MixedArgument","message":"Argument 3 of Phpsw\\Website\\Importer\\ValidationError::__construct cannot be mixed, expecting string","fullDetails":"{\"severity\":\"error\",\"line_from\":75,\"line_to\":75,\"type\":\"MixedArgument\",\"message\":\"Argument 3 of Phpsw\\\\Website\\\\Importer\\\\ValidationError::__construct cannot be mixed, expecting string\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/EntityImporter.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/EntityImporter.php\",\"snippet\":\" $error->getOrigin()->getName(),\",\"selected_text\":\"$error->getOrigin()->getName()\",\"from\":1875,\"to\":1905,\"snippet_from\":1859,\"snippet_to\":1906,\"column_from\":17,\"column_to\":47}"},{"lineNumber":75,"fileName":"app\/src\/Importer\/EntityImporter\/EntityImporter.php","type":"PossiblyUndefinedMethod","message":"Method Symfony\\Component\\Form\\FormErrorIterator::getorigin does not exist","fullDetails":"{\"severity\":\"error\",\"line_from\":75,\"line_to\":75,\"type\":\"PossiblyUndefinedMethod\",\"message\":\"Method Symfony\\\\Component\\\\Form\\\\FormErrorIterator::getorigin does not exist\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/EntityImporter.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/EntityImporter.php\",\"snippet\":\" $error->getOrigin()->getName(),\",\"selected_text\":\"getOrigin\",\"from\":1883,\"to\":1892,\"snippet_from\":1859,\"snippet_to\":1906,\"column_from\":25,\"column_to\":34}"},{"lineNumber":76,"fileName":"app\/src\/Importer\/EntityImporter\/EntityImporter.php","type":"MixedArgument","message":"Argument 4 of Phpsw\\Website\\Importer\\ValidationError::__construct cannot be mixed, expecting string","fullDetails":"{\"severity\":\"error\",\"line_from\":76,\"line_to\":76,\"type\":\"MixedArgument\",\"message\":\"Argument 4 of Phpsw\\\\Website\\\\Importer\\\\ValidationError::__construct cannot be mixed, expecting string\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/EntityImporter.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/EntityImporter.php\",\"snippet\":\" $error->getMessage()\",\"selected_text\":\"$error->getMessage()\",\"from\":1923,\"to\":1943,\"snippet_from\":1907,\"snippet_to\":1943,\"column_from\":17,\"column_to\":37}"},{"lineNumber":76,"fileName":"app\/src\/Importer\/EntityImporter\/EntityImporter.php","type":"PossiblyUndefinedMethod","message":"Method Symfony\\Component\\Form\\FormErrorIterator::getmessage does not exist","fullDetails":"{\"severity\":\"error\",\"line_from\":76,\"line_to\":76,\"type\":\"PossiblyUndefinedMethod\",\"message\":\"Method Symfony\\\\Component\\\\Form\\\\FormErrorIterator::getmessage does not exist\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/EntityImporter.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/EntityImporter.php\",\"snippet\":\" $error->getMessage()\",\"selected_text\":\"getMessage\",\"from\":1931,\"to\":1941,\"snippet_from\":1907,\"snippet_to\":1943,\"column_from\":25,\"column_to\":35}"},{"lineNumber":12,"fileName":"app\/src\/Importer\/EntityImporter\/Form\/AbstractEntityCollectionTransformer.php","type":"MissingPropertyType","message":"Property Phpsw\\Website\\Importer\\EntityImporter\\Form\\AbstractEntityCollectionTransformer::$entityRepository does not have a declared type","fullDetails":"{\"severity\":\"error\",\"line_from\":12,\"line_to\":12,\"type\":\"MissingPropertyType\",\"message\":\"Property Phpsw\\\\Website\\\\Importer\\\\EntityImporter\\\\Form\\\\AbstractEntityCollectionTransformer::$entityRepository does not have a declared type\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/AbstractEntityCollectionTransformer.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/AbstractEntityCollectionTransformer.php\",\"snippet\":\" private $entityRepository;\",\"selected_text\":\"$entityRepository\",\"from\":310,\"to\":327,\"snippet_from\":298,\"snippet_to\":328,\"column_from\":13,\"column_to\":30}"},{"lineNumber":19,"fileName":"app\/src\/Importer\/EntityImporter\/Form\/AbstractEntityCollectionTransformer.php","type":"MissingParamType","message":"Parameter $entityRepository has no provided type","fullDetails":"{\"severity\":\"error\",\"line_from\":19,\"line_to\":19,\"type\":\"MissingParamType\",\"message\":\"Parameter $entityRepository has no provided type\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/AbstractEntityCollectionTransformer.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/AbstractEntityCollectionTransformer.php\",\"snippet\":\" public function __construct($entityRepository)\",\"selected_text\":\"$entityRepository\",\"from\":473,\"to\":490,\"snippet_from\":441,\"snippet_to\":491,\"column_from\":33,\"column_to\":50}"},{"lineNumber":36,"fileName":"app\/src\/Importer\/EntityImporter\/Form\/AbstractEntityCollectionTransformer.php","type":"MixedAssignment","message":"Cannot assign $entity to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":36,\"line_to\":36,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign $entity to a mixed type\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/AbstractEntityCollectionTransformer.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/AbstractEntityCollectionTransformer.php\",\"snippet\":\" foreach ($value as $entity) {\",\"selected_text\":\"$entity\",\"from\":851,\"to\":858,\"snippet_from\":824,\"snippet_to\":861,\"column_from\":28,\"column_to\":35}"},{"lineNumber":37,"fileName":"app\/src\/Importer\/EntityImporter\/Form\/AbstractEntityCollectionTransformer.php","type":"MixedAssignment","message":"Cannot assign to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":37,\"line_to\":37,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign to a mixed type\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/AbstractEntityCollectionTransformer.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/AbstractEntityCollectionTransformer.php\",\"snippet\":\" $slugs[] = $entity->getSlug();\",\"selected_text\":\"$slugs[]\",\"from\":874,\"to\":882,\"snippet_from\":862,\"snippet_to\":904,\"column_from\":13,\"column_to\":21}"},{"lineNumber":37,"fileName":"app\/src\/Importer\/EntityImporter\/Form\/AbstractEntityCollectionTransformer.php","type":"MixedMethodCall","message":"Cannot call method on a mixed variable $entity","fullDetails":"{\"severity\":\"error\",\"line_from\":37,\"line_to\":37,\"type\":\"MixedMethodCall\",\"message\":\"Cannot call method on a mixed variable $entity\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/AbstractEntityCollectionTransformer.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/AbstractEntityCollectionTransformer.php\",\"snippet\":\" $slugs[] = $entity->getSlug();\",\"selected_text\":\"getSlug\",\"from\":894,\"to\":901,\"snippet_from\":862,\"snippet_to\":904,\"column_from\":33,\"column_to\":40}"},{"lineNumber":52,"fileName":"app\/src\/Importer\/EntityImporter\/Form\/AbstractEntityCollectionTransformer.php","type":"MixedAssignment","message":"Cannot assign $slug to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":52,\"line_to\":52,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign $slug to a mixed type\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/AbstractEntityCollectionTransformer.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/AbstractEntityCollectionTransformer.php\",\"snippet\":\" foreach ($value as $slug) {\",\"selected_text\":\"$slug\",\"from\":1227,\"to\":1232,\"snippet_from\":1196,\"snippet_to\":1235,\"column_from\":32,\"column_to\":37}"},{"lineNumber":53,"fileName":"app\/src\/Importer\/EntityImporter\/Form\/AbstractEntityCollectionTransformer.php","type":"MixedAssignment","message":"Cannot assign $entity to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":53,\"line_to\":53,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign $entity to a mixed type\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/AbstractEntityCollectionTransformer.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/AbstractEntityCollectionTransformer.php\",\"snippet\":\" $entity = $this->entityRepository->findById($slug);\",\"selected_text\":\"$entity\",\"from\":1252,\"to\":1259,\"snippet_from\":1236,\"snippet_to\":1303,\"column_from\":17,\"column_to\":24}"},{"lineNumber":53,"fileName":"app\/src\/Importer\/EntityImporter\/Form\/AbstractEntityCollectionTransformer.php","type":"MixedMethodCall","message":"Cannot call method on a mixed variable $this->entityRepository","fullDetails":"{\"severity\":\"error\",\"line_from\":53,\"line_to\":53,\"type\":\"MixedMethodCall\",\"message\":\"Cannot call method on a mixed variable $this->entityRepository\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/AbstractEntityCollectionTransformer.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/AbstractEntityCollectionTransformer.php\",\"snippet\":\" $entity = $this->entityRepository->findById($slug);\",\"selected_text\":\"findById\",\"from\":1287,\"to\":1295,\"snippet_from\":1236,\"snippet_to\":1303,\"column_from\":52,\"column_to\":60}"},{"lineNumber":56,"fileName":"app\/src\/Importer\/EntityImporter\/Form\/AbstractEntityCollectionTransformer.php","type":"MixedAssignment","message":"Cannot assign to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":56,\"line_to\":56,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign to a mixed type\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/AbstractEntityCollectionTransformer.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/AbstractEntityCollectionTransformer.php\",\"snippet\":\" $entities[] = $entity;\",\"selected_text\":\"$entities[]\",\"from\":1365,\"to\":1376,\"snippet_from\":1345,\"snippet_to\":1387,\"column_from\":21,\"column_to\":32}"},{"lineNumber":12,"fileName":"app\/src\/Importer\/EntityImporter\/Form\/AbstractEntityTransformer.php","type":"MissingPropertyType","message":"Property Phpsw\\Website\\Importer\\EntityImporter\\Form\\AbstractEntityTransformer::$entityRepository does not have a declared type","fullDetails":"{\"severity\":\"error\",\"line_from\":12,\"line_to\":12,\"type\":\"MissingPropertyType\",\"message\":\"Property Phpsw\\\\Website\\\\Importer\\\\EntityImporter\\\\Form\\\\AbstractEntityTransformer::$entityRepository does not have a declared type\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/AbstractEntityTransformer.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/AbstractEntityTransformer.php\",\"snippet\":\" private $entityRepository;\",\"selected_text\":\"$entityRepository\",\"from\":288,\"to\":305,\"snippet_from\":276,\"snippet_to\":306,\"column_from\":13,\"column_to\":30}"},{"lineNumber":19,"fileName":"app\/src\/Importer\/EntityImporter\/Form\/AbstractEntityTransformer.php","type":"MissingParamType","message":"Parameter $entityRepository has no provided type","fullDetails":"{\"severity\":\"error\",\"line_from\":19,\"line_to\":19,\"type\":\"MissingParamType\",\"message\":\"Parameter $entityRepository has no provided type\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/AbstractEntityTransformer.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/AbstractEntityTransformer.php\",\"snippet\":\" public function __construct($entityRepository)\",\"selected_text\":\"$entityRepository\",\"from\":433,\"to\":450,\"snippet_from\":401,\"snippet_to\":451,\"column_from\":33,\"column_to\":50}"},{"lineNumber":35,"fileName":"app\/src\/Importer\/EntityImporter\/Form\/AbstractEntityTransformer.php","type":"MixedMethodCall","message":"Cannot call method on a mixed variable $value","fullDetails":"{\"severity\":\"error\",\"line_from\":35,\"line_to\":35,\"type\":\"MixedMethodCall\",\"message\":\"Cannot call method on a mixed variable $value\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/AbstractEntityTransformer.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/AbstractEntityTransformer.php\",\"snippet\":\" return $value->getSlug();\",\"selected_text\":\"getSlug\",\"from\":741,\"to\":748,\"snippet_from\":718,\"snippet_to\":751,\"column_from\":24,\"column_to\":31}"},{"lineNumber":49,"fileName":"app\/src\/Importer\/EntityImporter\/Form\/AbstractEntityTransformer.php","type":"MixedMethodCall","message":"Cannot call method on a mixed variable $this->entityRepository","fullDetails":"{\"severity\":\"error\",\"line_from\":49,\"line_to\":49,\"type\":\"MixedMethodCall\",\"message\":\"Cannot call method on a mixed variable $this->entityRepository\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/AbstractEntityTransformer.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/AbstractEntityTransformer.php\",\"snippet\":\" return $this->entityRepository->findById($value);\",\"selected_text\":\"findById\",\"from\":997,\"to\":1005,\"snippet_from\":957,\"snippet_to\":1014,\"column_from\":41,\"column_to\":49}"},{"lineNumber":26,"fileName":"app\/src\/Importer\/EntityImporter\/Form\/DateTransformer.php","type":"MixedMethodCall","message":"Cannot call method on a mixed variable $value","fullDetails":"{\"severity\":\"error\",\"line_from\":26,\"line_to\":26,\"type\":\"MixedMethodCall\",\"message\":\"Cannot call method on a mixed variable $value\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/DateTransformer.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/DateTransformer.php\",\"snippet\":\" return $value->format('Y-m');\",\"selected_text\":\"format\",\"from\":617,\"to\":623,\"snippet_from\":594,\"snippet_to\":631,\"column_from\":24,\"column_to\":30}"},{"lineNumber":36,"fileName":"app\/src\/Importer\/EntityImporter\/Form\/DateTransformer.php","type":"MixedArgument","message":"Argument 1 of strtotime cannot be mixed, expecting string","fullDetails":"{\"severity\":\"error\",\"line_from\":36,\"line_to\":36,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of strtotime cannot be mixed, expecting string\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/DateTransformer.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/DateTransformer.php\",\"snippet\":\" $timestamp = strtotime($value);\",\"selected_text\":\"$value\",\"from\":825,\"to\":831,\"snippet_from\":794,\"snippet_to\":833,\"column_from\":32,\"column_to\":38}"},{"lineNumber":25,"fileName":"app\/src\/Importer\/EntityImporter\/Form\/DependencyInjectionExtension.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Importer\\EntityImporter\\Form\\DependencyInjectionExtension::addFormType does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":25,\"line_to\":25,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Importer\\\\EntityImporter\\\\Form\\\\DependencyInjectionExtension::addFormType does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/DependencyInjectionExtension.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/DependencyInjectionExtension.php\",\"snippet\":\" public function addFormType(string $entityFqcn, AbstractType $formType)\",\"selected_text\":\"addFormType\",\"from\":672,\"to\":683,\"snippet_from\":652,\"snippet_to\":727,\"column_from\":21,\"column_to\":32}"},{"lineNumber":33,"fileName":"app\/src\/Importer\/EntityImporter\/Form\/DependencyInjectionExtension.php","type":"MixedInferredReturnType","message":"Could not verify return type 'Symfony\\Component\\Form\\FormTypeInterface' for Phpsw\\Website\\Importer\\EntityImporter\\Form\\DependencyInjectionExtension::getType","fullDetails":"{\"severity\":\"error\",\"line_from\":33,\"line_to\":33,\"type\":\"MixedInferredReturnType\",\"message\":\"Could not verify return type 'Symfony\\\\Component\\\\Form\\\\FormTypeInterface' for Phpsw\\\\Website\\\\Importer\\\\EntityImporter\\\\Form\\\\DependencyInjectionExtension::getType\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/DependencyInjectionExtension.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/DependencyInjectionExtension.php\",\"snippet\":\" public function getType($name)\",\"selected_text\":\"getType\",\"from\":845,\"to\":852,\"snippet_from\":825,\"snippet_to\":859,\"column_from\":21,\"column_to\":28}"},{"lineNumber":41,"fileName":"app\/src\/Importer\/EntityImporter\/Form\/EventTransformer.php","type":"MixedMethodCall","message":"Cannot call method on a mixed variable $value","fullDetails":"{\"severity\":\"error\",\"line_from\":41,\"line_to\":41,\"type\":\"MixedMethodCall\",\"message\":\"Cannot call method on a mixed variable $value\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/EventTransformer.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/EventTransformer.php\",\"snippet\":\" return $value->getId();\",\"selected_text\":\"getId\",\"from\":945,\"to\":950,\"snippet_from\":922,\"snippet_to\":953,\"column_from\":24,\"column_to\":29}"},{"lineNumber":55,"fileName":"app\/src\/Importer\/EntityImporter\/Form\/EventTransformer.php","type":"UndefinedMethod","message":"Method Phpsw\\Website\\Repository\\EventRepositoryInterface::findbyid does not exist","fullDetails":"{\"severity\":\"error\",\"line_from\":55,\"line_to\":55,\"type\":\"UndefinedMethod\",\"message\":\"Method Phpsw\\\\Website\\\\Repository\\\\EventRepositoryInterface::findbyid does not exist\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/EventTransformer.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/EventTransformer.php\",\"snippet\":\" return $this->entityRepository->findById($value);\",\"selected_text\":\"findById\",\"from\":1199,\"to\":1207,\"snippet_from\":1159,\"snippet_to\":1216,\"column_from\":41,\"column_to\":49}"},{"lineNumber":49,"fileName":"app\/src\/Importer\/EntityImporter\/Form\/EventType.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Importer\\EntityImporter\\Form\\EventType::buildForm does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":49,\"line_to\":49,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Importer\\\\EntityImporter\\\\Form\\\\EventType::buildForm does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/EventType.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/EventType.php\",\"snippet\":\" public function buildForm(FormBuilderInterface $builder, array $options)\",\"selected_text\":\"buildForm\",\"from\":1281,\"to\":1290,\"snippet_from\":1261,\"snippet_to\":1337,\"column_from\":21,\"column_to\":30}"},{"lineNumber":71,"fileName":"app\/src\/Importer\/EntityImporter\/Form\/EventType.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Importer\\EntityImporter\\Form\\EventType::configureOptions does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":71,\"line_to\":71,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Importer\\\\EntityImporter\\\\Form\\\\EventType::configureOptions does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/EventType.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/EventType.php\",\"snippet\":\" public function configureOptions(OptionsResolver $resolver)\",\"selected_text\":\"configureOptions\",\"from\":2424,\"to\":2440,\"snippet_from\":2404,\"snippet_to\":2467,\"column_from\":21,\"column_to\":37}"},{"lineNumber":16,"fileName":"app\/src\/Importer\/EntityImporter\/Form\/LocationType.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Importer\\EntityImporter\\Form\\LocationType::buildForm does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":16,\"line_to\":16,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Importer\\\\EntityImporter\\\\Form\\\\LocationType::buildForm does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/LocationType.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/LocationType.php\",\"snippet\":\" public function buildForm(FormBuilderInterface $builder, array $options)\",\"selected_text\":\"buildForm\",\"from\":399,\"to\":408,\"snippet_from\":379,\"snippet_to\":455,\"column_from\":21,\"column_to\":30}"},{"lineNumber":29,"fileName":"app\/src\/Importer\/EntityImporter\/Form\/LocationType.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Importer\\EntityImporter\\Form\\LocationType::configureOptions does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":29,\"line_to\":29,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Importer\\\\EntityImporter\\\\Form\\\\LocationType::configureOptions does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/LocationType.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/LocationType.php\",\"snippet\":\" public function configureOptions(OptionsResolver $resolver)\",\"selected_text\":\"configureOptions\",\"from\":896,\"to\":912,\"snippet_from\":876,\"snippet_to\":939,\"column_from\":21,\"column_to\":37}"},{"lineNumber":17,"fileName":"app\/src\/Importer\/EntityImporter\/Form\/PersonType.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Importer\\EntityImporter\\Form\\PersonType::buildForm does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":17,\"line_to\":17,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Importer\\\\EntityImporter\\\\Form\\\\PersonType::buildForm does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/PersonType.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/PersonType.php\",\"snippet\":\" public function buildForm(FormBuilderInterface $builder, array $options)\",\"selected_text\":\"buildForm\",\"from\":455,\"to\":464,\"snippet_from\":435,\"snippet_to\":511,\"column_from\":21,\"column_to\":30}"},{"lineNumber":32,"fileName":"app\/src\/Importer\/EntityImporter\/Form\/PersonType.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Importer\\EntityImporter\\Form\\PersonType::configureOptions does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":32,\"line_to\":32,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Importer\\\\EntityImporter\\\\Form\\\\PersonType::configureOptions does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/PersonType.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/PersonType.php\",\"snippet\":\" public function configureOptions(OptionsResolver $resolver)\",\"selected_text\":\"configureOptions\",\"from\":1188,\"to\":1204,\"snippet_from\":1168,\"snippet_to\":1231,\"column_from\":21,\"column_to\":37}"},{"lineNumber":16,"fileName":"app\/src\/Importer\/EntityImporter\/Form\/SponsorType.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Importer\\EntityImporter\\Form\\SponsorType::buildForm does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":16,\"line_to\":16,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Importer\\\\EntityImporter\\\\Form\\\\SponsorType::buildForm does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/SponsorType.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/SponsorType.php\",\"snippet\":\" public function buildForm(FormBuilderInterface $builder, array $options)\",\"selected_text\":\"buildForm\",\"from\":397,\"to\":406,\"snippet_from\":377,\"snippet_to\":453,\"column_from\":21,\"column_to\":30}"},{"lineNumber":29,"fileName":"app\/src\/Importer\/EntityImporter\/Form\/SponsorType.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Importer\\EntityImporter\\Form\\SponsorType::configureOptions does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":29,\"line_to\":29,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Importer\\\\EntityImporter\\\\Form\\\\SponsorType::configureOptions does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/SponsorType.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/SponsorType.php\",\"snippet\":\" public function configureOptions(OptionsResolver $resolver)\",\"selected_text\":\"configureOptions\",\"from\":941,\"to\":957,\"snippet_from\":921,\"snippet_to\":984,\"column_from\":21,\"column_to\":37}"},{"lineNumber":40,"fileName":"app\/src\/Importer\/EntityImporter\/Form\/TalkType.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Importer\\EntityImporter\\Form\\TalkType::buildForm does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":40,\"line_to\":40,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Importer\\\\EntityImporter\\\\Form\\\\TalkType::buildForm does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/TalkType.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/TalkType.php\",\"snippet\":\" public function buildForm(FormBuilderInterface $builder, array $options)\",\"selected_text\":\"buildForm\",\"from\":1050,\"to\":1059,\"snippet_from\":1030,\"snippet_to\":1106,\"column_from\":21,\"column_to\":30}"},{"lineNumber":59,"fileName":"app\/src\/Importer\/EntityImporter\/Form\/TalkType.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Importer\\EntityImporter\\Form\\TalkType::configureOptions does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":59,\"line_to\":59,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Importer\\\\EntityImporter\\\\Form\\\\TalkType::configureOptions does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/TalkType.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/TalkType.php\",\"snippet\":\" public function configureOptions(OptionsResolver $resolver)\",\"selected_text\":\"configureOptions\",\"from\":1970,\"to\":1986,\"snippet_from\":1950,\"snippet_to\":2013,\"column_from\":21,\"column_to\":37}"},{"lineNumber":39,"fileName":"app\/src\/Importer\/EntityImporter\/Form\/WebsiteInfoType.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Importer\\EntityImporter\\Form\\WebsiteInfoType::buildForm does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":39,\"line_to\":39,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Importer\\\\EntityImporter\\\\Form\\\\WebsiteInfoType::buildForm does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/WebsiteInfoType.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/WebsiteInfoType.php\",\"snippet\":\" public function buildForm(FormBuilderInterface $builder, array $options)\",\"selected_text\":\"buildForm\",\"from\":1029,\"to\":1038,\"snippet_from\":1009,\"snippet_to\":1085,\"column_from\":21,\"column_to\":30}"},{"lineNumber":64,"fileName":"app\/src\/Importer\/EntityImporter\/Form\/WebsiteInfoType.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Importer\\EntityImporter\\Form\\WebsiteInfoType::configureOptions does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":64,\"line_to\":64,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Importer\\\\EntityImporter\\\\Form\\\\WebsiteInfoType::configureOptions does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/WebsiteInfoType.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/WebsiteInfoType.php\",\"snippet\":\" public function configureOptions(OptionsResolver $resolver)\",\"selected_text\":\"configureOptions\",\"from\":1929,\"to\":1945,\"snippet_from\":1909,\"snippet_to\":1972,\"column_from\":21,\"column_to\":37}"},{"lineNumber":42,"fileName":"app\/src\/Importer\/Importer.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Importer\\Importer::addImporter does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":42,\"line_to\":42,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Importer\\\\Importer::addImporter does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Importer\\\/Importer.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/Importer.php\",\"snippet\":\" public function addImporter(EntityImporterInterface $entityImporterInterface, string $directory, int $order)\",\"selected_text\":\"addImporter\",\"from\":1048,\"to\":1059,\"snippet_from\":1028,\"snippet_to\":1140,\"column_from\":21,\"column_to\":32}"},{"lineNumber":56,"fileName":"app\/src\/Importer\/Importer.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Importer\\Importer::import does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":56,\"line_to\":56,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Importer\\\\Importer::import does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Importer\\\/Importer.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/Importer.php\",\"snippet\":\" public function import()\",\"selected_text\":\"import\",\"from\":1470,\"to\":1476,\"snippet_from\":1450,\"snippet_to\":1478,\"column_from\":21,\"column_to\":27}"},{"lineNumber":59,"fileName":"app\/src\/Importer\/Importer.php","type":"MissingClosureReturnType","message":"Closure does not have a return type, expecting int","fullDetails":"{\"severity\":\"error\",\"line_from\":59,\"line_to\":59,\"type\":\"MissingClosureReturnType\",\"message\":\"Closure does not have a return type, expecting int\",\"file_name\":\"app\\\/src\\\/Importer\\\/Importer.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/Importer.php\",\"snippet\":\" usort($this->entityImporterMappings, function ($a, $b) {\",\"selected_text\":\"function ($a, $b) {\",\"from\":1559,\"to\":1578,\"snippet_from\":1514,\"snippet_to\":1578,\"column_from\":46,\"column_to\":65}"},{"lineNumber":59,"fileName":"app\/src\/Importer\/Importer.php","type":"MissingClosureParamType","message":"Parameter $a has no provided type","fullDetails":"{\"severity\":\"error\",\"line_from\":59,\"line_to\":59,\"type\":\"MissingClosureParamType\",\"message\":\"Parameter $a has no provided type\",\"file_name\":\"app\\\/src\\\/Importer\\\/Importer.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/Importer.php\",\"snippet\":\" usort($this->entityImporterMappings, function ($a, $b) {\",\"selected_text\":\"$a\",\"from\":1569,\"to\":1571,\"snippet_from\":1514,\"snippet_to\":1578,\"column_from\":56,\"column_to\":58}"},{"lineNumber":59,"fileName":"app\/src\/Importer\/Importer.php","type":"MissingClosureParamType","message":"Parameter $b has no provided type","fullDetails":"{\"severity\":\"error\",\"line_from\":59,\"line_to\":59,\"type\":\"MissingClosureParamType\",\"message\":\"Parameter $b has no provided type\",\"file_name\":\"app\\\/src\\\/Importer\\\/Importer.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/Importer.php\",\"snippet\":\" usort($this->entityImporterMappings, function ($a, $b) {\",\"selected_text\":\"$b\",\"from\":1573,\"to\":1575,\"snippet_from\":1514,\"snippet_to\":1578,\"column_from\":60,\"column_to\":62}"},{"lineNumber":60,"fileName":"app\/src\/Importer\/Importer.php","type":"MixedArrayOffset","message":"Cannot access value on variable $a using mixed offset","fullDetails":"{\"severity\":\"error\",\"line_from\":60,\"line_to\":60,\"type\":\"MixedArrayOffset\",\"message\":\"Cannot access value on variable $a using mixed offset\",\"file_name\":\"app\\\/src\\\/Importer\\\/Importer.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/Importer.php\",\"snippet\":\" return $a[ORDER] <=> $b[ORDER];\",\"selected_text\":\"$a[ORDER]\",\"from\":1598,\"to\":1607,\"snippet_from\":1579,\"snippet_to\":1622,\"column_from\":20,\"column_to\":29}"},{"lineNumber":60,"fileName":"app\/src\/Importer\/Importer.php","type":"MixedArrayAccess","message":"Cannot access array value on mixed variable $a","fullDetails":"{\"severity\":\"error\",\"line_from\":60,\"line_to\":60,\"type\":\"MixedArrayAccess\",\"message\":\"Cannot access array value on mixed variable $a\",\"file_name\":\"app\\\/src\\\/Importer\\\/Importer.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/Importer.php\",\"snippet\":\" return $a[ORDER] <=> $b[ORDER];\",\"selected_text\":\"$a[ORDER]\",\"from\":1598,\"to\":1607,\"snippet_from\":1579,\"snippet_to\":1622,\"column_from\":20,\"column_to\":29}"},{"lineNumber":60,"fileName":"app\/src\/Importer\/Importer.php","type":"UndefinedConstant","message":"Const ORDER is not defined","fullDetails":"{\"severity\":\"error\",\"line_from\":60,\"line_to\":60,\"type\":\"UndefinedConstant\",\"message\":\"Const ORDER is not defined\",\"file_name\":\"app\\\/src\\\/Importer\\\/Importer.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/Importer.php\",\"snippet\":\" return $a[ORDER] <=> $b[ORDER];\",\"selected_text\":\"ORDER\",\"from\":1601,\"to\":1606,\"snippet_from\":1579,\"snippet_to\":1622,\"column_from\":23,\"column_to\":28}"},{"lineNumber":60,"fileName":"app\/src\/Importer\/Importer.php","type":"MixedArrayAccess","message":"Cannot access array value on mixed variable $b","fullDetails":"{\"severity\":\"error\",\"line_from\":60,\"line_to\":60,\"type\":\"MixedArrayAccess\",\"message\":\"Cannot access array value on mixed variable $b\",\"file_name\":\"app\\\/src\\\/Importer\\\/Importer.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/Importer.php\",\"snippet\":\" return $a[ORDER] <=> $b[ORDER];\",\"selected_text\":\"$b[ORDER]\",\"from\":1612,\"to\":1621,\"snippet_from\":1579,\"snippet_to\":1622,\"column_from\":34,\"column_to\":43}"},{"lineNumber":60,"fileName":"app\/src\/Importer\/Importer.php","type":"MixedArrayOffset","message":"Cannot access value on variable $b using mixed offset","fullDetails":"{\"severity\":\"error\",\"line_from\":60,\"line_to\":60,\"type\":\"MixedArrayOffset\",\"message\":\"Cannot access value on variable $b using mixed offset\",\"file_name\":\"app\\\/src\\\/Importer\\\/Importer.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/Importer.php\",\"snippet\":\" return $a[ORDER] <=> $b[ORDER];\",\"selected_text\":\"$b[ORDER]\",\"from\":1612,\"to\":1621,\"snippet_from\":1579,\"snippet_to\":1622,\"column_from\":34,\"column_to\":43}"},{"lineNumber":64,"fileName":"app\/src\/Importer\/Importer.php","type":"MixedAssignment","message":"Cannot assign $entityImporterMapping to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":64,\"line_to\":64,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign $entityImporterMapping to a mixed type\",\"file_name\":\"app\\\/src\\\/Importer\\\/Importer.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/Importer.php\",\"snippet\":\" foreach ($this->entityImporterMappings as $entityImporterMapping) {\",\"selected_text\":\"$entityImporterMapping\",\"from\":1729,\"to\":1751,\"snippet_from\":1679,\"snippet_to\":1754,\"column_from\":51,\"column_to\":73}"},{"lineNumber":65,"fileName":"app\/src\/Importer\/Importer.php","type":"MixedArgument","message":"Argument 1 of Phpsw\\Website\\Importer\\DirectoryReader\\DirectoryReader::getFileNameMappings cannot be mixed, expecting string","fullDetails":"{\"severity\":\"error\",\"line_from\":65,\"line_to\":65,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of Phpsw\\\\Website\\\\Importer\\\\DirectoryReader\\\\DirectoryReader::getFileNameMappings cannot be mixed, expecting string\",\"file_name\":\"app\\\/src\\\/Importer\\\/Importer.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/Importer.php\",\"snippet\":\" $files = $this->directoryReader->getFileNameMappings($entityImporterMapping[self::DIRECTORY]);\",\"selected_text\":\"$entityImporterMapping[self::DIRECTORY]\",\"from\":1820,\"to\":1859,\"snippet_from\":1755,\"snippet_to\":1861,\"column_from\":66,\"column_to\":105}"},{"lineNumber":65,"fileName":"app\/src\/Importer\/Importer.php","type":"MixedArrayAccess","message":"Cannot access array value on mixed variable $entityImporterMapping","fullDetails":"{\"severity\":\"error\",\"line_from\":65,\"line_to\":65,\"type\":\"MixedArrayAccess\",\"message\":\"Cannot access array value on mixed variable $entityImporterMapping\",\"file_name\":\"app\\\/src\\\/Importer\\\/Importer.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/Importer.php\",\"snippet\":\" $files = $this->directoryReader->getFileNameMappings($entityImporterMapping[self::DIRECTORY]);\",\"selected_text\":\"$entityImporterMapping[self::DIRECTORY]\",\"from\":1820,\"to\":1859,\"snippet_from\":1755,\"snippet_to\":1861,\"column_from\":66,\"column_to\":105}"},{"lineNumber":66,"fileName":"app\/src\/Importer\/Importer.php","type":"MixedAssignment","message":"Cannot assign $slug to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":66,\"line_to\":66,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign $slug to a mixed type\",\"file_name\":\"app\\\/src\\\/Importer\\\/Importer.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/Importer.php\",\"snippet\":\" foreach ($files as $filename => $slug) {\",\"selected_text\":\"$slug\",\"from\":1906,\"to\":1911,\"snippet_from\":1862,\"snippet_to\":1914,\"column_from\":45,\"column_to\":50}"},{"lineNumber":67,"fileName":"app\/src\/Importer\/Importer.php","type":"MixedArgument","message":"Argument 1 of file_get_contents cannot be mixed, expecting string","fullDetails":"{\"severity\":\"error\",\"line_from\":67,\"line_to\":67,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of file_get_contents cannot be mixed, expecting string\",\"file_name\":\"app\\\/src\\\/Importer\\\/Importer.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/Importer.php\",\"snippet\":\" $fileContents = file_get_contents($filename);\",\"selected_text\":\"$filename\",\"from\":1965,\"to\":1974,\"snippet_from\":1915,\"snippet_to\":1976,\"column_from\":51,\"column_to\":60}"},{"lineNumber":68,"fileName":"app\/src\/Importer\/Importer.php","type":"MixedAssignment","message":"Cannot assign $entityData to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":68,\"line_to\":68,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign $entityData to a mixed type\",\"file_name\":\"app\\\/src\\\/Importer\\\/Importer.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/Importer.php\",\"snippet\":\" $entityData = json_decode($fileContents, true);\",\"selected_text\":\"$entityData\",\"from\":1993,\"to\":2004,\"snippet_from\":1977,\"snippet_to\":2040,\"column_from\":17,\"column_to\":28}"},{"lineNumber":69,"fileName":"app\/src\/Importer\/Importer.php","type":"MixedArrayAccess","message":"Cannot access array value on mixed variable $entityImporterMapping","fullDetails":"{\"severity\":\"error\",\"line_from\":69,\"line_to\":69,\"type\":\"MixedArrayAccess\",\"message\":\"Cannot access array value on mixed variable $entityImporterMapping\",\"file_name\":\"app\\\/src\\\/Importer\\\/Importer.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/Importer.php\",\"snippet\":\" $entityImporterMapping[self::IMPORTER]->importEntity($slug, $entityData);\",\"selected_text\":\"$entityImporterMapping[self::IMPORTER]\",\"from\":2057,\"to\":2095,\"snippet_from\":2041,\"snippet_to\":2130,\"column_from\":17,\"column_to\":55}"},{"lineNumber":69,"fileName":"app\/src\/Importer\/Importer.php","type":"MixedMethodCall","message":"Cannot call method on a mixed variable ","fullDetails":"{\"severity\":\"error\",\"line_from\":69,\"line_to\":69,\"type\":\"MixedMethodCall\",\"message\":\"Cannot call method on a mixed variable \",\"file_name\":\"app\\\/src\\\/Importer\\\/Importer.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/Importer.php\",\"snippet\":\" $entityImporterMapping[self::IMPORTER]->importEntity($slug, $entityData);\",\"selected_text\":\"importEntity\",\"from\":2097,\"to\":2109,\"snippet_from\":2041,\"snippet_to\":2130,\"column_from\":57,\"column_to\":69}"},{"lineNumber":27,"fileName":"app\/src\/Importer\/ValidateDataCommand.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Importer\\ValidateDataCommand::configure does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":27,\"line_to\":27,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Importer\\\\ValidateDataCommand::configure does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Importer\\\/ValidateDataCommand.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/ValidateDataCommand.php\",\"snippet\":\" protected function configure()\",\"selected_text\":\"configure\",\"from\":553,\"to\":562,\"snippet_from\":530,\"snippet_to\":564,\"column_from\":24,\"column_to\":33}"},{"lineNumber":7,"fileName":"app\/src\/Repository\/InMemory\/AbstractRepository.php","type":"MissingPropertyType","message":"Property Phpsw\\Website\\Repository\\InMemory\\AbstractRepository::$entities does not have a declared type - consider array","fullDetails":"{\"severity\":\"error\",\"line_from\":7,\"line_to\":7,\"type\":\"MissingPropertyType\",\"message\":\"Property Phpsw\\\\Website\\\\Repository\\\\InMemory\\\\AbstractRepository::$entities does not have a declared type - consider array\",\"file_name\":\"app\\\/src\\\/Repository\\\/InMemory\\\/AbstractRepository.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Repository\\\/InMemory\\\/AbstractRepository.php\",\"snippet\":\" private $entities = [];\",\"selected_text\":\"$entities\",\"from\":92,\"to\":101,\"snippet_from\":80,\"snippet_to\":107,\"column_from\":13,\"column_to\":22}"},{"lineNumber":14,"fileName":"app\/src\/Repository\/InMemory\/AbstractRepository.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Repository\\InMemory\\AbstractRepository::persistEntity does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":14,\"line_to\":14,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Repository\\\\InMemory\\\\AbstractRepository::persistEntity does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Repository\\\/InMemory\\\/AbstractRepository.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Repository\\\/InMemory\\\/AbstractRepository.php\",\"snippet\":\" protected function persistEntity($entity)\",\"selected_text\":\"persistEntity\",\"from\":204,\"to\":217,\"snippet_from\":181,\"snippet_to\":226,\"column_from\":24,\"column_to\":37}"},{"lineNumber":14,"fileName":"app\/src\/Repository\/InMemory\/AbstractRepository.php","type":"MissingParamType","message":"Parameter $entity has no provided type","fullDetails":"{\"severity\":\"error\",\"line_from\":14,\"line_to\":14,\"type\":\"MissingParamType\",\"message\":\"Parameter $entity has no provided type\",\"file_name\":\"app\\\/src\\\/Repository\\\/InMemory\\\/AbstractRepository.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Repository\\\/InMemory\\\/AbstractRepository.php\",\"snippet\":\" protected function persistEntity($entity)\",\"selected_text\":\"$entity\",\"from\":218,\"to\":225,\"snippet_from\":181,\"snippet_to\":226,\"column_from\":38,\"column_to\":45}"},{"lineNumber":16,"fileName":"app\/src\/Repository\/InMemory\/AbstractRepository.php","type":"MixedAssignment","message":"Cannot assign to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":16,\"line_to\":16,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign to a mixed type\",\"file_name\":\"app\\\/src\\\/Repository\\\/InMemory\\\/AbstractRepository.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Repository\\\/InMemory\\\/AbstractRepository.php\",\"snippet\":\" $this->entities[$entity->getId()] = $entity;\",\"selected_text\":\"$this->entities[$entity->getId()]\",\"from\":241,\"to\":274,\"snippet_from\":233,\"snippet_to\":285,\"column_from\":9,\"column_to\":42}"},{"lineNumber":22,"fileName":"app\/src\/Repository\/InMemory\/AbstractRepository.php","type":"LessSpecificImplementedReturnType","message":"The return type 'array' for Phpsw\\Website\\Repository\\TalkRepositoryInterface::getAll is more specific than the implemented return type for Phpsw\\Website\\Repository\\InMemory\\AbstractRepository::getall 'array'","fullDetails":"{\"severity\":\"error\",\"line_from\":22,\"line_to\":22,\"type\":\"LessSpecificImplementedReturnType\",\"message\":\"The return type 'array' for Phpsw\\\\Website\\\\Repository\\\\TalkRepositoryInterface::getAll is more specific than the implemented return type for Phpsw\\\\Website\\\\Repository\\\\InMemory\\\\AbstractRepository::getall 'array'\",\"file_name\":\"app\\\/src\\\/Repository\\\/InMemory\\\/AbstractRepository.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Repository\\\/InMemory\\\/AbstractRepository.php\",\"snippet\":\" \\\/**\\n * Return array of entities ordered by their slug.\\n *\\n * @return array\\n *\\\/\\n public function getAll()\\n {\\n $entities = $this->entities;\\n ksort($entities);\\n\\n return array_values($entities);\\n }\",\"selected_text\":\"array\",\"from\":378,\"to\":383,\"snippet_from\":293,\"snippet_to\":536,\"column_from\":16,\"column_to\":21}"},{"lineNumber":22,"fileName":"app\/src\/Repository\/InMemory\/AbstractRepository.php","type":"LessSpecificImplementedReturnType","message":"The return type 'array' for Phpsw\\Website\\Repository\\SponsorRepositoryInterface::getAll is more specific than the implemented return type for Phpsw\\Website\\Repository\\InMemory\\AbstractRepository::getall 'array'","fullDetails":"{\"severity\":\"error\",\"line_from\":22,\"line_to\":22,\"type\":\"LessSpecificImplementedReturnType\",\"message\":\"The return type 'array' for Phpsw\\\\Website\\\\Repository\\\\SponsorRepositoryInterface::getAll is more specific than the implemented return type for Phpsw\\\\Website\\\\Repository\\\\InMemory\\\\AbstractRepository::getall 'array'\",\"file_name\":\"app\\\/src\\\/Repository\\\/InMemory\\\/AbstractRepository.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Repository\\\/InMemory\\\/AbstractRepository.php\",\"snippet\":\" \\\/**\\n * Return array of entities ordered by their slug.\\n *\\n * @return array\\n *\\\/\\n public function getAll()\\n {\\n $entities = $this->entities;\\n ksort($entities);\\n\\n return array_values($entities);\\n }\",\"selected_text\":\"array\",\"from\":378,\"to\":383,\"snippet_from\":293,\"snippet_to\":536,\"column_from\":16,\"column_to\":21}"},{"lineNumber":22,"fileName":"app\/src\/Repository\/InMemory\/AbstractRepository.php","type":"LessSpecificImplementedReturnType","message":"The return type 'array' for Phpsw\\Website\\Repository\\EventRepositoryInterface::getAll is more specific than the implemented return type for Phpsw\\Website\\Repository\\InMemory\\AbstractRepository::getall 'array'","fullDetails":"{\"severity\":\"error\",\"line_from\":22,\"line_to\":22,\"type\":\"LessSpecificImplementedReturnType\",\"message\":\"The return type 'array' for Phpsw\\\\Website\\\\Repository\\\\EventRepositoryInterface::getAll is more specific than the implemented return type for Phpsw\\\\Website\\\\Repository\\\\InMemory\\\\AbstractRepository::getall 'array'\",\"file_name\":\"app\\\/src\\\/Repository\\\/InMemory\\\/AbstractRepository.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Repository\\\/InMemory\\\/AbstractRepository.php\",\"snippet\":\" \\\/**\\n * Return array of entities ordered by their slug.\\n *\\n * @return array\\n *\\\/\\n public function getAll()\\n {\\n $entities = $this->entities;\\n ksort($entities);\\n\\n return array_values($entities);\\n }\",\"selected_text\":\"array\",\"from\":378,\"to\":383,\"snippet_from\":293,\"snippet_to\":536,\"column_from\":16,\"column_to\":21}"},{"lineNumber":22,"fileName":"app\/src\/Repository\/InMemory\/AbstractRepository.php","type":"LessSpecificImplementedReturnType","message":"The return type 'array' for Phpsw\\Website\\Repository\\LocationRepositoryInterface::getAll is more specific than the implemented return type for Phpsw\\Website\\Repository\\InMemory\\AbstractRepository::getall 'array'","fullDetails":"{\"severity\":\"error\",\"line_from\":22,\"line_to\":22,\"type\":\"LessSpecificImplementedReturnType\",\"message\":\"The return type 'array' for Phpsw\\\\Website\\\\Repository\\\\LocationRepositoryInterface::getAll is more specific than the implemented return type for Phpsw\\\\Website\\\\Repository\\\\InMemory\\\\AbstractRepository::getall 'array'\",\"file_name\":\"app\\\/src\\\/Repository\\\/InMemory\\\/AbstractRepository.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Repository\\\/InMemory\\\/AbstractRepository.php\",\"snippet\":\" \\\/**\\n * Return array of entities ordered by their slug.\\n *\\n * @return array\\n *\\\/\\n public function getAll()\\n {\\n $entities = $this->entities;\\n ksort($entities);\\n\\n return array_values($entities);\\n }\",\"selected_text\":\"array\",\"from\":378,\"to\":383,\"snippet_from\":293,\"snippet_to\":536,\"column_from\":16,\"column_to\":21}"},{"lineNumber":22,"fileName":"app\/src\/Repository\/InMemory\/AbstractRepository.php","type":"LessSpecificImplementedReturnType","message":"The return type 'array' for Phpsw\\Website\\Repository\\PersonRepositoryInterface::getAll is more specific than the implemented return type for Phpsw\\Website\\Repository\\InMemory\\AbstractRepository::getall 'array'","fullDetails":"{\"severity\":\"error\",\"line_from\":22,\"line_to\":22,\"type\":\"LessSpecificImplementedReturnType\",\"message\":\"The return type 'array' for Phpsw\\\\Website\\\\Repository\\\\PersonRepositoryInterface::getAll is more specific than the implemented return type for Phpsw\\\\Website\\\\Repository\\\\InMemory\\\\AbstractRepository::getall 'array'\",\"file_name\":\"app\\\/src\\\/Repository\\\/InMemory\\\/AbstractRepository.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Repository\\\/InMemory\\\/AbstractRepository.php\",\"snippet\":\" \\\/**\\n * Return array of entities ordered by their slug.\\n *\\n * @return array\\n *\\\/\\n public function getAll()\\n {\\n $entities = $this->entities;\\n ksort($entities);\\n\\n return array_values($entities);\\n }\",\"selected_text\":\"array\",\"from\":378,\"to\":383,\"snippet_from\":293,\"snippet_to\":536,\"column_from\":16,\"column_to\":21}"},{"lineNumber":26,"fileName":"app\/src\/Repository\/InMemory\/AbstractRepository.php","type":"MixedAssignment","message":"Cannot assign $entities to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":26,\"line_to\":26,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign $entities to a mixed type\",\"file_name\":\"app\\\/src\\\/Repository\\\/InMemory\\\/AbstractRepository.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Repository\\\/InMemory\\\/AbstractRepository.php\",\"snippet\":\" $entities = $this->entities;\",\"selected_text\":\"$entities\",\"from\":435,\"to\":444,\"snippet_from\":427,\"snippet_to\":463,\"column_from\":9,\"column_to\":18}"},{"lineNumber":27,"fileName":"app\/src\/Repository\/InMemory\/AbstractRepository.php","type":"MixedArgument","message":"Argument 1 of ksort cannot be mixed, expecting array","fullDetails":"{\"severity\":\"error\",\"line_from\":27,\"line_to\":27,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of ksort cannot be mixed, expecting array\",\"file_name\":\"app\\\/src\\\/Repository\\\/InMemory\\\/AbstractRepository.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Repository\\\/InMemory\\\/AbstractRepository.php\",\"snippet\":\" ksort($entities);\",\"selected_text\":\"$entities\",\"from\":478,\"to\":487,\"snippet_from\":464,\"snippet_to\":489,\"column_from\":15,\"column_to\":24}"},{"lineNumber":29,"fileName":"app\/src\/Repository\/InMemory\/AbstractRepository.php","type":"MixedArgument","message":"Argument 1 of array_values cannot be mixed, expecting array","fullDetails":"{\"severity\":\"error\",\"line_from\":29,\"line_to\":29,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of array_values cannot be mixed, expecting array\",\"file_name\":\"app\\\/src\\\/Repository\\\/InMemory\\\/AbstractRepository.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Repository\\\/InMemory\\\/AbstractRepository.php\",\"snippet\":\" return array_values($entities);\",\"selected_text\":\"$entities\",\"from\":519,\"to\":528,\"snippet_from\":491,\"snippet_to\":530,\"column_from\":29,\"column_to\":38}"},{"lineNumber":37,"fileName":"app\/src\/Repository\/InMemory\/AbstractRepository.php","type":"LessSpecificImplementedReturnType","message":"The return type 'Phpsw\\Website\\Entity\\Sponsor|null' for Phpsw\\Website\\Repository\\SponsorRepositoryInterface::findById is more specific than the implemented return type for Phpsw\\Website\\Repository\\InMemory\\AbstractRepository::findbyid 'mixed|null'","fullDetails":"{\"severity\":\"error\",\"line_from\":37,\"line_to\":37,\"type\":\"LessSpecificImplementedReturnType\",\"message\":\"The return type 'Phpsw\\\\Website\\\\Entity\\\\Sponsor|null' for Phpsw\\\\Website\\\\Repository\\\\SponsorRepositoryInterface::findById is more specific than the implemented return type for Phpsw\\\\Website\\\\Repository\\\\InMemory\\\\AbstractRepository::findbyid 'mixed|null'\",\"file_name\":\"app\\\/src\\\/Repository\\\/InMemory\\\/AbstractRepository.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Repository\\\/InMemory\\\/AbstractRepository.php\",\"snippet\":\" \\\/**\\n * Returns entity object with the given id or null if none exist.\\n *\\n * @param string $id\\n *\\n * @return mixed|null\\n *\\\/\\n public function findById(string $id)\\n {\\n return $this->entities[$id] ?? null;\\n }\",\"selected_text\":\"mixed|null\",\"from\":670,\"to\":680,\"snippet_from\":538,\"snippet_to\":786,\"column_from\":16,\"column_to\":26}"},{"lineNumber":37,"fileName":"app\/src\/Repository\/InMemory\/AbstractRepository.php","type":"LessSpecificImplementedReturnType","message":"The return type 'Phpsw\\Website\\Entity\\Talk|null' for Phpsw\\Website\\Repository\\TalkRepositoryInterface::findById is more specific than the implemented return type for Phpsw\\Website\\Repository\\InMemory\\AbstractRepository::findbyid 'mixed|null'","fullDetails":"{\"severity\":\"error\",\"line_from\":37,\"line_to\":37,\"type\":\"LessSpecificImplementedReturnType\",\"message\":\"The return type 'Phpsw\\\\Website\\\\Entity\\\\Talk|null' for Phpsw\\\\Website\\\\Repository\\\\TalkRepositoryInterface::findById is more specific than the implemented return type for Phpsw\\\\Website\\\\Repository\\\\InMemory\\\\AbstractRepository::findbyid 'mixed|null'\",\"file_name\":\"app\\\/src\\\/Repository\\\/InMemory\\\/AbstractRepository.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Repository\\\/InMemory\\\/AbstractRepository.php\",\"snippet\":\" \\\/**\\n * Returns entity object with the given id or null if none exist.\\n *\\n * @param string $id\\n *\\n * @return mixed|null\\n *\\\/\\n public function findById(string $id)\\n {\\n return $this->entities[$id] ?? null;\\n }\",\"selected_text\":\"mixed|null\",\"from\":670,\"to\":680,\"snippet_from\":538,\"snippet_to\":786,\"column_from\":16,\"column_to\":26}"},{"lineNumber":37,"fileName":"app\/src\/Repository\/InMemory\/AbstractRepository.php","type":"LessSpecificImplementedReturnType","message":"The return type 'Phpsw\\Website\\Entity\\Person|null' for Phpsw\\Website\\Repository\\PersonRepositoryInterface::findById is more specific than the implemented return type for Phpsw\\Website\\Repository\\InMemory\\AbstractRepository::findbyid 'mixed|null'","fullDetails":"{\"severity\":\"error\",\"line_from\":37,\"line_to\":37,\"type\":\"LessSpecificImplementedReturnType\",\"message\":\"The return type 'Phpsw\\\\Website\\\\Entity\\\\Person|null' for Phpsw\\\\Website\\\\Repository\\\\PersonRepositoryInterface::findById is more specific than the implemented return type for Phpsw\\\\Website\\\\Repository\\\\InMemory\\\\AbstractRepository::findbyid 'mixed|null'\",\"file_name\":\"app\\\/src\\\/Repository\\\/InMemory\\\/AbstractRepository.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Repository\\\/InMemory\\\/AbstractRepository.php\",\"snippet\":\" \\\/**\\n * Returns entity object with the given id or null if none exist.\\n *\\n * @param string $id\\n *\\n * @return mixed|null\\n *\\\/\\n public function findById(string $id)\\n {\\n return $this->entities[$id] ?? null;\\n }\",\"selected_text\":\"mixed|null\",\"from\":670,\"to\":680,\"snippet_from\":538,\"snippet_to\":786,\"column_from\":16,\"column_to\":26}"},{"lineNumber":16,"fileName":"app\/src\/Repository\/InMemory\/EventRepository.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Repository\\InMemory\\EventRepository::persist does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":16,\"line_to\":16,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Repository\\\\InMemory\\\\EventRepository::persist does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Repository\\\/InMemory\\\/EventRepository.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Repository\\\/InMemory\\\/EventRepository.php\",\"snippet\":\" public function persist(Event $event)\",\"selected_text\":\"persist\",\"from\":343,\"to\":350,\"snippet_from\":323,\"snippet_to\":364,\"column_from\":21,\"column_to\":28}"},{"lineNumber":16,"fileName":"app\/src\/Repository\/InMemory\/LocationRepository.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Repository\\InMemory\\LocationRepository::persist does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":16,\"line_to\":16,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Repository\\\\InMemory\\\\LocationRepository::persist does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Repository\\\/InMemory\\\/LocationRepository.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Repository\\\/InMemory\\\/LocationRepository.php\",\"snippet\":\" public function persist(Location $location)\",\"selected_text\":\"persist\",\"from\":358,\"to\":365,\"snippet_from\":338,\"snippet_to\":385,\"column_from\":21,\"column_to\":28}"},{"lineNumber":16,"fileName":"app\/src\/Repository\/InMemory\/PersonRepository.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Repository\\InMemory\\PersonRepository::persist does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":16,\"line_to\":16,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Repository\\\\InMemory\\\\PersonRepository::persist does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Repository\\\/InMemory\\\/PersonRepository.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Repository\\\/InMemory\\\/PersonRepository.php\",\"snippet\":\" public function persist(Person $person)\",\"selected_text\":\"persist\",\"from\":348,\"to\":355,\"snippet_from\":328,\"snippet_to\":371,\"column_from\":21,\"column_to\":28}"},{"lineNumber":17,"fileName":"app\/src\/Repository\/InMemory\/SponsorRepository.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Repository\\InMemory\\SponsorRepository::persist does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":17,\"line_to\":17,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Repository\\\\InMemory\\\\SponsorRepository::persist does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Repository\\\/InMemory\\\/SponsorRepository.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Repository\\\/InMemory\\\/SponsorRepository.php\",\"snippet\":\" public function persist(Sponsor $sponsor)\",\"selected_text\":\"persist\",\"from\":375,\"to\":382,\"snippet_from\":355,\"snippet_to\":400,\"column_from\":21,\"column_to\":28}"},{"lineNumber":25,"fileName":"app\/src\/Repository\/InMemory\/SponsorRepository.php","type":"MixedTypeCoercion","message":"The declared return type 'array' for Phpsw\\Website\\Repository\\InMemory\\SponsorRepository::getByType is more specific than the inferred return type 'array'","fullDetails":"{\"severity\":\"error\",\"line_from\":25,\"line_to\":25,\"type\":\"MixedTypeCoercion\",\"message\":\"The declared return type 'array' for Phpsw\\\\Website\\\\Repository\\\\InMemory\\\\SponsorRepository::getByType is more specific than the inferred return type 'array'\",\"file_name\":\"app\\\/src\\\/Repository\\\/InMemory\\\/SponsorRepository.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Repository\\\/InMemory\\\/SponsorRepository.php\",\"snippet\":\" public function getByType(string $sponsorType)\",\"selected_text\":\"getByType\",\"from\":511,\"to\":520,\"snippet_from\":491,\"snippet_to\":541,\"column_from\":21,\"column_to\":30}"},{"lineNumber":31,"fileName":"app\/src\/Repository\/InMemory\/SponsorRepository.php","type":"MissingClosureReturnType","message":"Closure does not have a return type, expecting bool","fullDetails":"{\"severity\":\"error\",\"line_from\":31,\"line_to\":31,\"type\":\"MissingClosureReturnType\",\"message\":\"Closure does not have a return type, expecting bool\",\"file_name\":\"app\\\/src\\\/Repository\\\/InMemory\\\/SponsorRepository.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Repository\\\/InMemory\\\/SponsorRepository.php\",\"snippet\":\" return array_filter($this->getAll(), function (Sponsor $sponsor) use ($sponsorType) {\",\"selected_text\":\"function (Sponsor $sponsor) use ($sponsorType) {\",\"from\":752,\"to\":800,\"snippet_from\":707,\"snippet_to\":800,\"column_from\":46,\"column_to\":94}"},{"lineNumber":16,"fileName":"app\/src\/Repository\/InMemory\/TalkRepository.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Repository\\InMemory\\TalkRepository::persist does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":16,\"line_to\":16,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Repository\\\\InMemory\\\\TalkRepository::persist does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Repository\\\/InMemory\\\/TalkRepository.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Repository\\\/InMemory\\\/TalkRepository.php\",\"snippet\":\" public function persist(Talk $talk)\",\"selected_text\":\"persist\",\"from\":338,\"to\":345,\"snippet_from\":318,\"snippet_to\":357,\"column_from\":21,\"column_to\":28}"},{"lineNumber":24,"fileName":"app\/src\/Repository\/InMemory\/TalkRepository.php","type":"MixedTypeCoercion","message":"The declared return type 'array' for Phpsw\\Website\\Repository\\InMemory\\TalkRepository::getShowcaseTalks is more specific than the inferred return type 'array'","fullDetails":"{\"severity\":\"error\",\"line_from\":24,\"line_to\":24,\"type\":\"MixedTypeCoercion\",\"message\":\"The declared return type 'array' for Phpsw\\\\Website\\\\Repository\\\\InMemory\\\\TalkRepository::getShowcaseTalks is more specific than the inferred return type 'array'\",\"file_name\":\"app\\\/src\\\/Repository\\\/InMemory\\\/TalkRepository.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Repository\\\/InMemory\\\/TalkRepository.php\",\"snippet\":\" public function getShowcaseTalks()\",\"selected_text\":\"getShowcaseTalks\",\"from\":465,\"to\":481,\"snippet_from\":445,\"snippet_to\":483,\"column_from\":21,\"column_to\":37}"},{"lineNumber":26,"fileName":"app\/src\/Repository\/InMemory\/TalkRepository.php","type":"MissingClosureReturnType","message":"Closure does not have a return type, expecting bool","fullDetails":"{\"severity\":\"error\",\"line_from\":26,\"line_to\":26,\"type\":\"MissingClosureReturnType\",\"message\":\"Closure does not have a return type, expecting bool\",\"file_name\":\"app\\\/src\\\/Repository\\\/InMemory\\\/TalkRepository.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Repository\\\/InMemory\\\/TalkRepository.php\",\"snippet\":\" return array_filter($this->getAll(), function (Talk $talk) {\",\"selected_text\":\"function (Talk $talk) {\",\"from\":535,\"to\":558,\"snippet_from\":490,\"snippet_to\":558,\"column_from\":46,\"column_to\":69}"},{"lineNumber":16,"fileName":"app\/src\/Repository\/InMemory\/WebsiteInfoRepository.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\Repository\\InMemory\\WebsiteInfoRepository::persist does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":16,\"line_to\":16,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\Repository\\\\InMemory\\\\WebsiteInfoRepository::persist does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/Repository\\\/InMemory\\\/WebsiteInfoRepository.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Repository\\\/InMemory\\\/WebsiteInfoRepository.php\",\"snippet\":\" public function persist(WebsiteInfo $websiteInfo)\",\"selected_text\":\"persist\",\"from\":373,\"to\":380,\"snippet_from\":353,\"snippet_to\":406,\"column_from\":21,\"column_to\":28}"},{"lineNumber":24,"fileName":"app\/src\/Repository\/InMemory\/WebsiteInfoRepository.php","type":"MixedInferredReturnType","message":"Could not verify return type 'Phpsw\\Website\\Entity\\WebsiteInfo' for Phpsw\\Website\\Repository\\InMemory\\WebsiteInfoRepository::getWebsiteInfo","fullDetails":"{\"severity\":\"error\",\"line_from\":24,\"line_to\":24,\"type\":\"MixedInferredReturnType\",\"message\":\"Could not verify return type 'Phpsw\\\\Website\\\\Entity\\\\WebsiteInfo' for Phpsw\\\\Website\\\\Repository\\\\InMemory\\\\WebsiteInfoRepository::getWebsiteInfo\",\"file_name\":\"app\\\/src\\\/Repository\\\/InMemory\\\/WebsiteInfoRepository.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Repository\\\/InMemory\\\/WebsiteInfoRepository.php\",\"snippet\":\" \\\/**\\n * Returns WebsiteInfo (there should only be one).\\n *\\n * @return WebsiteInfo\\n *\\\/\\n public function getWebsiteInfo(): WebsiteInfo\\n {\\n $websiteInfos = $this->getAll();\\n if (1 != count($websiteInfos)) {\",\"selected_text\":\"@return WebsiteInfo\",\"from\":541,\"to\":560,\"snippet_from\":464,\"snippet_to\":706,\"column_from\":8,\"column_to\":27}"},{"lineNumber":33,"fileName":"app\/src\/Repository\/InMemory\/WebsiteInfoRepository.php","type":"MixedReturnStatement","message":"Could not infer a return type","fullDetails":"{\"severity\":\"error\",\"line_from\":33,\"line_to\":33,\"type\":\"MixedReturnStatement\",\"message\":\"Could not infer a return type\",\"file_name\":\"app\\\/src\\\/Repository\\\/InMemory\\\/WebsiteInfoRepository.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/Repository\\\/InMemory\\\/WebsiteInfoRepository.php\",\"snippet\":\" return $websiteInfos[0];\",\"selected_text\":\"return $websiteInfos[0];\",\"from\":810,\"to\":834,\"snippet_from\":802,\"snippet_to\":834,\"column_from\":9,\"column_to\":33}"},{"lineNumber":41,"fileName":"app\/src\/WebsiteGenerator\/ContentTypeGenerator\/EventPagesGenerator.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\WebsiteGenerator\\ContentTypeGenerator\\EventPagesGenerator::generatePages does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":41,\"line_to\":41,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\WebsiteGenerator\\\\ContentTypeGenerator\\\\EventPagesGenerator::generatePages does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/WebsiteGenerator\\\/ContentTypeGenerator\\\/EventPagesGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/WebsiteGenerator\\\/ContentTypeGenerator\\\/EventPagesGenerator.php\",\"snippet\":\" public function generatePages(TemplateRenderer $templateRenderer)\",\"selected_text\":\"generatePages\",\"from\":988,\"to\":1001,\"snippet_from\":968,\"snippet_to\":1037,\"column_from\":21,\"column_to\":34}"},{"lineNumber":46,"fileName":"app\/src\/WebsiteGenerator\/ContentTypeGenerator\/EventPagesGenerator.php","type":"MissingClosureReturnType","message":"Closure does not have a return type, expecting int","fullDetails":"{\"severity\":\"error\",\"line_from\":46,\"line_to\":46,\"type\":\"MissingClosureReturnType\",\"message\":\"Closure does not have a return type, expecting int\",\"file_name\":\"app\\\/src\\\/WebsiteGenerator\\\/ContentTypeGenerator\\\/EventPagesGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/WebsiteGenerator\\\/ContentTypeGenerator\\\/EventPagesGenerator.php\",\"snippet\":\" usort($events, function (Event $a, Event $b) {\",\"selected_text\":\"function (Event $a, Event $b) {\",\"from\":1145,\"to\":1176,\"snippet_from\":1122,\"snippet_to\":1176,\"column_from\":24,\"column_to\":55}"},{"lineNumber":59,"fileName":"app\/src\/WebsiteGenerator\/ContentTypeGenerator\/EventPagesGenerator.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\WebsiteGenerator\\ContentTypeGenerator\\EventPagesGenerator::generateEventPage does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":59,\"line_to\":59,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\WebsiteGenerator\\\\ContentTypeGenerator\\\\EventPagesGenerator::generateEventPage does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/WebsiteGenerator\\\/ContentTypeGenerator\\\/EventPagesGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/WebsiteGenerator\\\/ContentTypeGenerator\\\/EventPagesGenerator.php\",\"snippet\":\" private function generateEventPage(TemplateRenderer $templateRenderer, Event $event)\",\"selected_text\":\"generateEventPage\",\"from\":1528,\"to\":1545,\"snippet_from\":1507,\"snippet_to\":1595,\"column_from\":22,\"column_to\":39}"},{"lineNumber":35,"fileName":"app\/src\/WebsiteGenerator\/ContentTypeGenerator\/HomePageGenerator.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\WebsiteGenerator\\ContentTypeGenerator\\HomePageGenerator::generatePages does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":35,\"line_to\":35,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\WebsiteGenerator\\\\ContentTypeGenerator\\\\HomePageGenerator::generatePages does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/WebsiteGenerator\\\/ContentTypeGenerator\\\/HomePageGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/WebsiteGenerator\\\/ContentTypeGenerator\\\/HomePageGenerator.php\",\"snippet\":\" public function generatePages(TemplateRenderer $templateRenderer)\",\"selected_text\":\"generatePages\",\"from\":792,\"to\":805,\"snippet_from\":772,\"snippet_to\":841,\"column_from\":21,\"column_to\":34}"},{"lineNumber":41,"fileName":"app\/src\/WebsiteGenerator\/ContentTypeGenerator\/SpeakerPagesGenerator.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\WebsiteGenerator\\ContentTypeGenerator\\SpeakerPagesGenerator::generatePages does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":41,\"line_to\":41,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\WebsiteGenerator\\\\ContentTypeGenerator\\\\SpeakerPagesGenerator::generatePages does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/WebsiteGenerator\\\/ContentTypeGenerator\\\/SpeakerPagesGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/WebsiteGenerator\\\/ContentTypeGenerator\\\/SpeakerPagesGenerator.php\",\"snippet\":\" public function generatePages(TemplateRenderer $templateRenderer)\",\"selected_text\":\"generatePages\",\"from\":1008,\"to\":1021,\"snippet_from\":988,\"snippet_to\":1057,\"column_from\":21,\"column_to\":34}"},{"lineNumber":54,"fileName":"app\/src\/WebsiteGenerator\/ContentTypeGenerator\/SpeakerPagesGenerator.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\WebsiteGenerator\\ContentTypeGenerator\\SpeakerPagesGenerator::generateSpeakerPage does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":54,\"line_to\":54,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\WebsiteGenerator\\\\ContentTypeGenerator\\\\SpeakerPagesGenerator::generateSpeakerPage does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/WebsiteGenerator\\\/ContentTypeGenerator\\\/SpeakerPagesGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/WebsiteGenerator\\\/ContentTypeGenerator\\\/SpeakerPagesGenerator.php\",\"snippet\":\" private function generateSpeakerPage(TemplateRenderer $templateRenderer, Person $person)\",\"selected_text\":\"generateSpeakerPage\",\"from\":1382,\"to\":1401,\"snippet_from\":1361,\"snippet_to\":1453,\"column_from\":22,\"column_to\":41}"},{"lineNumber":39,"fileName":"app\/src\/WebsiteGenerator\/ContentTypeGenerator\/SponsorsPageGenerator.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\WebsiteGenerator\\ContentTypeGenerator\\SponsorsPageGenerator::generatePages does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":39,\"line_to\":39,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\WebsiteGenerator\\\\ContentTypeGenerator\\\\SponsorsPageGenerator::generatePages does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/WebsiteGenerator\\\/ContentTypeGenerator\\\/SponsorsPageGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/WebsiteGenerator\\\/ContentTypeGenerator\\\/SponsorsPageGenerator.php\",\"snippet\":\" public function generatePages(TemplateRenderer $templateRenderer)\",\"selected_text\":\"generatePages\",\"from\":959,\"to\":972,\"snippet_from\":939,\"snippet_to\":1008,\"column_from\":21,\"column_to\":34}"},{"lineNumber":42,"fileName":"app\/src\/WebsiteGenerator\/ContentTypeGenerator\/StaticPagesGenerator.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\WebsiteGenerator\\ContentTypeGenerator\\StaticPagesGenerator::generatePages does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":42,\"line_to\":42,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\WebsiteGenerator\\\\ContentTypeGenerator\\\\StaticPagesGenerator::generatePages does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/WebsiteGenerator\\\/ContentTypeGenerator\\\/StaticPagesGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/WebsiteGenerator\\\/ContentTypeGenerator\\\/StaticPagesGenerator.php\",\"snippet\":\" public function generatePages(TemplateRenderer $templateRenderer)\",\"selected_text\":\"generatePages\",\"from\":967,\"to\":980,\"snippet_from\":947,\"snippet_to\":1016,\"column_from\":21,\"column_to\":34}"},{"lineNumber":46,"fileName":"app\/src\/WebsiteGenerator\/ContentTypeGenerator\/StaticPagesGenerator.php","type":"MixedAssignment","message":"Cannot assign $route to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":46,\"line_to\":46,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign $route to a mixed type\",\"file_name\":\"app\\\/src\\\/WebsiteGenerator\\\/ContentTypeGenerator\\\/StaticPagesGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/WebsiteGenerator\\\/ContentTypeGenerator\\\/StaticPagesGenerator.php\",\"snippet\":\" foreach ($routes as $route) {\",\"selected_text\":\"$route\",\"from\":1106,\"to\":1112,\"snippet_from\":1078,\"snippet_to\":1115,\"column_from\":29,\"column_to\":35}"},{"lineNumber":47,"fileName":"app\/src\/WebsiteGenerator\/ContentTypeGenerator\/StaticPagesGenerator.php","type":"MixedArgument","message":"Argument 1 of Phpsw\\Website\\WebsiteGenerator\\ContentTypeGenerator\\StaticPagesGenerator::getTemplateNameIfExists cannot be mixed, expecting Symfony\\Component\\Routing\\Route","fullDetails":"{\"severity\":\"error\",\"line_from\":47,\"line_to\":47,\"type\":\"MixedArgument\",\"message\":\"Argument 1 of Phpsw\\\\Website\\\\WebsiteGenerator\\\\ContentTypeGenerator\\\\StaticPagesGenerator::getTemplateNameIfExists cannot be mixed, expecting Symfony\\\\Component\\\\Routing\\\\Route\",\"file_name\":\"app\\\/src\\\/WebsiteGenerator\\\/ContentTypeGenerator\\\/StaticPagesGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/WebsiteGenerator\\\/ContentTypeGenerator\\\/StaticPagesGenerator.php\",\"snippet\":\" $template = $this->getTemplateNameIfExists($route);\",\"selected_text\":\"$route\",\"from\":1171,\"to\":1177,\"snippet_from\":1116,\"snippet_to\":1179,\"column_from\":56,\"column_to\":62}"},{"lineNumber":50,"fileName":"app\/src\/WebsiteGenerator\/ContentTypeGenerator\/StaticPagesGenerator.php","type":"MixedArgument","message":"Argument 2 of Phpsw\\Website\\WebsiteGenerator\\ContentTypeGenerator\\StaticPagesGenerator::generateStaticPage cannot be mixed, expecting Symfony\\Component\\Routing\\Route","fullDetails":"{\"severity\":\"error\",\"line_from\":50,\"line_to\":50,\"type\":\"MixedArgument\",\"message\":\"Argument 2 of Phpsw\\\\Website\\\\WebsiteGenerator\\\\ContentTypeGenerator\\\\StaticPagesGenerator::generateStaticPage cannot be mixed, expecting Symfony\\\\Component\\\\Routing\\\\Route\",\"file_name\":\"app\\\/src\\\/WebsiteGenerator\\\/ContentTypeGenerator\\\/StaticPagesGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/WebsiteGenerator\\\/ContentTypeGenerator\\\/StaticPagesGenerator.php\",\"snippet\":\" $this->generateStaticPage($templateRenderer, $route, $template);\",\"selected_text\":\"$route\",\"from\":1280,\"to\":1286,\"snippet_from\":1219,\"snippet_to\":1299,\"column_from\":62,\"column_to\":68}"},{"lineNumber":55,"fileName":"app\/src\/WebsiteGenerator\/ContentTypeGenerator\/StaticPagesGenerator.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\WebsiteGenerator\\ContentTypeGenerator\\StaticPagesGenerator::generateStaticPage does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":55,\"line_to\":55,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\WebsiteGenerator\\\\ContentTypeGenerator\\\\StaticPagesGenerator::generateStaticPage does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/WebsiteGenerator\\\/ContentTypeGenerator\\\/StaticPagesGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/WebsiteGenerator\\\/ContentTypeGenerator\\\/StaticPagesGenerator.php\",\"snippet\":\" private function generateStaticPage(TemplateRenderer $templateRenderer, Route $route, string $template)\",\"selected_text\":\"generateStaticPage\",\"from\":1352,\"to\":1370,\"snippet_from\":1331,\"snippet_to\":1438,\"column_from\":22,\"column_to\":40}"},{"lineNumber":66,"fileName":"app\/src\/WebsiteGenerator\/ContentTypeGenerator\/StaticPagesGenerator.php","type":"MixedInferredReturnType","message":"Could not verify return type 'string|null' for Phpsw\\Website\\WebsiteGenerator\\ContentTypeGenerator\\StaticPagesGenerator::getTemplateNameIfExists","fullDetails":"{\"severity\":\"error\",\"line_from\":66,\"line_to\":66,\"type\":\"MixedInferredReturnType\",\"message\":\"Could not verify return type 'string|null' for Phpsw\\\\Website\\\\WebsiteGenerator\\\\ContentTypeGenerator\\\\StaticPagesGenerator::getTemplateNameIfExists\",\"file_name\":\"app\\\/src\\\/WebsiteGenerator\\\/ContentTypeGenerator\\\/StaticPagesGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/WebsiteGenerator\\\/ContentTypeGenerator\\\/StaticPagesGenerator.php\",\"snippet\":\" \\\/**\\n * Iterate through route options to see if a template name exists.\\n *\\n * @param Route $route\\n *\\n * @return string|null\\n *\\\/\\n private function getTemplateNameIfExists(Route $route)\\n {\\n return $this->findTemplateName($route->getOptions());\\n }\",\"selected_text\":\"string|null\",\"from\":1701,\"to\":1712,\"snippet_from\":1566,\"snippet_to\":1853,\"column_from\":16,\"column_to\":27}"},{"lineNumber":70,"fileName":"app\/src\/WebsiteGenerator\/ContentTypeGenerator\/StaticPagesGenerator.php","type":"MixedReturnStatement","message":"Could not infer a return type","fullDetails":"{\"severity\":\"error\",\"line_from\":70,\"line_to\":70,\"type\":\"MixedReturnStatement\",\"message\":\"Could not infer a return type\",\"file_name\":\"app\\\/src\\\/WebsiteGenerator\\\/ContentTypeGenerator\\\/StaticPagesGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/WebsiteGenerator\\\/ContentTypeGenerator\\\/StaticPagesGenerator.php\",\"snippet\":\" return $this->findTemplateName($route->getOptions());\",\"selected_text\":\"return $this->findTemplateName($route->getOptions());\",\"from\":1794,\"to\":1847,\"snippet_from\":1786,\"snippet_to\":1847,\"column_from\":9,\"column_to\":62}"},{"lineNumber":73,"fileName":"app\/src\/WebsiteGenerator\/ContentTypeGenerator\/StaticPagesGenerator.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\WebsiteGenerator\\ContentTypeGenerator\\StaticPagesGenerator::findTemplateName does not have a return type","fullDetails":"{\"severity\":\"error\",\"line_from\":73,\"line_to\":73,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\WebsiteGenerator\\\\ContentTypeGenerator\\\\StaticPagesGenerator::findTemplateName does not have a return type\",\"file_name\":\"app\\\/src\\\/WebsiteGenerator\\\/ContentTypeGenerator\\\/StaticPagesGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/WebsiteGenerator\\\/ContentTypeGenerator\\\/StaticPagesGenerator.php\",\"snippet\":\" private function findTemplateName(array $array)\",\"selected_text\":\"findTemplateName\",\"from\":1876,\"to\":1892,\"snippet_from\":1855,\"snippet_to\":1906,\"column_from\":22,\"column_to\":38}"},{"lineNumber":75,"fileName":"app\/src\/WebsiteGenerator\/ContentTypeGenerator\/StaticPagesGenerator.php","type":"MixedAssignment","message":"Cannot assign $value to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":75,\"line_to\":75,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign $value to a mixed type\",\"file_name\":\"app\\\/src\\\/WebsiteGenerator\\\/ContentTypeGenerator\\\/StaticPagesGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/WebsiteGenerator\\\/ContentTypeGenerator\\\/StaticPagesGenerator.php\",\"snippet\":\" foreach ($array as $key => $value) {\",\"selected_text\":\"$value\",\"from\":1948,\"to\":1954,\"snippet_from\":1913,\"snippet_to\":1957,\"column_from\":36,\"column_to\":42}"},{"lineNumber":81,"fileName":"app\/src\/WebsiteGenerator\/ContentTypeGenerator\/StaticPagesGenerator.php","type":"MixedAssignment","message":"Cannot assign $templateName to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":81,\"line_to\":81,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign $templateName to a mixed type\",\"file_name\":\"app\\\/src\\\/WebsiteGenerator\\\/ContentTypeGenerator\\\/StaticPagesGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/WebsiteGenerator\\\/ContentTypeGenerator\\\/StaticPagesGenerator.php\",\"snippet\":\" $templateName = $this->findTemplateName($value);\",\"selected_text\":\"$templateName\",\"from\":2106,\"to\":2119,\"snippet_from\":2090,\"snippet_to\":2154,\"column_from\":17,\"column_to\":30}"},{"lineNumber":39,"fileName":"app\/src\/WebsiteGenerator\/ContentTypeGenerator\/TalkPagesGenerator.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\WebsiteGenerator\\ContentTypeGenerator\\TalkPagesGenerator::generatePages does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":39,\"line_to\":39,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\WebsiteGenerator\\\\ContentTypeGenerator\\\\TalkPagesGenerator::generatePages does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/WebsiteGenerator\\\/ContentTypeGenerator\\\/TalkPagesGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/WebsiteGenerator\\\/ContentTypeGenerator\\\/TalkPagesGenerator.php\",\"snippet\":\" public function generatePages(TemplateRenderer $templateRenderer)\",\"selected_text\":\"generatePages\",\"from\":847,\"to\":860,\"snippet_from\":827,\"snippet_to\":896,\"column_from\":21,\"column_to\":34}"},{"lineNumber":51,"fileName":"app\/src\/WebsiteGenerator\/ContentTypeGenerator\/TalkPagesGenerator.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\WebsiteGenerator\\ContentTypeGenerator\\TalkPagesGenerator::generateTalkPage does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":51,\"line_to\":51,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\WebsiteGenerator\\\\ContentTypeGenerator\\\\TalkPagesGenerator::generateTalkPage does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/WebsiteGenerator\\\/ContentTypeGenerator\\\/TalkPagesGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/WebsiteGenerator\\\/ContentTypeGenerator\\\/TalkPagesGenerator.php\",\"snippet\":\" private function generateTalkPage(TemplateRenderer $templateRenderer, Talk $talk)\",\"selected_text\":\"generateTalkPage\",\"from\":1234,\"to\":1250,\"snippet_from\":1213,\"snippet_to\":1298,\"column_from\":22,\"column_to\":38}"},{"lineNumber":36,"fileName":"app\/src\/WebsiteGenerator\/GenerateWebsiteCommand.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\WebsiteGenerator\\GenerateWebsiteCommand::configure does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":36,\"line_to\":36,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\WebsiteGenerator\\\\GenerateWebsiteCommand::configure does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/WebsiteGenerator\\\/GenerateWebsiteCommand.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/WebsiteGenerator\\\/GenerateWebsiteCommand.php\",\"snippet\":\" protected function configure()\",\"selected_text\":\"configure\",\"from\":834,\"to\":843,\"snippet_from\":811,\"snippet_to\":845,\"column_from\":24,\"column_to\":33}"},{"lineNumber":61,"fileName":"app\/src\/WebsiteGenerator\/TemplateRenderer\/TemplateRenderer.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\WebsiteGenerator\\TemplateRenderer\\TemplateRenderer::render does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":61,\"line_to\":61,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\WebsiteGenerator\\\\TemplateRenderer\\\\TemplateRenderer::render does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/WebsiteGenerator\\\/TemplateRenderer\\\/TemplateRenderer.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/WebsiteGenerator\\\/TemplateRenderer\\\/TemplateRenderer.php\",\"snippet\":\" public function render(string $filename, string $templateName, array $data)\",\"selected_text\":\"render\",\"from\":1462,\"to\":1468,\"snippet_from\":1442,\"snippet_to\":1521,\"column_from\":21,\"column_to\":27}"},{"lineNumber":70,"fileName":"app\/src\/WebsiteGenerator\/TemplateRenderer\/TemplateRenderer.php","type":"MixedArrayAssignment","message":"Cannot access array value on mixed variable $data['page']['template']","fullDetails":"{\"severity\":\"error\",\"line_from\":70,\"line_to\":70,\"type\":\"MixedArrayAssignment\",\"message\":\"Cannot access array value on mixed variable $data['page']['template']\",\"file_name\":\"app\\\/src\\\/WebsiteGenerator\\\/TemplateRenderer\\\/TemplateRenderer.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/WebsiteGenerator\\\/TemplateRenderer\\\/TemplateRenderer.php\",\"snippet\":\" $data['page']['template'] = $templateName;\",\"selected_text\":\"$data['page']['template']\",\"from\":1771,\"to\":1796,\"snippet_from\":1763,\"snippet_to\":1813,\"column_from\":9,\"column_to\":34}"},{"lineNumber":33,"fileName":"app\/src\/WebsiteGenerator\/TemplateRenderer\/TwigExtension\/DateTwigExtension.php","type":"InvalidScalarArgument","message":"Argument 4 of mktime expects int, string provided","fullDetails":"{\"severity\":\"error\",\"line_from\":33,\"line_to\":33,\"type\":\"InvalidScalarArgument\",\"message\":\"Argument 4 of mktime expects int, string provided\",\"file_name\":\"app\\\/src\\\/WebsiteGenerator\\\/TemplateRenderer\\\/TwigExtension\\\/DateTwigExtension.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/WebsiteGenerator\\\/TemplateRenderer\\\/TwigExtension\\\/DateTwigExtension.php\",\"snippet\":\" return date('F Y', mktime(0, 0, 0, $event->getMonth(), 1, $event->getYear()));\",\"selected_text\":\"$event->getMonth()\",\"from\":702,\"to\":720,\"snippet_from\":659,\"snippet_to\":745,\"column_from\":44,\"column_to\":62}"},{"lineNumber":40,"fileName":"app\/src\/WebsiteGenerator\/TemplateRenderer\/TwigWrapper.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\WebsiteGenerator\\TemplateRenderer\\TwigWrapper::addExtension does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":40,\"line_to\":40,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\WebsiteGenerator\\\\TemplateRenderer\\\\TwigWrapper::addExtension does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/WebsiteGenerator\\\/TemplateRenderer\\\/TwigWrapper.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/WebsiteGenerator\\\/TemplateRenderer\\\/TwigWrapper.php\",\"snippet\":\" public function addExtension(Twig_ExtensionInterface $twigExtension)\",\"selected_text\":\"addExtension\",\"from\":883,\"to\":895,\"snippet_from\":863,\"snippet_to\":935,\"column_from\":21,\"column_to\":33}"},{"lineNumber":61,"fileName":"app\/src\/WebsiteGenerator\/WebsiteGenerator.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\WebsiteGenerator\\WebsiteGenerator::addContentTypeGenerator does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":61,\"line_to\":61,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\WebsiteGenerator\\\\WebsiteGenerator::addContentTypeGenerator does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/WebsiteGenerator\\\/WebsiteGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/WebsiteGenerator\\\/WebsiteGenerator.php\",\"snippet\":\" public function addContentTypeGenerator(ContentTypeGeneratorsInterface $contentTypeGenerator)\",\"selected_text\":\"addContentTypeGenerator\",\"from\":1617,\"to\":1640,\"snippet_from\":1597,\"snippet_to\":1694,\"column_from\":21,\"column_to\":44}"},{"lineNumber":69,"fileName":"app\/src\/WebsiteGenerator\/WebsiteGenerator.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\WebsiteGenerator\\WebsiteGenerator::generateWebsite does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":69,\"line_to\":69,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\WebsiteGenerator\\\\WebsiteGenerator::generateWebsite does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/WebsiteGenerator\\\/WebsiteGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/WebsiteGenerator\\\/WebsiteGenerator.php\",\"snippet\":\" public function generateWebsite()\",\"selected_text\":\"generateWebsite\",\"from\":1839,\"to\":1854,\"snippet_from\":1819,\"snippet_to\":1856,\"column_from\":21,\"column_to\":36}"},{"lineNumber":78,"fileName":"app\/src\/WebsiteGenerator\/WebsiteGenerator.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\WebsiteGenerator\\WebsiteGenerator::copyAssets does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":78,\"line_to\":78,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\WebsiteGenerator\\\\WebsiteGenerator::copyAssets does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/WebsiteGenerator\\\/WebsiteGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/WebsiteGenerator\\\/WebsiteGenerator.php\",\"snippet\":\" private function copyAssets()\",\"selected_text\":\"copyAssets\",\"from\":2066,\"to\":2076,\"snippet_from\":2045,\"snippet_to\":2078,\"column_from\":22,\"column_to\":32}"},{"lineNumber":89,"fileName":"app\/src\/WebsiteGenerator\/WebsiteGenerator.php","type":"MissingReturnType","message":"Method Phpsw\\Website\\WebsiteGenerator\\WebsiteGenerator::generateContent does not have a return type, expecting void","fullDetails":"{\"severity\":\"error\",\"line_from\":89,\"line_to\":89,\"type\":\"MissingReturnType\",\"message\":\"Method Phpsw\\\\Website\\\\WebsiteGenerator\\\\WebsiteGenerator::generateContent does not have a return type, expecting void\",\"file_name\":\"app\\\/src\\\/WebsiteGenerator\\\/WebsiteGenerator.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/WebsiteGenerator\\\/WebsiteGenerator.php\",\"snippet\":\" private function generateContent()\",\"selected_text\":\"generateContent\",\"from\":2529,\"to\":2544,\"snippet_from\":2508,\"snippet_to\":2546,\"column_from\":22,\"column_to\":37}"},{"lineNumber":8,"fileName":"app\/src\/bootstrap.php","type":"MixedAssignment","message":"Cannot assign $loader to a mixed type","fullDetails":"{\"severity\":\"error\",\"line_from\":8,\"line_to\":8,\"type\":\"MixedAssignment\",\"message\":\"Cannot assign $loader to a mixed type\",\"file_name\":\"app\\\/src\\\/bootstrap.php\",\"file_path\":\"\\\/vagrant\\\/app\\\/src\\\/bootstrap.php\",\"snippet\":\"$loader = include __DIR__.'\\\/..\\\/..\\\/vendor\\\/autoload.php';\",\"selected_text\":\"$loader\",\"from\":95,\"to\":102,\"snippet_from\":95,\"snippet_to\":150,\"column_from\":1,\"column_to\":8}"}]} \ No newline at end of file From 030194548daad8bf34b0f62033e2ddbbe03bb348 Mon Sep 17 00:00:00 2001 From: Dave Liddament Date: Sun, 30 Dec 2018 11:33:21 +0000 Subject: [PATCH 06/12] UPDATE composer.json to run static analsyis --- composer.json | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/composer.json b/composer.json index a7ff2ae..9383e0c 100644 --- a/composer.json +++ b/composer.json @@ -48,9 +48,21 @@ "@lint", "@cs", "@test", + "@static-analysis", "@validate-data", "@generate-website" ], + + "create-sarb-baseline" : [ + "@psalm", + "sarb create-baseline reports/psalm/psalm.json reports/sarb/psalm-sarb-baseline.json psalm-json" + ], + + "static-analysis" : [ + "@psalm", + "sarb remove-baseline-results -f reports/psalm/psalm.json reports/sarb/psalm-sarb-baseline.json reports/psalm/psalm-baseline-removed.json" + ], + "composer-validate" : "@composer validate --no-check-all --strict", "lint" : "parallel-lint app runner.php", "cs" : "php-cs-fixer fix -v --dry-run --verbose --format=junit > reports/phpcs/junit.xml", @@ -61,5 +73,6 @@ "security" : "security-checker security:check", "psalm" : "psalm --report=reports/psalm/psalm.json --output-format=compact || true" + } } From 203ad3294a22eff0325b16fd98b5fb2b7e7e8e8e Mon Sep 17 00:00:00 2001 From: Dave Liddament Date: Sun, 30 Dec 2018 14:36:08 +0000 Subject: [PATCH 07/12] ADD PHPStan config --- phpstan.neon | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 phpstan.neon diff --git a/phpstan.neon b/phpstan.neon new file mode 100644 index 0000000..389d368 --- /dev/null +++ b/phpstan.neon @@ -0,0 +1,4 @@ +parameters: + level: 7 + paths: + - app/src From 8a5b37e3b402b90dfeb10691231678e2d389bd0f Mon Sep 17 00:00:00 2001 From: Dave Liddament Date: Sun, 30 Dec 2018 14:45:15 +0000 Subject: [PATCH 08/12] ADD composer scripts for creating baseline with phpstan --- composer.json | 17 +++++++++++++---- reports/phpstan/.gitignore | 2 ++ 2 files changed, 15 insertions(+), 4 deletions(-) create mode 100644 reports/phpstan/.gitignore diff --git a/composer.json b/composer.json index 9383e0c..f3d6af3 100644 --- a/composer.json +++ b/composer.json @@ -53,7 +53,17 @@ "@generate-website" ], - "create-sarb-baseline" : [ + "create-sarb-baselines" : [ + "@create-psalm-sarb-baseline", + "@create-phpstan-sarb-baseline" + ], + + "create-phpstan-sarb-baseline": [ + "@phpstan", + "sarb create-baseline reports/phpstan/phpstan.json reports/sarb/phpstan-sarb-baseline.json phpstan-json-tmp" + ], + + "create-psalm-sarb-baseline": [ "@psalm", "sarb create-baseline reports/psalm/psalm.json reports/sarb/psalm-sarb-baseline.json psalm-json" ], @@ -71,8 +81,7 @@ "validate-data" : "php runner.php phpsw:validate-data", "generate-website" : "php runner.php phpsw:generate-website", "security" : "security-checker security:check", - "psalm" : "psalm --report=reports/psalm/psalm.json --output-format=compact || true" - - + "psalm" : "psalm --report=reports/psalm/psalm.json --output-format=compact || true", + "phpstan" : "phpstan analyse --no-progress --error-format=json > reports/phpstan/phpstan.json || true" } } diff --git a/reports/phpstan/.gitignore b/reports/phpstan/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/reports/phpstan/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore From 1189e3a568e2808f6c001e1053d6a14492026333 Mon Sep 17 00:00:00 2001 From: Dave Liddament Date: Sun, 30 Dec 2018 14:55:23 +0000 Subject: [PATCH 09/12] ADD phpstan baseline --- reports/sarb/phpstan-sarb-baseline.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 reports/sarb/phpstan-sarb-baseline.json diff --git a/reports/sarb/phpstan-sarb-baseline.json b/reports/sarb/phpstan-sarb-baseline.json new file mode 100644 index 0000000..7552281 --- /dev/null +++ b/reports/sarb/phpstan-sarb-baseline.json @@ -0,0 +1 @@ +{"historyAnalyser":"git","historyMarker":"030194548daad8bf34b0f62033e2ddbbe03bb348","resultsParser":"phpstan-json-tmp","analysisResults":[{"lineNumber":30,"fileName":"app\/src\/Common\/StringUtils.php","type":"Parameter #3 $subject of function str_replace expects array|string, string|null given.","message":"message","fullDetails":"{\"absoluteFilePath\":\"\\\/vagrant\\\/app\\\/src\\\/Common\\\/StringUtils.php\",\"message\":{\"message\":\"Parameter #3 $subject of function str_replace expects array|string, string|null given.\",\"line\":30,\"ignorable\":true}}"},{"lineNumber":36,"fileName":"app\/src\/Common\/StringUtils.php","type":"Parameter #3 $subject of function preg_replace expects array|string, string|null given.","message":"message","fullDetails":"{\"absoluteFilePath\":\"\\\/vagrant\\\/app\\\/src\\\/Common\\\/StringUtils.php\",\"message\":{\"message\":\"Parameter #3 $subject of function preg_replace expects array|string, string|null given.\",\"line\":36,\"ignorable\":true}}"},{"lineNumber":38,"fileName":"app\/src\/Common\/StringUtils.php","type":"Parameter #1 $str of function trim expects string, string|null given.","message":"message","fullDetails":"{\"absoluteFilePath\":\"\\\/vagrant\\\/app\\\/src\\\/Common\\\/StringUtils.php\",\"message\":{\"message\":\"Parameter #1 $str of function trim expects string, string|null given.\",\"line\":38,\"ignorable\":true}}"},{"lineNumber":61,"fileName":"app\/src\/Common\/StringUtils.php","type":"Method should return string but returns string|null.","message":"message","fullDetails":"{\"absoluteFilePath\":\"\\\/vagrant\\\/app\\\/src\\\/Common\\\/StringUtils.php\",\"message\":{\"message\":\"Method Phpsw\\\\Website\\\\Common\\\\StringUtils::ascii() should return string but returns string|null.\",\"line\":61,\"ignorable\":true}}"},{"lineNumber":41,"fileName":"app\/src\/DataFileGenerator\/EventFileGenerator.php","type":"Parameter #1 $meetupId of method expects string, int given.","message":"message","fullDetails":"{\"absoluteFilePath\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/EventFileGenerator.php\",\"message\":{\"message\":\"Parameter #1 $meetupId of method Phpsw\\\\Website\\\\Entity\\\\Event::setMeetupId() expects string, int given.\",\"line\":41,\"ignorable\":true}}"},{"lineNumber":125,"fileName":"app\/src\/DataFileGenerator\/EventFileGenerator.php","type":"Parameter #1 $fp of function fwrite expects resource, resource|false given.","message":"message","fullDetails":"{\"absoluteFilePath\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/EventFileGenerator.php\",\"message\":{\"message\":\"Parameter #1 $fp of function fwrite expects resource, resource|false given.\",\"line\":125,\"ignorable\":true}}"},{"lineNumber":125,"fileName":"app\/src\/DataFileGenerator\/EventFileGenerator.php","type":"Parameter #2 $str of function fwrite expects string, string|false given.","message":"message","fullDetails":"{\"absoluteFilePath\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/EventFileGenerator.php\",\"message\":{\"message\":\"Parameter #2 $str of function fwrite expects string, string|false given.\",\"line\":125,\"ignorable\":true}}"},{"lineNumber":126,"fileName":"app\/src\/DataFileGenerator\/EventFileGenerator.php","type":"Parameter #1 $fp of function fclose expects resource, resource|false given.","message":"message","fullDetails":"{\"absoluteFilePath\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/EventFileGenerator.php\",\"message\":{\"message\":\"Parameter #1 $fp of function fclose expects resource, resource|false given.\",\"line\":126,\"ignorable\":true}}"},{"lineNumber":79,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"Access to an undefined property","message":"message","fullDetails":"{\"absoluteFilePath\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"message\":{\"message\":\"Access to an undefined property Phpsw\\\\Website\\\\DataFileGenerator\\\\MeetupApiClient::$_next.\",\"line\":79,\"ignorable\":true}}"},{"lineNumber":228,"fileName":"app\/src\/DataFileGenerator\/MeetupApiClient.php","type":"Parameter #1 $json of function json_decode expects string, bool|string given.","message":"message","fullDetails":"{\"absoluteFilePath\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/MeetupApiClient.php\",\"message\":{\"message\":\"Parameter #1 $json of function json_decode expects string, bool|string given.\",\"line\":228,\"ignorable\":true}}"},{"lineNumber":71,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"Parameter #1 $githubHandle of method expects string, string|null given.","message":"message","fullDetails":"{\"absoluteFilePath\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"message\":{\"message\":\"Parameter #1 $githubHandle of method Phpsw\\\\Website\\\\Entity\\\\Person::setGithubHandle() expects string, string|null given.\",\"line\":71,\"ignorable\":true}}"},{"lineNumber":131,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"Parameter #1 $fp of function fwrite expects resource, resource|false given.","message":"message","fullDetails":"{\"absoluteFilePath\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"message\":{\"message\":\"Parameter #1 $fp of function fwrite expects resource, resource|false given.\",\"line\":131,\"ignorable\":true}}"},{"lineNumber":131,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"Parameter #2 $str of function fwrite expects string, string|false given.","message":"message","fullDetails":"{\"absoluteFilePath\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"message\":{\"message\":\"Parameter #2 $str of function fwrite expects string, string|false given.\",\"line\":131,\"ignorable\":true}}"},{"lineNumber":132,"fileName":"app\/src\/DataFileGenerator\/PersonFileGenerator.php","type":"Parameter #1 $fp of function fclose expects resource, resource|false given.","message":"message","fullDetails":"{\"absoluteFilePath\":\"\\\/vagrant\\\/app\\\/src\\\/DataFileGenerator\\\/PersonFileGenerator.php\",\"message\":{\"message\":\"Parameter #1 $fp of function fclose expects resource, resource|false given.\",\"line\":132,\"ignorable\":true}}"},{"lineNumber":54,"fileName":"app\/src\/Importer\/DirectoryReader\/DirectoryReader.php","type":"Argument of an invalid type array|false supplied for foreach, only iterables are supported.","message":"message","fullDetails":"{\"absoluteFilePath\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/DirectoryReader\\\/DirectoryReader.php\",\"message\":{\"message\":\"Argument of an invalid type array|false supplied for foreach, only iterables are supported.\",\"line\":54,\"ignorable\":true}}"},{"lineNumber":33,"fileName":"app\/src\/Importer\/EntityImporter\/EntityImporter.php","type":"PHPDoc tag @param has invalid value ($repository): Unexpected token \"$repository\", expected TOKEN_IDENTIFIER at offset 165","message":"message","fullDetails":"{\"absoluteFilePath\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/EntityImporter.php\",\"message\":{\"message\":\"PHPDoc tag @param has invalid value ($repository): Unexpected token \\\"$repository\\\", expected TOKEN_IDENTIFIER at offset 165\",\"line\":33,\"ignorable\":true}}"},{"lineNumber":72,"fileName":"app\/src\/Importer\/EntityImporter\/EntityImporter.php","type":"Parameter #1 $entityType of class constructor expects string, string|null given.","message":"message","fullDetails":"{\"absoluteFilePath\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/EntityImporter.php\",\"message\":{\"message\":\"Parameter #1 $entityType of class Phpsw\\\\Website\\\\Importer\\\\ValidationError constructor expects string, string|null given.\",\"line\":72,\"ignorable\":true}}"},{"lineNumber":75,"fileName":"app\/src\/Importer\/EntityImporter\/EntityImporter.php","type":"Call to an undefined method","message":"message","fullDetails":"{\"absoluteFilePath\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/EntityImporter.php\",\"message\":{\"message\":\"Call to an undefined method Symfony\\\\Component\\\\Form\\\\FormError|Symfony\\\\Component\\\\Form\\\\FormErrorIterator::getOrigin().\",\"line\":75,\"ignorable\":true}}"},{"lineNumber":76,"fileName":"app\/src\/Importer\/EntityImporter\/EntityImporter.php","type":"Call to an undefined method","message":"message","fullDetails":"{\"absoluteFilePath\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/EntityImporter.php\",\"message\":{\"message\":\"Call to an undefined method Symfony\\\\Component\\\\Form\\\\FormError|Symfony\\\\Component\\\\Form\\\\FormErrorIterator::getMessage().\",\"line\":76,\"ignorable\":true}}"},{"lineNumber":19,"fileName":"app\/src\/Importer\/EntityImporter\/Form\/AbstractEntityCollectionTransformer.php","type":"PHPDoc tag @param has invalid value ($entityRepository): Unexpected token \"$entityRepository\", expected TOKEN_IDENTIFIER at offset 81","message":"message","fullDetails":"{\"absoluteFilePath\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/AbstractEntityCollectionTransformer.php\",\"message\":{\"message\":\"PHPDoc tag @param has invalid value ($entityRepository): Unexpected token \\\"$entityRepository\\\", expected TOKEN_IDENTIFIER at offset 81\",\"line\":19,\"ignorable\":true}}"},{"lineNumber":19,"fileName":"app\/src\/Importer\/EntityImporter\/Form\/AbstractEntityTransformer.php","type":"PHPDoc tag @param has invalid value ($entityRepository): Unexpected token \"$entityRepository\", expected TOKEN_IDENTIFIER at offset 63","message":"message","fullDetails":"{\"absoluteFilePath\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/AbstractEntityTransformer.php\",\"message\":{\"message\":\"PHPDoc tag @param has invalid value ($entityRepository): Unexpected token \\\"$entityRepository\\\", expected TOKEN_IDENTIFIER at offset 63\",\"line\":19,\"ignorable\":true}}"},{"lineNumber":55,"fileName":"app\/src\/Importer\/EntityImporter\/Form\/EventTransformer.php","type":"Call to an undefined method","message":"message","fullDetails":"{\"absoluteFilePath\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/EntityImporter\\\/Form\\\/EventTransformer.php\",\"message\":{\"message\":\"Call to an undefined method Phpsw\\\\Website\\\\Repository\\\\EventRepositoryInterface::findById().\",\"line\":55,\"ignorable\":true}}"},{"lineNumber":68,"fileName":"app\/src\/Importer\/Importer.php","type":"Parameter #1 $json of function json_decode expects string, string|false given.","message":"message","fullDetails":"{\"absoluteFilePath\":\"\\\/vagrant\\\/app\\\/src\\\/Importer\\\/Importer.php\",\"message\":{\"message\":\"Parameter #1 $json of function json_decode expects string, string|false given.\",\"line\":68,\"ignorable\":true}}"},{"lineNumber":14,"fileName":"app\/src\/Repository\/InMemory\/AbstractRepository.php","type":"PHPDoc tag @param has invalid value ($entity): Unexpected token \"$entity\", expected TOKEN_IDENTIFIER at offset 52","message":"message","fullDetails":"{\"absoluteFilePath\":\"\\\/vagrant\\\/app\\\/src\\\/Repository\\\/InMemory\\\/AbstractRepository.php\",\"message\":{\"message\":\"PHPDoc tag @param has invalid value ($entity): Unexpected token \\\"$entity\\\", expected TOKEN_IDENTIFIER at offset 52\",\"line\":14,\"ignorable\":true}}"},{"lineNumber":33,"fileName":"app\/src\/WebsiteGenerator\/TemplateRenderer\/TwigExtension\/DateTwigExtension.php","type":"Parameter #4 $mon of function mktime expects int, string given.","message":"message","fullDetails":"{\"absoluteFilePath\":\"\\\/vagrant\\\/app\\\/src\\\/WebsiteGenerator\\\/TemplateRenderer\\\/TwigExtension\\\/DateTwigExtension.php\",\"message\":{\"message\":\"Parameter #4 $mon of function mktime expects int, string given.\",\"line\":33,\"ignorable\":true}}"},{"lineNumber":33,"fileName":"app\/src\/WebsiteGenerator\/TemplateRenderer\/TwigExtension\/DateTwigExtension.php","type":"Parameter #6 $year of function mktime expects int, string given.","message":"message","fullDetails":"{\"absoluteFilePath\":\"\\\/vagrant\\\/app\\\/src\\\/WebsiteGenerator\\\/TemplateRenderer\\\/TwigExtension\\\/DateTwigExtension.php\",\"message\":{\"message\":\"Parameter #6 $year of function mktime expects int, string given.\",\"line\":33,\"ignorable\":true}}"},{"lineNumber":11,"fileName":"app\/src\/bootstrap.php","type":"Parameter #1 $callable of static method expects callable, array(mixed, 'loadClass') given.","message":"message","fullDetails":"{\"absoluteFilePath\":\"\\\/vagrant\\\/app\\\/src\\\/bootstrap.php\",\"message\":{\"message\":\"Parameter #1 $callable of static method Doctrine\\\\Common\\\\Annotations\\\\AnnotationRegistry::registerLoader() expects callable, array(mixed, 'loadClass') given.\",\"line\":11,\"ignorable\":true}}"}]} \ No newline at end of file From 043220a2004bb5777fc044d84a841ab44e70fe37 Mon Sep 17 00:00:00 2001 From: Dave Liddament Date: Sun, 30 Dec 2018 15:00:43 +0000 Subject: [PATCH 10/12] UPDATE composer scripts for phpstan --- composer.json | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/composer.json b/composer.json index f3d6af3..0468916 100644 --- a/composer.json +++ b/composer.json @@ -69,10 +69,20 @@ ], "static-analysis" : [ + "@static-analysis-psalm", + "@static-analysis-phpstan" + ], + + "static-analysis-psalm" : [ "@psalm", "sarb remove-baseline-results -f reports/psalm/psalm.json reports/sarb/psalm-sarb-baseline.json reports/psalm/psalm-baseline-removed.json" ], + "static-analysis-phpstan" : [ + "@phpstan", + "sarb remove-baseline-results -f reports/phpstan/phpstan.json reports/sarb/phpstan-sarb-baseline.json reports/phpstan/phpstan-baseline-removed.json" + ], + "composer-validate" : "@composer validate --no-check-all --strict", "lint" : "parallel-lint app runner.php", "cs" : "php-cs-fixer fix -v --dry-run --verbose --format=junit > reports/phpcs/junit.xml", From c993d15ce58b289ed8b48abc56cb017b73a716f9 Mon Sep 17 00:00:00 2001 From: Dave Liddament Date: Sun, 30 Dec 2018 21:04:12 +0000 Subject: [PATCH 11/12] COMPOSER - bump up version of SARB composer update --dev dave-liddament/sarb --- composer.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/composer.lock b/composer.lock index 77cd084..8f69b78 100644 --- a/composer.lock +++ b/composer.lock @@ -1802,12 +1802,12 @@ "source": { "type": "git", "url": "https://github.com/DaveLiddament/sarb.git", - "reference": "d9b49ceafe343a30d4ef848627cb7bd23848443d" + "reference": "1e9e05addc96ee5dd0777a6d326c696bc8936c38" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/DaveLiddament/sarb/zipball/d9b49ceafe343a30d4ef848627cb7bd23848443d", - "reference": "d9b49ceafe343a30d4ef848627cb7bd23848443d", + "url": "https://api.github.com/repos/DaveLiddament/sarb/zipball/1e9e05addc96ee5dd0777a6d326c696bc8936c38", + "reference": "1e9e05addc96ee5dd0777a6d326c696bc8936c38", "shasum": "" }, "require": { @@ -1857,7 +1857,7 @@ "php", "static analysis" ], - "time": "2018-12-29T00:12:37+00:00" + "time": "2018-12-30T20:40:22+00:00" }, { "name": "doctrine/instantiator", From 60a25c57e137944c2aae8f4195251227b1643505 Mon Sep 17 00:00:00 2001 From: Dave Liddament Date: Sun, 30 Dec 2018 23:07:42 +0000 Subject: [PATCH 12/12] COMPOSER bump SARB to 0.3.0 composer require --dev dave-liddament/sarb ^0.3.0 --- composer.json | 2 +- composer.lock | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/composer.json b/composer.json index 0468916..3a69b7a 100644 --- a/composer.json +++ b/composer.json @@ -30,7 +30,7 @@ "jakub-onderka/php-parallel-lint": "^0.9.2", "phpstan/phpstan": "^0.10.7", "vimeo/psalm": "^3.0.7", - "dave-liddament/sarb": "dev-master" + "dave-liddament/sarb": "^0.3.0" }, "autoload": { "psr-4" : { diff --git a/composer.lock b/composer.lock index 8f69b78..ce3683e 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +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" ], - "content-hash": "d023deda071543b8f86d0f5c5b97ca2e", + "content-hash": "5400628b62aa48d06ac22022c2dd2e25", "packages": [ { "name": "doctrine/annotations", @@ -1798,7 +1798,7 @@ }, { "name": "dave-liddament/sarb", - "version": "dev-master", + "version": "0.3.0", "source": { "type": "git", "url": "https://github.com/DaveLiddament/sarb.git", @@ -5126,9 +5126,7 @@ ], "aliases": [], "minimum-stability": "stable", - "stability-flags": { - "dave-liddament/sarb": 20 - }, + "stability-flags": [], "prefer-stable": false, "prefer-lowest": false, "platform": [],