diff --git a/composer.json b/composer.json
index 7bcd5c7..986cf65 100644
--- a/composer.json
+++ b/composer.json
@@ -18,6 +18,7 @@
},
"require-dev": {
"phpunit/phpunit": "^5",
+ "phpunit/php-code-coverage": "^4",
"phpstan/phpstan": "^0.11.0"
}
}
diff --git a/composer.lock b/composer.lock
index f909c11..9795420 100644
--- a/composer.lock
+++ b/composer.lock
@@ -1,23 +1,23 @@
{
"_readme": [
"This file locks the dependencies of your project to a known state",
- "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "51b742a6ed2a195b6f88e21197847013",
+ "content-hash": "c78ea4decb148f9a9ca6f4324fe2a984",
"packages": [
{
"name": "doctrine/annotations",
- "version": "v1.6.0",
+ "version": "v1.8.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/annotations.git",
- "reference": "c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5"
+ "reference": "904dca4eb10715b92569fbcd79e201d5c349b6bc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/annotations/zipball/c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5",
- "reference": "c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5",
+ "url": "https://api.github.com/repos/doctrine/annotations/zipball/904dca4eb10715b92569fbcd79e201d5c349b6bc",
+ "reference": "904dca4eb10715b92569fbcd79e201d5c349b6bc",
"shasum": ""
},
"require": {
@@ -26,12 +26,12 @@
},
"require-dev": {
"doctrine/cache": "1.*",
- "phpunit/phpunit": "^6.4"
+ "phpunit/phpunit": "^7.5"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.6.x-dev"
+ "dev-master": "1.7.x-dev"
}
},
"autoload": {
@@ -44,6 +44,10 @@
"MIT"
],
"authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
{
"name": "Roman Borschel",
"email": "roman@code-factory.org"
@@ -52,10 +56,6 @@
"name": "Benjamin Eberlei",
"email": "kontakt@beberlei.de"
},
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com"
@@ -72,20 +72,20 @@
"docblock",
"parser"
],
- "time": "2017-12-06T07:11:42+00:00"
+ "time": "2019-10-01T18:55:10+00:00"
},
{
"name": "doctrine/cache",
- "version": "v1.7.1",
+ "version": "1.10.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/cache.git",
- "reference": "b3217d58609e9c8e661cd41357a54d926c4a2a1a"
+ "reference": "382e7f4db9a12dc6c19431743a2b096041bcdd62"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/cache/zipball/b3217d58609e9c8e661cd41357a54d926c4a2a1a",
- "reference": "b3217d58609e9c8e661cd41357a54d926c4a2a1a",
+ "url": "https://api.github.com/repos/doctrine/cache/zipball/382e7f4db9a12dc6c19431743a2b096041bcdd62",
+ "reference": "382e7f4db9a12dc6c19431743a2b096041bcdd62",
"shasum": ""
},
"require": {
@@ -96,8 +96,9 @@
},
"require-dev": {
"alcaeus/mongo-php-adapter": "^1.1",
+ "doctrine/coding-standard": "^6.0",
"mongodb/mongodb": "^1.1",
- "phpunit/phpunit": "^5.7",
+ "phpunit/phpunit": "^7.0",
"predis/predis": "~1.0"
},
"suggest": {
@@ -106,7 +107,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.7.x-dev"
+ "dev-master": "1.9.x-dev"
}
},
"autoload": {
@@ -119,6 +120,10 @@
"MIT"
],
"authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
{
"name": "Roman Borschel",
"email": "roman@code-factory.org"
@@ -127,10 +132,6 @@
"name": "Benjamin Eberlei",
"email": "kontakt@beberlei.de"
},
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com"
@@ -140,44 +141,53 @@
"email": "schmittjoh@gmail.com"
}
],
- "description": "Caching library offering an object-oriented API for many cache backends",
- "homepage": "http://www.doctrine-project.org",
+ "description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.",
+ "homepage": "https://www.doctrine-project.org/projects/cache.html",
"keywords": [
+ "abstraction",
+ "apcu",
"cache",
- "caching"
+ "caching",
+ "couchdb",
+ "memcached",
+ "php",
+ "redis",
+ "xcache"
],
- "time": "2017-08-25T07:02:50+00:00"
+ "time": "2019-11-29T15:36:20+00:00"
},
{
"name": "doctrine/collections",
- "version": "v1.5.0",
+ "version": "1.6.4",
"source": {
"type": "git",
"url": "https://github.com/doctrine/collections.git",
- "reference": "a01ee38fcd999f34d9bfbcee59dbda5105449cbf"
+ "reference": "6b1e4b2b66f6d6e49983cebfe23a21b7ccc5b0d7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/collections/zipball/a01ee38fcd999f34d9bfbcee59dbda5105449cbf",
- "reference": "a01ee38fcd999f34d9bfbcee59dbda5105449cbf",
+ "url": "https://api.github.com/repos/doctrine/collections/zipball/6b1e4b2b66f6d6e49983cebfe23a21b7ccc5b0d7",
+ "reference": "6b1e4b2b66f6d6e49983cebfe23a21b7ccc5b0d7",
"shasum": ""
},
"require": {
- "php": "^7.1"
+ "php": "^7.1.3"
},
"require-dev": {
- "doctrine/coding-standard": "~0.1@dev",
- "phpunit/phpunit": "^5.7"
+ "doctrine/coding-standard": "^6.0",
+ "phpstan/phpstan-shim": "^0.9.2",
+ "phpunit/phpunit": "^7.0",
+ "vimeo/psalm": "^3.2.2"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.3.x-dev"
+ "dev-master": "1.6.x-dev"
}
},
"autoload": {
- "psr-0": {
- "Doctrine\\Common\\Collections\\": "lib/"
+ "psr-4": {
+ "Doctrine\\Common\\Collections\\": "lib/Doctrine/Common/Collections"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -185,6 +195,10 @@
"MIT"
],
"authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
{
"name": "Roman Borschel",
"email": "roman@code-factory.org"
@@ -193,10 +207,6 @@
"name": "Benjamin Eberlei",
"email": "kontakt@beberlei.de"
},
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com"
@@ -206,44 +216,53 @@
"email": "schmittjoh@gmail.com"
}
],
- "description": "Collections Abstraction library",
- "homepage": "http://www.doctrine-project.org",
+ "description": "PHP Doctrine Collections library that adds additional functionality on top of PHP arrays.",
+ "homepage": "https://www.doctrine-project.org/projects/collections.html",
"keywords": [
"array",
"collections",
- "iterator"
+ "iterators",
+ "php"
],
- "time": "2017-07-22T10:37:32+00:00"
+ "time": "2019-11-13T13:07:11+00:00"
},
{
"name": "doctrine/common",
- "version": "v2.8.1",
+ "version": "2.12.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/common.git",
- "reference": "f68c297ce6455e8fd794aa8ffaf9fa458f6ade66"
+ "reference": "2053eafdf60c2172ee1373d1b9289ba1db7f1fc6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/common/zipball/f68c297ce6455e8fd794aa8ffaf9fa458f6ade66",
- "reference": "f68c297ce6455e8fd794aa8ffaf9fa458f6ade66",
+ "url": "https://api.github.com/repos/doctrine/common/zipball/2053eafdf60c2172ee1373d1b9289ba1db7f1fc6",
+ "reference": "2053eafdf60c2172ee1373d1b9289ba1db7f1fc6",
"shasum": ""
},
"require": {
- "doctrine/annotations": "1.*",
- "doctrine/cache": "1.*",
- "doctrine/collections": "1.*",
- "doctrine/inflector": "1.*",
- "doctrine/lexer": "1.*",
- "php": "~7.1"
+ "doctrine/annotations": "^1.0",
+ "doctrine/cache": "^1.0",
+ "doctrine/collections": "^1.0",
+ "doctrine/event-manager": "^1.0",
+ "doctrine/inflector": "^1.0",
+ "doctrine/lexer": "^1.0",
+ "doctrine/persistence": "^1.1",
+ "doctrine/reflection": "^1.0",
+ "php": "^7.1"
},
"require-dev": {
- "phpunit/phpunit": "^5.7"
+ "doctrine/coding-standard": "^1.0",
+ "phpstan/phpstan": "^0.11",
+ "phpstan/phpstan-phpunit": "^0.11",
+ "phpunit/phpunit": "^7.0",
+ "squizlabs/php_codesniffer": "^3.0",
+ "symfony/phpunit-bridge": "^4.0.5"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.8.x-dev"
+ "dev-master": "2.11.x-dev"
}
},
"autoload": {
@@ -256,6 +275,10 @@
"MIT"
],
"authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
{
"name": "Roman Borschel",
"email": "roman@code-factory.org"
@@ -264,10 +287,6 @@
"name": "Benjamin Eberlei",
"email": "kontakt@beberlei.de"
},
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com"
@@ -275,44 +294,47 @@
{
"name": "Johannes Schmitt",
"email": "schmittjoh@gmail.com"
+ },
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com"
}
],
- "description": "Common Library for Doctrine projects",
- "homepage": "http://www.doctrine-project.org",
+ "description": "PHP Doctrine Common project is a library that provides additional functionality that other Doctrine projects depend on such as better reflection support, persistence interfaces, proxies, event system and much more.",
+ "homepage": "https://www.doctrine-project.org/projects/common.html",
"keywords": [
- "annotations",
- "collections",
- "eventmanager",
- "persistence",
- "spl"
+ "common",
+ "doctrine",
+ "php"
],
- "time": "2017-08-31T08:43:38+00:00"
+ "time": "2020-01-10T15:49:25+00:00"
},
{
"name": "doctrine/dbal",
- "version": "v2.7.1",
+ "version": "v2.10.1",
"source": {
"type": "git",
"url": "https://github.com/doctrine/dbal.git",
- "reference": "11037b4352c008373561dc6fc836834eed80c3b5"
+ "reference": "c2b8e6e82732a64ecde1cddf9e1e06cb8556e3d8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/dbal/zipball/11037b4352c008373561dc6fc836834eed80c3b5",
- "reference": "11037b4352c008373561dc6fc836834eed80c3b5",
+ "url": "https://api.github.com/repos/doctrine/dbal/zipball/c2b8e6e82732a64ecde1cddf9e1e06cb8556e3d8",
+ "reference": "c2b8e6e82732a64ecde1cddf9e1e06cb8556e3d8",
"shasum": ""
},
"require": {
- "doctrine/common": "^2.7.1",
+ "doctrine/cache": "^1.0",
+ "doctrine/event-manager": "^1.0",
"ext-pdo": "*",
- "php": "^7.1"
+ "php": "^7.2"
},
"require-dev": {
- "doctrine/coding-standard": "^4.0",
- "phpunit/phpunit": "^7.0",
- "phpunit/phpunit-mock-objects": "!=3.2.4,!=3.2.5",
- "symfony/console": "^2.0.5||^3.0",
- "symfony/phpunit-bridge": "^3.4.5|^4.0.5"
+ "doctrine/coding-standard": "^6.0",
+ "jetbrains/phpstorm-stubs": "^2019.1",
+ "phpstan/phpstan": "^0.11.3",
+ "phpunit/phpunit": "^8.4.1",
+ "symfony/console": "^2.0.5|^3.0|^4.0|^5.0"
},
"suggest": {
"symfony/console": "For helpful console commands such as SQL execution and import of files."
@@ -323,12 +345,13 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.7.x-dev"
+ "dev-master": "2.10.x-dev",
+ "dev-develop": "3.0.x-dev"
}
},
"autoload": {
- "psr-0": {
- "Doctrine\\DBAL\\": "lib/"
+ "psr-4": {
+ "Doctrine\\DBAL\\": "lib/Doctrine/DBAL"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -336,6 +359,10 @@
"MIT"
],
"authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
{
"name": "Roman Borschel",
"email": "roman@code-factory.org"
@@ -344,37 +371,124 @@
"name": "Benjamin Eberlei",
"email": "kontakt@beberlei.de"
},
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com"
}
],
- "description": "Database Abstraction Layer",
- "homepage": "http://www.doctrine-project.org",
+ "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.",
+ "homepage": "https://www.doctrine-project.org/projects/dbal.html",
"keywords": [
+ "abstraction",
"database",
+ "db2",
"dbal",
- "persistence",
- "queryobject"
+ "mariadb",
+ "mssql",
+ "mysql",
+ "oci8",
+ "oracle",
+ "pdo",
+ "pgsql",
+ "postgresql",
+ "queryobject",
+ "sasql",
+ "sql",
+ "sqlanywhere",
+ "sqlite",
+ "sqlserver",
+ "sqlsrv"
],
- "time": "2018-04-07T18:44:18+00:00"
+ "time": "2020-01-04T12:56:21+00:00"
},
{
- "name": "doctrine/inflector",
- "version": "v1.3.0",
+ "name": "doctrine/event-manager",
+ "version": "1.1.0",
"source": {
"type": "git",
- "url": "https://github.com/doctrine/inflector.git",
- "reference": "5527a48b7313d15261292c149e55e26eae771b0a"
+ "url": "https://github.com/doctrine/event-manager.git",
+ "reference": "629572819973f13486371cb611386eb17851e85c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/inflector/zipball/5527a48b7313d15261292c149e55e26eae771b0a",
- "reference": "5527a48b7313d15261292c149e55e26eae771b0a",
+ "url": "https://api.github.com/repos/doctrine/event-manager/zipball/629572819973f13486371cb611386eb17851e85c",
+ "reference": "629572819973f13486371cb611386eb17851e85c",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1"
+ },
+ "conflict": {
+ "doctrine/common": "<2.9@dev"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^6.0",
+ "phpunit/phpunit": "^7.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Common\\": "lib/Doctrine/Common"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ },
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com"
+ }
+ ],
+ "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.",
+ "homepage": "https://www.doctrine-project.org/projects/event-manager.html",
+ "keywords": [
+ "event",
+ "event dispatcher",
+ "event manager",
+ "event system",
+ "events"
+ ],
+ "time": "2019-11-10T09:48:07+00:00"
+ },
+ {
+ "name": "doctrine/inflector",
+ "version": "1.3.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/inflector.git",
+ "reference": "ec3a55242203ffa6a4b27c58176da97ff0a7aec1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/inflector/zipball/ec3a55242203ffa6a4b27c58176da97ff0a7aec1",
+ "reference": "ec3a55242203ffa6a4b27c58176da97ff0a7aec1",
"shasum": ""
},
"require": {
@@ -399,6 +513,10 @@
"MIT"
],
"authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
{
"name": "Roman Borschel",
"email": "roman@code-factory.org"
@@ -407,10 +525,6 @@
"name": "Benjamin Eberlei",
"email": "kontakt@beberlei.de"
},
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com"
@@ -428,31 +542,33 @@
"singularize",
"string"
],
- "time": "2018-01-09T20:05:19+00:00"
+ "time": "2019-10-30T19:59:35+00:00"
},
{
"name": "doctrine/instantiator",
- "version": "1.1.0",
+ "version": "1.3.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/instantiator.git",
- "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda"
+ "reference": "ae466f726242e637cebdd526a7d991b9433bacf1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/instantiator/zipball/185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda",
- "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda",
+ "url": "https://api.github.com/repos/doctrine/instantiator/zipball/ae466f726242e637cebdd526a7d991b9433bacf1",
+ "reference": "ae466f726242e637cebdd526a7d991b9433bacf1",
"shasum": ""
},
"require": {
"php": "^7.1"
},
"require-dev": {
- "athletic/athletic": "~0.1.8",
+ "doctrine/coding-standard": "^6.0",
"ext-pdo": "*",
"ext-phar": "*",
- "phpunit/phpunit": "^6.2.3",
- "squizlabs/php_codesniffer": "^3.0.2"
+ "phpbench/phpbench": "^0.13",
+ "phpstan/phpstan-phpunit": "^0.11",
+ "phpstan/phpstan-shim": "^0.11",
+ "phpunit/phpunit": "^7.0"
},
"type": "library",
"extra": {
@@ -477,39 +593,44 @@
}
],
"description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
- "homepage": "https://github.com/doctrine/instantiator",
+ "homepage": "https://www.doctrine-project.org/projects/instantiator.html",
"keywords": [
"constructor",
"instantiate"
],
- "time": "2017-07-22T11:58:36+00:00"
+ "time": "2019-10-21T16:45:58+00:00"
},
{
"name": "doctrine/lexer",
- "version": "v1.0.1",
+ "version": "1.2.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/lexer.git",
- "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c"
+ "reference": "5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c",
- "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c",
+ "url": "https://api.github.com/repos/doctrine/lexer/zipball/5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6",
+ "reference": "5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6",
"shasum": ""
},
"require": {
- "php": ">=5.3.2"
+ "php": "^7.2"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^6.0",
+ "phpstan/phpstan": "^0.11.8",
+ "phpunit/phpunit": "^8.2"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0.x-dev"
+ "dev-master": "1.2.x-dev"
}
},
"autoload": {
- "psr-0": {
- "Doctrine\\Common\\Lexer\\": "lib/"
+ "psr-4": {
+ "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -517,57 +638,61 @@
"MIT"
],
"authors": [
- {
- "name": "Roman Borschel",
- "email": "roman@code-factory.org"
- },
{
"name": "Guilherme Blanco",
"email": "guilhermeblanco@gmail.com"
},
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
{
"name": "Johannes Schmitt",
"email": "schmittjoh@gmail.com"
}
],
- "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.",
- "homepage": "http://www.doctrine-project.org",
+ "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.",
+ "homepage": "https://www.doctrine-project.org/projects/lexer.html",
"keywords": [
+ "annotations",
+ "docblock",
"lexer",
- "parser"
+ "parser",
+ "php"
],
- "time": "2014-09-09T13:34:57+00:00"
+ "time": "2019-10-30T14:39:59+00:00"
},
{
"name": "doctrine/orm",
- "version": "v2.6.1",
+ "version": "v2.7.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/orm.git",
- "reference": "87ee409783a4a322b5597ebaae558661404055a7"
+ "reference": "4d763ca4c925f647b248b9fa01b5f47aa3685d62"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/orm/zipball/87ee409783a4a322b5597ebaae558661404055a7",
- "reference": "87ee409783a4a322b5597ebaae558661404055a7",
+ "url": "https://api.github.com/repos/doctrine/orm/zipball/4d763ca4c925f647b248b9fa01b5f47aa3685d62",
+ "reference": "4d763ca4c925f647b248b9fa01b5f47aa3685d62",
"shasum": ""
},
"require": {
- "doctrine/annotations": "~1.5",
- "doctrine/cache": "~1.6",
- "doctrine/collections": "^1.4",
- "doctrine/common": "^2.7.1",
- "doctrine/dbal": "^2.6",
- "doctrine/instantiator": "~1.1",
+ "doctrine/annotations": "^1.8",
+ "doctrine/cache": "^1.9.1",
+ "doctrine/collections": "^1.5",
+ "doctrine/common": "^2.11",
+ "doctrine/dbal": "^2.9.3",
+ "doctrine/event-manager": "^1.1",
+ "doctrine/instantiator": "^1.3",
+ "doctrine/persistence": "^1.2",
"ext-pdo": "*",
"php": "^7.1",
- "symfony/console": "~3.0|~4.0"
+ "symfony/console": "^3.0|^4.0|^5.0"
},
"require-dev": {
- "doctrine/coding-standard": "^1.0",
- "phpunit/phpunit": "^6.5",
- "squizlabs/php_codesniffer": "^3.2",
- "symfony/yaml": "~3.4|~4.0"
+ "doctrine/coding-standard": "^5.0",
+ "phpunit/phpunit": "^7.5",
+ "symfony/yaml": "^3.4|^4.0|^5.0"
},
"suggest": {
"symfony/yaml": "If you want to use YAML Metadata Mapping Driver"
@@ -578,7 +703,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.6.x-dev"
+ "dev-master": "2.7.x-dev"
}
},
"autoload": {
@@ -591,6 +716,10 @@
"MIT"
],
"authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
{
"name": "Roman Borschel",
"email": "roman@code-factory.org"
@@ -599,10 +728,6 @@
"name": "Benjamin Eberlei",
"email": "kontakt@beberlei.de"
},
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com"
@@ -613,42 +738,260 @@
}
],
"description": "Object-Relational-Mapper for PHP",
- "homepage": "http://www.doctrine-project.org",
+ "homepage": "https://www.doctrine-project.org/projects/orm.html",
"keywords": [
"database",
"orm"
],
- "time": "2018-02-27T07:30:56+00:00"
+ "time": "2019-11-19T08:38:05+00:00"
},
{
- "name": "symfony/console",
- "version": "v4.0.8",
+ "name": "doctrine/persistence",
+ "version": "1.3.6",
"source": {
"type": "git",
- "url": "https://github.com/symfony/console.git",
- "reference": "aad9a6fe47319f22748fd764f52d3a7ca6fa6b64"
+ "url": "https://github.com/doctrine/persistence.git",
+ "reference": "5dd3ac5eebef2d0b074daa4440bb18f93132dee4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/aad9a6fe47319f22748fd764f52d3a7ca6fa6b64",
- "reference": "aad9a6fe47319f22748fd764f52d3a7ca6fa6b64",
+ "url": "https://api.github.com/repos/doctrine/persistence/zipball/5dd3ac5eebef2d0b074daa4440bb18f93132dee4",
+ "reference": "5dd3ac5eebef2d0b074daa4440bb18f93132dee4",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/annotations": "^1.0",
+ "doctrine/cache": "^1.0",
+ "doctrine/collections": "^1.0",
+ "doctrine/event-manager": "^1.0",
+ "doctrine/reflection": "^1.1",
+ "php": "^7.1"
+ },
+ "conflict": {
+ "doctrine/common": "<2.10@dev"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^6.0",
+ "phpstan/phpstan": "^0.11",
+ "phpunit/phpunit": "^7.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.3.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Common\\": "lib/Doctrine/Common",
+ "Doctrine\\Persistence\\": "lib/Doctrine/Persistence"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ },
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com"
+ }
+ ],
+ "description": "The Doctrine Persistence project is a set of shared interfaces and functionality that the different Doctrine object mappers share.",
+ "homepage": "https://doctrine-project.org/projects/persistence.html",
+ "keywords": [
+ "mapper",
+ "object",
+ "odm",
+ "orm",
+ "persistence"
+ ],
+ "time": "2020-01-16T22:06:23+00:00"
+ },
+ {
+ "name": "doctrine/reflection",
+ "version": "v1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/reflection.git",
+ "reference": "bc420ead87fdfe08c03ecc3549db603a45b06d4c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/reflection/zipball/bc420ead87fdfe08c03ecc3549db603a45b06d4c",
+ "reference": "bc420ead87fdfe08c03ecc3549db603a45b06d4c",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/annotations": "^1.0",
+ "ext-tokenizer": "*",
+ "php": "^7.1"
+ },
+ "conflict": {
+ "doctrine/common": "<2.9"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^5.0",
+ "doctrine/common": "^2.10",
+ "phpstan/phpstan": "^0.11.0",
+ "phpstan/phpstan-phpunit": "^0.11.0",
+ "phpunit/phpunit": "^7.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Common\\": "lib/Doctrine/Common"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ },
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com"
+ }
+ ],
+ "description": "The Doctrine Reflection project is a simple library used by the various Doctrine projects which adds some additional functionality on top of the reflection functionality that comes with PHP. It allows you to get the reflection information about classes, methods and properties statically.",
+ "homepage": "https://www.doctrine-project.org/projects/reflection.html",
+ "keywords": [
+ "reflection",
+ "static"
+ ],
+ "time": "2020-01-08T19:53:19+00:00"
+ },
+ {
+ "name": "psr/container",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/container.git",
+ "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
+ "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Container\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Common Container Interface (PHP FIG PSR-11)",
+ "homepage": "https://github.com/php-fig/container",
+ "keywords": [
+ "PSR-11",
+ "container",
+ "container-interface",
+ "container-interop",
+ "psr"
+ ],
+ "time": "2017-02-14T16:28:37+00:00"
+ },
+ {
+ "name": "symfony/console",
+ "version": "v4.4.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/console.git",
+ "reference": "82437719dab1e6bdd28726af14cb345c2ec816d0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/console/zipball/82437719dab1e6bdd28726af14cb345c2ec816d0",
+ "reference": "82437719dab1e6bdd28726af14cb345c2ec816d0",
"shasum": ""
},
"require": {
"php": "^7.1.3",
- "symfony/polyfill-mbstring": "~1.0"
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php73": "^1.8",
+ "symfony/service-contracts": "^1.1|^2"
},
"conflict": {
"symfony/dependency-injection": "<3.4",
+ "symfony/event-dispatcher": "<4.3|>=5",
+ "symfony/lock": "<4.4",
"symfony/process": "<3.3"
},
+ "provide": {
+ "psr/log-implementation": "1.0"
+ },
"require-dev": {
"psr/log": "~1.0",
- "symfony/config": "~3.4|~4.0",
- "symfony/dependency-injection": "~3.4|~4.0",
- "symfony/event-dispatcher": "~3.4|~4.0",
- "symfony/lock": "~3.4|~4.0",
- "symfony/process": "~3.4|~4.0"
+ "symfony/config": "^3.4|^4.0|^5.0",
+ "symfony/dependency-injection": "^3.4|^4.0|^5.0",
+ "symfony/event-dispatcher": "^4.3",
+ "symfony/lock": "^4.4|^5.0",
+ "symfony/process": "^3.4|^4.0|^5.0",
+ "symfony/var-dumper": "^4.3|^5.0"
},
"suggest": {
"psr/log": "For using the console logger",
@@ -659,7 +1002,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.0-dev"
+ "dev-master": "4.4-dev"
}
},
"autoload": {
@@ -686,20 +1029,20 @@
],
"description": "Symfony Console Component",
"homepage": "https://symfony.com",
- "time": "2018-04-03T05:24:00+00:00"
+ "time": "2019-12-17T10:32:23+00:00"
},
{
"name": "symfony/polyfill-mbstring",
- "version": "v1.7.0",
+ "version": "v1.13.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b"
+ "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/78be803ce01e55d3491c1397cf1c64beb9c1b63b",
- "reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/7b4aab9743c30be783b73de055d24a39cf4b954f",
+ "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f",
"shasum": ""
},
"require": {
@@ -711,7 +1054,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.7-dev"
+ "dev-master": "1.13-dev"
}
},
"autoload": {
@@ -745,30 +1088,146 @@
"portable",
"shim"
],
- "time": "2018-01-30T19:27:44+00:00"
+ "time": "2019-11-27T14:18:11+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php73",
+ "version": "v1.13.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php73.git",
+ "reference": "4b0e2222c55a25b4541305a053013d5647d3a25f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/4b0e2222c55a25b4541305a053013d5647d3a25f",
+ "reference": "4b0e2222c55a25b4541305a053013d5647d3a25f",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.13-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Php73\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ],
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "time": "2019-11-27T16:25:15+00:00"
+ },
+ {
+ "name": "symfony/service-contracts",
+ "version": "v2.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/service-contracts.git",
+ "reference": "144c5e51266b281231e947b51223ba14acf1a749"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/144c5e51266b281231e947b51223ba14acf1a749",
+ "reference": "144c5e51266b281231e947b51223ba14acf1a749",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2.5",
+ "psr/container": "^1.0"
+ },
+ "suggest": {
+ "symfony/service-implementation": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\Service\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to writing services",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "time": "2019-11-18T17:27:11+00:00"
}
],
"packages-dev": [
{
"name": "composer/xdebug-handler",
- "version": "1.3.1",
+ "version": "1.4.0",
"source": {
"type": "git",
"url": "https://github.com/composer/xdebug-handler.git",
- "reference": "dc523135366eb68f22268d069ea7749486458562"
+ "reference": "cbe23383749496fe0f373345208b79568e4bc248"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/dc523135366eb68f22268d069ea7749486458562",
- "reference": "dc523135366eb68f22268d069ea7749486458562",
+ "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/cbe23383749496fe0f373345208b79568e4bc248",
+ "reference": "cbe23383749496fe0f373345208b79568e4bc248",
"shasum": ""
},
"require": {
- "php": "^5.3.2 || ^7.0",
+ "php": "^5.3.2 || ^7.0 || ^8.0",
"psr/log": "^1.0"
},
"require-dev": {
- "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5"
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8"
},
"type": "library",
"autoload": {
@@ -786,12 +1245,12 @@
"email": "john-stevenson@blueyonder.co.uk"
}
],
- "description": "Restarts a process without xdebug.",
+ "description": "Restarts a process without Xdebug.",
"keywords": [
"Xdebug",
"performance"
],
- "time": "2018-11-29T10:59:02+00:00"
+ "time": "2019-11-06T16:40:04+00:00"
},
{
"name": "jean85/pretty-package-versions",
@@ -846,25 +1305,28 @@
},
{
"name": "myclabs/deep-copy",
- "version": "1.7.0",
+ "version": "1.9.5",
"source": {
"type": "git",
"url": "https://github.com/myclabs/DeepCopy.git",
- "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e"
+ "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e",
- "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e",
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/b2c28789e80a97badd14145fda39b545d83ca3ef",
+ "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef",
"shasum": ""
},
"require": {
- "php": "^5.6 || ^7.0"
+ "php": "^7.1"
+ },
+ "replace": {
+ "myclabs/deep-copy": "self.version"
},
"require-dev": {
"doctrine/collections": "^1.0",
"doctrine/common": "^2.6",
- "phpunit/phpunit": "^4.1"
+ "phpunit/phpunit": "^7.1"
},
"type": "library",
"autoload": {
@@ -887,43 +1349,43 @@
"object",
"object graph"
],
- "time": "2017-10-19T19:58:43+00:00"
+ "time": "2020-01-17T21:11:47+00:00"
},
{
"name": "nette/bootstrap",
- "version": "v2.4.6",
+ "version": "v3.0.1",
"source": {
"type": "git",
"url": "https://github.com/nette/bootstrap.git",
- "reference": "268816e3f1bb7426c3a4ceec2bd38a036b532543"
+ "reference": "b45a1e33b6a44beb307756522396551e5a9ff249"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/bootstrap/zipball/268816e3f1bb7426c3a4ceec2bd38a036b532543",
- "reference": "268816e3f1bb7426c3a4ceec2bd38a036b532543",
+ "url": "https://api.github.com/repos/nette/bootstrap/zipball/b45a1e33b6a44beb307756522396551e5a9ff249",
+ "reference": "b45a1e33b6a44beb307756522396551e5a9ff249",
"shasum": ""
},
"require": {
- "nette/di": "~2.4.7",
- "nette/utils": "~2.4",
- "php": ">=5.6.0"
+ "nette/di": "^3.0",
+ "nette/utils": "^3.0",
+ "php": ">=7.1"
},
"conflict": {
- "nette/nette": "<2.2"
+ "tracy/tracy": "<2.6"
},
"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"
+ "latte/latte": "^2.2",
+ "nette/application": "^3.0",
+ "nette/caching": "^3.0",
+ "nette/database": "^3.0",
+ "nette/forms": "^3.0",
+ "nette/http": "^3.0",
+ "nette/mail": "^3.0",
+ "nette/robot-loader": "^3.0",
+ "nette/safe-stream": "^2.2",
+ "nette/security": "^3.0",
+ "nette/tester": "^2.0",
+ "tracy/tracy": "^2.6"
},
"suggest": {
"nette/robot-loader": "to use Configurator::createRobotLoader()",
@@ -932,7 +1394,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.4-dev"
+ "dev-master": "3.0-dev"
}
},
"autoload": {
@@ -963,41 +1425,43 @@
"configurator",
"nette"
],
- "time": "2018-05-17T12:52:20+00:00"
+ "time": "2019-09-30T08:19:38+00:00"
},
{
"name": "nette/di",
- "version": "v2.4.14",
+ "version": "v3.0.3",
"source": {
"type": "git",
"url": "https://github.com/nette/di.git",
- "reference": "923da3e2c0aa53162ef455472c0ac7787b096c5a"
+ "reference": "77d69061cbf8f9cfb7363dd983136f51213d3e41"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/di/zipball/923da3e2c0aa53162ef455472c0ac7787b096c5a",
- "reference": "923da3e2c0aa53162ef455472c0ac7787b096c5a",
+ "url": "https://api.github.com/repos/nette/di/zipball/77d69061cbf8f9cfb7363dd983136f51213d3e41",
+ "reference": "77d69061cbf8f9cfb7363dd983136f51213d3e41",
"shasum": ""
},
"require": {
"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"
+ "nette/neon": "^3.0",
+ "nette/php-generator": "^3.3.3",
+ "nette/robot-loader": "^3.2",
+ "nette/schema": "^1.0",
+ "nette/utils": "^3.1",
+ "php": ">=7.1"
},
"conflict": {
- "nette/bootstrap": "<2.4",
- "nette/nette": "<2.2"
+ "nette/bootstrap": "<3.0"
},
"require-dev": {
- "nette/tester": "^2.0",
+ "nette/tester": "^2.2",
+ "phpstan/phpstan": "^0.12",
"tracy/tracy": "^2.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.4-dev"
+ "dev-master": "3.0-dev"
}
},
"autoload": {
@@ -1008,8 +1472,8 @@
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause",
- "GPL-2.0",
- "GPL-3.0"
+ "GPL-2.0-only",
+ "GPL-3.0-only"
],
"authors": [
{
@@ -1032,37 +1496,38 @@
"nette",
"static"
],
- "time": "2018-09-17T15:47:40+00:00"
+ "time": "2020-01-20T12:14:54+00:00"
},
{
"name": "nette/finder",
- "version": "v2.4.2",
+ "version": "v2.5.2",
"source": {
"type": "git",
"url": "https://github.com/nette/finder.git",
- "reference": "ee951a656cb8ac622e5dd33474a01fd2470505a0"
+ "reference": "4ad2c298eb8c687dd0e74ae84206a4186eeaed50"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/finder/zipball/ee951a656cb8ac622e5dd33474a01fd2470505a0",
- "reference": "ee951a656cb8ac622e5dd33474a01fd2470505a0",
+ "url": "https://api.github.com/repos/nette/finder/zipball/4ad2c298eb8c687dd0e74ae84206a4186eeaed50",
+ "reference": "4ad2c298eb8c687dd0e74ae84206a4186eeaed50",
"shasum": ""
},
"require": {
- "nette/utils": "~2.4",
- "php": ">=5.6.0"
+ "nette/utils": "^2.4 || ^3.0",
+ "php": ">=7.1"
},
"conflict": {
"nette/nette": "<2.2"
},
"require-dev": {
- "nette/tester": "~2.0",
+ "nette/tester": "^2.0",
+ "phpstan/phpstan": "^0.12",
"tracy/tracy": "^2.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.4-dev"
+ "dev-master": "2.5-dev"
}
},
"autoload": {
@@ -1094,35 +1559,36 @@
"iterator",
"nette"
],
- "time": "2018-06-28T11:49:23+00:00"
+ "time": "2020-01-03T20:35:40+00:00"
},
{
"name": "nette/neon",
- "version": "v2.4.3",
+ "version": "v3.1.0",
"source": {
"type": "git",
"url": "https://github.com/nette/neon.git",
- "reference": "5e72b1dd3e2d34f0863c5561139a19df6a1ef398"
+ "reference": "0a18fc88801a14d66587932de133eeca01f7ce8e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/neon/zipball/5e72b1dd3e2d34f0863c5561139a19df6a1ef398",
- "reference": "5e72b1dd3e2d34f0863c5561139a19df6a1ef398",
+ "url": "https://api.github.com/repos/nette/neon/zipball/0a18fc88801a14d66587932de133eeca01f7ce8e",
+ "reference": "0a18fc88801a14d66587932de133eeca01f7ce8e",
"shasum": ""
},
"require": {
"ext-iconv": "*",
"ext-json": "*",
- "php": ">=5.6.0"
+ "php": ">=7.1"
},
"require-dev": {
- "nette/tester": "~2.0",
+ "nette/tester": "^2.0",
+ "phpstan/phpstan": "^0.12",
"tracy/tracy": "^2.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.4-dev"
+ "dev-master": "3.1-dev"
}
},
"autoload": {
@@ -1155,37 +1621,35 @@
"nette",
"yaml"
],
- "time": "2018-03-21T12:12:21+00:00"
+ "time": "2019-12-27T04:00:04+00:00"
},
{
"name": "nette/php-generator",
- "version": "v3.0.5",
+ "version": "v3.3.3",
"source": {
"type": "git",
"url": "https://github.com/nette/php-generator.git",
- "reference": "ea90209c2e8a7cd087b2742ca553c047a8df5eff"
+ "reference": "a4ff22c91681fefaa774cf952a2b69c2ec9477c1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/php-generator/zipball/ea90209c2e8a7cd087b2742ca553c047a8df5eff",
- "reference": "ea90209c2e8a7cd087b2742ca553c047a8df5eff",
+ "url": "https://api.github.com/repos/nette/php-generator/zipball/a4ff22c91681fefaa774cf952a2b69c2ec9477c1",
+ "reference": "a4ff22c91681fefaa774cf952a2b69c2ec9477c1",
"shasum": ""
},
"require": {
- "nette/utils": "^2.4.2 || ~3.0.0",
- "php": ">=7.0"
- },
- "conflict": {
- "nette/nette": "<2.2"
+ "nette/utils": "^2.4.2 || ^3.0",
+ "php": ">=7.1"
},
"require-dev": {
"nette/tester": "^2.0",
+ "phpstan/phpstan": "^0.12",
"tracy/tracy": "^2.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.0-dev"
+ "dev-master": "3.3-dev"
}
},
"autoload": {
@@ -1196,8 +1660,8 @@
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause",
- "GPL-2.0",
- "GPL-3.0"
+ "GPL-2.0-only",
+ "GPL-3.0-only"
],
"authors": [
{
@@ -1209,7 +1673,7 @@
"homepage": "https://nette.org/contributors"
}
],
- "description": "🐘 Nette PHP Generator: generates neat PHP code for you. Supports new PHP 7.2 features.",
+ "description": "🐘 Nette PHP Generator: generates neat PHP code for you. Supports new PHP 7.4 features.",
"homepage": "https://nette.org",
"keywords": [
"code",
@@ -1217,39 +1681,37 @@
"php",
"scaffolding"
],
- "time": "2018-08-09T14:32:27+00:00"
+ "time": "2020-01-20T11:40:42+00:00"
},
{
"name": "nette/robot-loader",
- "version": "v3.1.0",
+ "version": "v3.2.1",
"source": {
"type": "git",
"url": "https://github.com/nette/robot-loader.git",
- "reference": "fc76c70e740b10f091e502b2e393d0be912f38d4"
+ "reference": "d2a100e1f5cab390c78bc88709abbc91249c3993"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/robot-loader/zipball/fc76c70e740b10f091e502b2e393d0be912f38d4",
- "reference": "fc76c70e740b10f091e502b2e393d0be912f38d4",
+ "url": "https://api.github.com/repos/nette/robot-loader/zipball/d2a100e1f5cab390c78bc88709abbc91249c3993",
+ "reference": "d2a100e1f5cab390c78bc88709abbc91249c3993",
"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"
+ "nette/finder": "^2.5 || ^3.0",
+ "nette/utils": "^3.0",
+ "php": ">=7.1"
},
"require-dev": {
"nette/tester": "^2.0",
+ "phpstan/phpstan": "^0.12",
"tracy/tracy": "^2.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.1-dev"
+ "dev-master": "3.2-dev"
}
},
"autoload": {
@@ -1282,52 +1744,104 @@
"nette",
"trait"
],
- "time": "2018-08-13T14:19:06+00:00"
+ "time": "2019-12-26T22:32:02+00:00"
},
{
- "name": "nette/utils",
- "version": "v2.5.3",
+ "name": "nette/schema",
+ "version": "v1.0.2",
"source": {
"type": "git",
- "url": "https://github.com/nette/utils.git",
- "reference": "17b9f76f2abd0c943adfb556e56f2165460b15ce"
+ "url": "https://github.com/nette/schema.git",
+ "reference": "febf71fb4052c824046f5a33f4f769a6e7fa0cb4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/utils/zipball/17b9f76f2abd0c943adfb556e56f2165460b15ce",
- "reference": "17b9f76f2abd0c943adfb556e56f2165460b15ce",
+ "url": "https://api.github.com/repos/nette/schema/zipball/febf71fb4052c824046f5a33f4f769a6e7fa0cb4",
+ "reference": "febf71fb4052c824046f5a33f4f769a6e7fa0cb4",
"shasum": ""
},
"require": {
- "php": ">=5.6.0"
+ "nette/utils": "^3.1",
+ "php": ">=7.1"
},
- "conflict": {
- "nette/nette": "<2.2"
+ "require-dev": {
+ "nette/tester": "^2.2",
+ "phpstan/phpstan-nette": "^0.12",
+ "tracy/tracy": "^2.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": []
+ },
+ "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 Schema: validating data structures against a given Schema.",
+ "homepage": "https://nette.org",
+ "keywords": [
+ "config",
+ "nette"
+ ],
+ "time": "2020-01-06T22:52:48+00:00"
+ },
+ {
+ "name": "nette/utils",
+ "version": "v3.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nette/utils.git",
+ "reference": "d6cd63d77dd9a85c3a2fae707e1255e44c2bc182"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nette/utils/zipball/d6cd63d77dd9a85c3a2fae707e1255e44c2bc182",
+ "reference": "d6cd63d77dd9a85c3a2fae707e1255e44c2bc182",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
},
"require-dev": {
"nette/tester": "~2.0",
+ "phpstan/phpstan": "^0.12",
"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-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()",
"ext-json": "to use Nette\\Utils\\Json",
"ext-mbstring": "to use Strings::lower() etc...",
+ "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()",
"ext-xml": "to use Strings::length() etc. when mbstring is not available"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.5-dev"
+ "dev-master": "3.1-dev"
}
},
"autoload": {
"classmap": [
"src/"
- ],
- "files": [
- "src/loader.php"
]
},
"notification-url": "https://packagist.org/downloads/",
@@ -1364,20 +1878,20 @@
"utility",
"validation"
],
- "time": "2018-09-18T10:22:16+00:00"
+ "time": "2020-01-03T18:13:31+00:00"
},
{
"name": "nikic/php-parser",
- "version": "v4.2.0",
+ "version": "v4.3.0",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "594bcae1fc0bccd3993d2f0d61a018e26ac2865a"
+ "reference": "9a9981c347c5c49d6dfe5cf826bb882b824080dc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/594bcae1fc0bccd3993d2f0d61a018e26ac2865a",
- "reference": "594bcae1fc0bccd3993d2f0d61a018e26ac2865a",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/9a9981c347c5c49d6dfe5cf826bb882b824080dc",
+ "reference": "9a9981c347c5c49d6dfe5cf826bb882b824080dc",
"shasum": ""
},
"require": {
@@ -1385,7 +1899,8 @@
"php": ">=7.0"
},
"require-dev": {
- "phpunit/phpunit": "^6.5 || ^7.0"
+ "ircmaxell/php-yacc": "0.0.5",
+ "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0"
},
"bin": [
"bin/php-parse"
@@ -1393,7 +1908,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.2-dev"
+ "dev-master": "4.3-dev"
}
},
"autoload": {
@@ -1415,37 +1930,39 @@
"parser",
"php"
],
- "time": "2019-01-12T16:31:37+00:00"
+ "time": "2019-11-08T13:50:10+00:00"
},
{
"name": "ocramius/package-versions",
- "version": "1.3.0",
+ "version": "1.5.1",
"source": {
"type": "git",
"url": "https://github.com/Ocramius/PackageVersions.git",
- "reference": "4489d5002c49d55576fa0ba786f42dbb009be46f"
+ "reference": "1d32342b8c1eb27353c8887c366147b4c2da673c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Ocramius/PackageVersions/zipball/4489d5002c49d55576fa0ba786f42dbb009be46f",
- "reference": "4489d5002c49d55576fa0ba786f42dbb009be46f",
+ "url": "https://api.github.com/repos/Ocramius/PackageVersions/zipball/1d32342b8c1eb27353c8887c366147b4c2da673c",
+ "reference": "1d32342b8c1eb27353c8887c366147b4c2da673c",
"shasum": ""
},
"require": {
"composer-plugin-api": "^1.0.0",
- "php": "^7.1.0"
+ "php": "^7.3.0"
},
"require-dev": {
- "composer/composer": "^1.6.3",
+ "composer/composer": "^1.8.6",
+ "doctrine/coding-standard": "^6.0.0",
"ext-zip": "*",
- "infection/infection": "^0.7.1",
- "phpunit/phpunit": "^7.0.0"
+ "infection/infection": "^0.13.4",
+ "phpunit/phpunit": "^8.2.5",
+ "vimeo/psalm": "^3.4.9"
},
"type": "composer-plugin",
"extra": {
"class": "PackageVersions\\Installer",
"branch-alias": {
- "dev-master": "2.0.x-dev"
+ "dev-master": "1.6.x-dev"
}
},
"autoload": {
@@ -1464,39 +1981,37 @@
}
],
"description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)",
- "time": "2018-02-05T13:05:30+00:00"
+ "time": "2019-07-17T15:49:50+00:00"
},
{
"name": "phpdocumentor/reflection-common",
- "version": "1.0.1",
+ "version": "2.0.0",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/ReflectionCommon.git",
- "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6"
+ "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6",
- "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/63a995caa1ca9e5590304cd845c15ad6d482a62a",
+ "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a",
"shasum": ""
},
"require": {
- "php": ">=5.5"
+ "php": ">=7.1"
},
"require-dev": {
- "phpunit/phpunit": "^4.6"
+ "phpunit/phpunit": "~6"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0.x-dev"
+ "dev-master": "2.x-dev"
}
},
"autoload": {
"psr-4": {
- "phpDocumentor\\Reflection\\": [
- "src"
- ]
+ "phpDocumentor\\Reflection\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -1518,31 +2033,32 @@
"reflection",
"static analysis"
],
- "time": "2017-09-11T18:02:19+00:00"
+ "time": "2018-08-07T13:53:10+00:00"
},
{
"name": "phpdocumentor/reflection-docblock",
- "version": "4.3.0",
+ "version": "4.3.4",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
- "reference": "94fd0001232e47129dd3504189fa1c7225010d08"
+ "reference": "da3fd972d6bafd628114f7e7e036f45944b62e9c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/94fd0001232e47129dd3504189fa1c7225010d08",
- "reference": "94fd0001232e47129dd3504189fa1c7225010d08",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/da3fd972d6bafd628114f7e7e036f45944b62e9c",
+ "reference": "da3fd972d6bafd628114f7e7e036f45944b62e9c",
"shasum": ""
},
"require": {
"php": "^7.0",
- "phpdocumentor/reflection-common": "^1.0.0",
- "phpdocumentor/type-resolver": "^0.4.0",
+ "phpdocumentor/reflection-common": "^1.0.0 || ^2.0.0",
+ "phpdocumentor/type-resolver": "~0.4 || ^1.0.0",
"webmozart/assert": "^1.0"
},
"require-dev": {
- "doctrine/instantiator": "~1.0.5",
+ "doctrine/instantiator": "^1.0.5",
"mockery/mockery": "^1.0",
+ "phpdocumentor/type-resolver": "0.4.*",
"phpunit/phpunit": "^6.4"
},
"type": "library",
@@ -1569,41 +2085,40 @@
}
],
"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-30T07:14:17+00:00"
+ "time": "2019-12-28T18:55:12+00:00"
},
{
"name": "phpdocumentor/type-resolver",
- "version": "0.4.0",
+ "version": "1.0.1",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/TypeResolver.git",
- "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7"
+ "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7",
- "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7",
+ "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/2e32a6d48972b2c1976ed5d8967145b6cec4a4a9",
+ "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9",
"shasum": ""
},
"require": {
- "php": "^5.5 || ^7.0",
- "phpdocumentor/reflection-common": "^1.0"
+ "php": "^7.1",
+ "phpdocumentor/reflection-common": "^2.0"
},
"require-dev": {
- "mockery/mockery": "^0.9.4",
- "phpunit/phpunit": "^5.2||^4.8.24"
+ "ext-tokenizer": "^7.1",
+ "mockery/mockery": "~1",
+ "phpunit/phpunit": "^7.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0.x-dev"
+ "dev-master": "1.x-dev"
}
},
"autoload": {
"psr-4": {
- "phpDocumentor\\Reflection\\": [
- "src/"
- ]
+ "phpDocumentor\\Reflection\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -1616,42 +2131,43 @@
"email": "me@mikevanriel.com"
}
],
- "time": "2017-07-14T14:27:02+00:00"
+ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
+ "time": "2019-08-22T18:11:29+00:00"
},
{
"name": "phpspec/prophecy",
- "version": "1.7.5",
+ "version": "1.10.1",
"source": {
"type": "git",
"url": "https://github.com/phpspec/prophecy.git",
- "reference": "dfd6be44111a7c41c2e884a336cc4f461b3b2401"
+ "reference": "cbe1df668b3fe136bcc909126a0f529a78d4cbbc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpspec/prophecy/zipball/dfd6be44111a7c41c2e884a336cc4f461b3b2401",
- "reference": "dfd6be44111a7c41c2e884a336cc4f461b3b2401",
+ "url": "https://api.github.com/repos/phpspec/prophecy/zipball/cbe1df668b3fe136bcc909126a0f529a78d4cbbc",
+ "reference": "cbe1df668b3fe136bcc909126a0f529a78d4cbbc",
"shasum": ""
},
"require": {
"doctrine/instantiator": "^1.0.2",
"php": "^5.3|^7.0",
- "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0",
- "sebastian/comparator": "^1.1|^2.0",
+ "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0",
+ "sebastian/comparator": "^1.2.3|^2.0|^3.0",
"sebastian/recursion-context": "^1.0|^2.0|^3.0"
},
"require-dev": {
- "phpspec/phpspec": "^2.5|^3.2",
- "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5"
+ "phpspec/phpspec": "^2.5 || ^3.2",
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.7.x-dev"
+ "dev-master": "1.10.x-dev"
}
},
"autoload": {
- "psr-0": {
- "Prophecy\\": "src/"
+ "psr-4": {
+ "Prophecy\\": "src/Prophecy"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -1679,32 +2195,33 @@
"spy",
"stub"
],
- "time": "2018-02-19T10:16:54+00:00"
+ "time": "2019-12-22T21:05:45+00:00"
},
{
"name": "phpstan/phpdoc-parser",
- "version": "0.3.1",
+ "version": "0.3.5",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpdoc-parser.git",
- "reference": "2cc49f47c69b023eaf05b48e6529389893b13d74"
+ "reference": "8c4ef2aefd9788238897b678a985e1d5c8df6db4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/2cc49f47c69b023eaf05b48e6529389893b13d74",
- "reference": "2cc49f47c69b023eaf05b48e6529389893b13d74",
+ "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/8c4ef2aefd9788238897b678a985e1d5c8df6db4",
+ "reference": "8c4ef2aefd9788238897b678a985e1d5c8df6db4",
"shasum": ""
},
"require": {
"php": "~7.1"
},
"require-dev": {
- "consistence/coding-standard": "^2.0.0",
+ "consistence/coding-standard": "^3.5",
"jakub-onderka/php-parallel-lint": "^0.9.2",
"phing/phing": "^2.16.0",
"phpstan/phpstan": "^0.10",
"phpunit/phpunit": "^6.3",
- "slevomat/coding-standard": "^3.3.0",
+ "slevomat/coding-standard": "^4.7.2",
+ "squizlabs/php_codesniffer": "^3.3.2",
"symfony/process": "^3.4 || ^4.0"
},
"type": "library",
@@ -1725,20 +2242,20 @@
"MIT"
],
"description": "PHPDoc parser with support for nullable, intersection and generic types",
- "time": "2019-01-14T12:26:23+00:00"
+ "time": "2019-06-07T19:13:52+00:00"
},
{
"name": "phpstan/phpstan",
- "version": "0.11",
+ "version": "0.11.19",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan.git",
- "reference": "cfb0b43021fb75abe853ab8d88d22cdb37596697"
+ "reference": "63cc502f6957b7f74efbac444b4cf219dcadffd7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan/zipball/cfb0b43021fb75abe853ab8d88d22cdb37596697",
- "reference": "cfb0b43021fb75abe853ab8d88d22cdb37596697",
+ "url": "https://api.github.com/repos/phpstan/phpstan/zipball/63cc502f6957b7f74efbac444b4cf219dcadffd7",
+ "reference": "63cc502f6957b7f74efbac444b4cf219dcadffd7",
"shasum": ""
},
"require": {
@@ -1746,11 +2263,13 @@
"jean85/pretty-package-versions": "^1.0.3",
"nette/bootstrap": "^2.4 || ^3.0",
"nette/di": "^2.4.7 || ^3.0",
+ "nette/neon": "^2.4.3 || ^3.0",
"nette/robot-loader": "^3.0.1",
+ "nette/schema": "^1.0",
"nette/utils": "^2.4.5 || ^3.0",
- "nikic/php-parser": "^4.0.2",
+ "nikic/php-parser": "^4.2.3",
"php": "~7.1",
- "phpstan/phpdoc-parser": "^0.3",
+ "phpstan/phpdoc-parser": "^0.3.5",
"symfony/console": "~3.2 || ~4.0",
"symfony/finder": "~3.2 || ~4.0"
},
@@ -1758,11 +2277,12 @@
"symfony/console": "3.4.16 || 4.1.5"
},
"require-dev": {
- "brianium/paratest": "^2.0",
+ "brianium/paratest": "^2.0 || ^3.0",
"consistence/coding-standard": "^3.5",
"dealerdirect/phpcodesniffer-composer-installer": "^0.4.4",
"ext-intl": "*",
"ext-mysqli": "*",
+ "ext-simplexml": "*",
"ext-soap": "*",
"ext-zip": "*",
"jakub-onderka/php-parallel-lint": "^1.0",
@@ -1772,7 +2292,7 @@
"phpstan/phpstan-php-parser": "^0.11",
"phpstan/phpstan-phpunit": "^0.11",
"phpstan/phpstan-strict-rules": "^0.11",
- "phpunit/phpunit": "^7.0",
+ "phpunit/phpunit": "^7.5.14 || ^8.0",
"slevomat/coding-standard": "^4.7.2",
"squizlabs/php_codesniffer": "^3.3.2"
},
@@ -1788,8 +2308,7 @@
"autoload": {
"psr-4": {
"PHPStan\\": [
- "src/",
- "build/PHPStan"
+ "src/"
]
}
},
@@ -1798,7 +2317,7 @@
"MIT"
],
"description": "PHPStan - PHP Static Analysis Tool",
- "time": "2019-01-15T14:21:47+00:00"
+ "time": "2019-10-22T20:20:22+00:00"
},
{
"name": "phpunit/php-code-coverage",
@@ -2192,16 +2711,16 @@
},
{
"name": "psr/log",
- "version": "1.1.0",
+ "version": "1.1.2",
"source": {
"type": "git",
"url": "https://github.com/php-fig/log.git",
- "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd"
+ "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd",
- "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801",
+ "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801",
"shasum": ""
},
"require": {
@@ -2210,7 +2729,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0.x-dev"
+ "dev-master": "1.1.x-dev"
}
},
"autoload": {
@@ -2235,7 +2754,7 @@
"psr",
"psr-3"
],
- "time": "2018-11-20T15:27:04+00:00"
+ "time": "2019-11-01T11:05:21+00:00"
},
{
"name": "sebastian/code-unit-reverse-lookup",
@@ -2752,16 +3271,16 @@
},
{
"name": "symfony/finder",
- "version": "v4.2.2",
+ "version": "v4.4.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
- "reference": "9094d69e8c6ee3fe186a0ec5a4f1401e506071ce"
+ "reference": "ce8743441da64c41e2a667b8eb66070444ed911e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/9094d69e8c6ee3fe186a0ec5a4f1401e506071ce",
- "reference": "9094d69e8c6ee3fe186a0ec5a4f1401e506071ce",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/ce8743441da64c41e2a667b8eb66070444ed911e",
+ "reference": "ce8743441da64c41e2a667b8eb66070444ed911e",
"shasum": ""
},
"require": {
@@ -2770,7 +3289,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.2-dev"
+ "dev-master": "4.4-dev"
}
},
"autoload": {
@@ -2797,30 +3316,89 @@
],
"description": "Symfony Finder Component",
"homepage": "https://symfony.com",
- "time": "2019-01-03T09:07:35+00:00"
+ "time": "2019-11-17T21:56:56+00:00"
},
{
- "name": "symfony/yaml",
- "version": "v4.0.8",
+ "name": "symfony/polyfill-ctype",
+ "version": "v1.13.1",
"source": {
"type": "git",
- "url": "https://github.com/symfony/yaml.git",
- "reference": "8b34ebb5989df61cbd77eff29a02c4db9ac1069c"
+ "url": "https://github.com/symfony/polyfill-ctype.git",
+ "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/8b34ebb5989df61cbd77eff29a02c4db9ac1069c",
- "reference": "8b34ebb5989df61cbd77eff29a02c4db9ac1069c",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f8f0b461be3385e56d6de3dbb5a0df24c0c275e3",
+ "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3",
"shasum": ""
},
"require": {
- "php": "^7.1.3"
+ "php": ">=5.3.3"
+ },
+ "suggest": {
+ "ext-ctype": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.13-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Ctype\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Gert de Pagter",
+ "email": "BackEndTea@gmail.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for ctype functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "ctype",
+ "polyfill",
+ "portable"
+ ],
+ "time": "2019-11-27T13:56:44+00:00"
+ },
+ {
+ "name": "symfony/yaml",
+ "version": "v4.4.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/yaml.git",
+ "reference": "a08832b974dd5fafe3085a66d41fe4c84bb2628c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/a08832b974dd5fafe3085a66d41fe4c84bb2628c",
+ "reference": "a08832b974dd5fafe3085a66d41fe4c84bb2628c",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1.3",
+ "symfony/polyfill-ctype": "~1.8"
},
"conflict": {
"symfony/console": "<3.4"
},
"require-dev": {
- "symfony/console": "~3.4|~4.0"
+ "symfony/console": "^3.4|^4.0|^5.0"
},
"suggest": {
"symfony/console": "For validating YAML files using the lint command"
@@ -2828,7 +3406,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.0-dev"
+ "dev-master": "4.4-dev"
}
},
"autoload": {
@@ -2855,35 +3433,33 @@
],
"description": "Symfony Yaml Component",
"homepage": "https://symfony.com",
- "time": "2018-04-03T05:24:00+00:00"
+ "time": "2019-12-10T10:33:21+00:00"
},
{
"name": "webmozart/assert",
- "version": "1.3.0",
+ "version": "1.6.0",
"source": {
"type": "git",
"url": "https://github.com/webmozart/assert.git",
- "reference": "0df1908962e7a3071564e857d86874dad1ef204a"
+ "reference": "573381c0a64f155a0d9a23f4b0c797194805b925"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/webmozart/assert/zipball/0df1908962e7a3071564e857d86874dad1ef204a",
- "reference": "0df1908962e7a3071564e857d86874dad1ef204a",
+ "url": "https://api.github.com/repos/webmozart/assert/zipball/573381c0a64f155a0d9a23f4b0c797194805b925",
+ "reference": "573381c0a64f155a0d9a23f4b0c797194805b925",
"shasum": ""
},
"require": {
- "php": "^5.3.3 || ^7.0"
+ "php": "^5.3.3 || ^7.0",
+ "symfony/polyfill-ctype": "^1.8"
+ },
+ "conflict": {
+ "vimeo/psalm": "<3.6.0"
},
"require-dev": {
- "phpunit/phpunit": "^4.6",
- "sebastian/version": "^1.0.1"
+ "phpunit/phpunit": "^4.8.36 || ^7.5.13"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.3-dev"
- }
- },
"autoload": {
"psr-4": {
"Webmozart\\Assert\\": "src/"
@@ -2905,7 +3481,7 @@
"check",
"validate"
],
- "time": "2018-01-29T19:49:41+00:00"
+ "time": "2019-11-24T13:36:37+00:00"
}
],
"aliases": [],
diff --git a/src/Calc/Calc.php b/src/Calc/Calc.php
index e998f97..417daec 100644
--- a/src/Calc/Calc.php
+++ b/src/Calc/Calc.php
@@ -87,7 +87,11 @@ class Calc
$formel = $this->formelCalc->parse($collection->getFormel());
eval('$var = ' . $formel . ';');
}else{
- $var = $this->engine->getVariables()[$collection->getName()];
+ if(!isset($this->engine->getVariables()[$collection->getName()])) {
+ $var = 'XXXXXXXXXXXX';
+ }else{
+ $var = $this->engine->getVariables()[$collection->getName()];
+ }
}
/** @var Edge $edge */
@@ -114,7 +118,9 @@ class Calc
if ($formel != "" && $option->getId() != 'weight' && !$option->isAjaxExport()) {
$p = 0;
$formel = str_replace("tonumber", '$this->toNumber', $formel);
+
eval('@$p = ' . $formel . ';');
+ //echo $option->getId(). ' / '.$formel . ' / '.$p.' / '.PHP_EOL.PHP_EOL;
if($p > 0 || $p < 0) {
$price += $p;
}
@@ -122,6 +128,10 @@ class Calc
$this->engine->setVariable('price', $price);
}
}
+
+ if($edge->getEdgesCollectionContainer()->count() > 0) {
+ $price = $this->parseEdgeCollection($price, $option, $edge->getEdgesCollectionContainer());
+ }
}
}
}
diff --git a/src/Calc/CalcValues.php b/src/Calc/CalcValues.php
index c89f4a5..9dc95b9 100644
--- a/src/Calc/CalcValues.php
+++ b/src/Calc/CalcValues.php
@@ -17,6 +17,7 @@ use PSC\Library\Calc\Option\Type\Base;
use PSC\Library\Calc\Option\Type\PaperDbSelect;
use PSC\Library\Calc\Option\Type\Select;
use PSC\Library\Calc\Tests\Mock\Paper;
+use SebastianBergmann\CodeCoverage\Report\PHP;
class CalcValues
{
@@ -81,6 +82,9 @@ class CalcValues
$calcValueAccount1 = 0;
$calcValueAccount2 = 0;
+ eval($this->engine->getParameters());
+ eval($this->engine->getFormulas());
+
/** @var EdgeCollection $collection */
foreach($container as $collection) {
if($collection->getName() == "opt") continue;
@@ -88,7 +92,11 @@ class CalcValues
$formel = $this->formelCalc->parse($collection->getFormel());
eval('$var = ' . $formel . ';');
}else{
- $var = $this->engine->getVariables()[$collection->getName()];
+ if(!isset($this->engine->getVariables()[$collection->getName()])) {
+ $var = 'XXXXXXXX';
+ }else{
+ $var = $this->engine->getVariables()[$collection->getName()];
+ }
}
/** @var Edge $edge */
@@ -99,11 +107,12 @@ class CalcValues
if($edge->getCalcValue() != "") {
$cv = $this->formelCalc->parse($edge->getCalcValue());
eval('$cv = ' . $cv . ';');
- if($isSub) {
- $this->engine->addCalcVariable($id, $cv);
- }else{
- $this->engine->addCalcVariable($id . '_' . $collection->getName(), $cv);
- }
+ //echo $id . ' '. $this->formelCalc->parse($edge->getCalcValue()) . ' ' . $cv . ' '. PHP_EOL.PHP_EOL;
+
+ $this->engine->addCalcVariable($id, $cv);
+
+ $this->engine->addCalcVariable($id . '_' . $collection->getName(), $cv);
+
}
if($edge->getEdgesCollectionContainer()->count() > 0) {
diff --git a/src/Engine.php b/src/Engine.php
index 8af7fb7..0752290 100644
--- a/src/Engine.php
+++ b/src/Engine.php
@@ -52,6 +52,8 @@ class Engine
/** @var string */
protected $activeArticle = false;
+ /** @var \SimpleXMLElement $templates */
+ protected $templates;
/**
* Load XML From String
@@ -76,7 +78,9 @@ class Engine
$parser = new Parser();
$parser->setPaperContainer($this->paperContainer);
$parser->setPaperRepository($this->paperRepository);
-
+ if($this->templates) {
+ $parser->setTemplates($this->templates);
+ }
foreach ($this->xml as $article) {
$this->articles->append($parser->parse($article));
@@ -231,6 +235,10 @@ class Engine
$calcValues = new CalcValues($this, $this->article);
$calcValues->calc();
+ // CALC Values
+ $calcValues = new CalcValues($this, $this->article);
+ $calcValues->calc();
+
// Check if Option is valid
$calcValid = new Valid($this, $this->article);
$calcValid->perform(true);
@@ -360,4 +368,17 @@ class Engine
return $tmp;
}
+ public function setTemplates($templates)
+ {
+ $this->templates = simplexml_load_string($templates);
+ }
+
+ /**
+ * @return \SimpleXMLElement
+ */
+ public function getTemplates(): \SimpleXMLElement
+ {
+ return $this->templates;
+ }
+
}
\ No newline at end of file
diff --git a/src/Option/Parser.php b/src/Option/Parser.php
index f7b2b1d..a623b44 100644
--- a/src/Option/Parser.php
+++ b/src/Option/Parser.php
@@ -4,6 +4,7 @@ namespace PSC\Library\Calc\Option;
use PSC\Library\Calc\Option\Parser\Hidden;
use PSC\Library\Calc\Option\Parser\Input;
use PSC\Library\Calc\Option\Parser\Select;
+use PSC\Library\Calc\Option\Parser\Template;
use PSC\Library\Calc\Option\Parser\Text;
use PSC\Library\Calc\PaperContainer\Container;
@@ -35,6 +36,9 @@ class Parser
case 'hidden':
$obj = new Hidden($node);
break;
+ case 'template':
+ $obj = new Template($node);
+ break;
}
return $obj;
diff --git a/src/Option/Parser/Template.php b/src/Option/Parser/Template.php
new file mode 100644
index 0000000..c4d1226
--- /dev/null
+++ b/src/Option/Parser/Template.php
@@ -0,0 +1,25 @@
+element = new \PSC\Library\Calc\Option\Type\Template();
+ parent::__construct($node);
+ }
+
+ public function parse()
+ {
+ parent::parse();
+
+ if($this->node['select']) {
+ $this->element->setSelect((string)$this->node['select']);
+ }
+ return $this->element;
+ }
+
+}
\ No newline at end of file
diff --git a/src/Option/Type/PaperDbSelect.php b/src/Option/Type/PaperDbSelect.php
index 779bd71..e78d09c 100644
--- a/src/Option/Type/PaperDbSelect.php
+++ b/src/Option/Type/PaperDbSelect.php
@@ -24,6 +24,31 @@ class PaperDbSelect extends Select
$variables[$this->getId() . '_digital_fix'] = $paper->getDigitalFix();
$variables[$this->getId() . '_digital_var'] = $paper->getDigitalVar();
+ $variables[$this->getId() . '_papiertyp1'] = $paper->getPapierTyp1();
+ $variables[$this->getId() . '_papiertyp2'] = $paper->getPapierTyp2();
+ $variables[$this->getId() . '_papiertyp3'] = $paper->getPapierTyp3();
+ $variables[$this->getId() . '_papiertyp4'] = $paper->getPapierTyp4();
+ $variables[$this->getId() . '_papiertyp5'] = $paper->getPapierTyp5();
+ $variables[$this->getId() . '_papiertyp6'] = $paper->getPapierTyp6();
+ $variables[$this->getId() . '_papiertyp7'] = $paper->getPapierTyp7();
+ $variables[$this->getId() . '_papiertyp8'] = $paper->getPapierTyp8();
+ $variables[$this->getId() . '_papiertyp9'] = $paper->getPapierTyp9();
+ $variables[$this->getId() . '_papiertyp10'] = $paper->getPapierTyp10();
+ $variables[$this->getId() . '_papiertyp11'] = $paper->getPapierTyp11();
+ $variables[$this->getId() . '_papiertyp12'] = $paper->getPapierTyp12();
+ $variables[$this->getId() . '_papiertyp13'] = $paper->getPapierTyp13();
+ $variables[$this->getId() . '_papiertyp14'] = $paper->getPapierTyp14();
+ $variables[$this->getId() . '_umschlagen'] = $paper->getUmschlagen();
+
+ $variables[$this->getId() . '_happy'] = $paper->getHappy();
+ $variables[$this->getId() . '_eq'] = $paper->getEq();
+ $variables[$this->getId() . '_sense'] = $paper->getSense();
+ $variables[$this->getId() . '_sky'] = $paper->getSky();
+ $variables[$this->getId() . '_glam'] = $paper->getGlam();
+ $variables[$this->getId() . '_post'] = $paper->getPost();
+ $variables[$this->getId() . '_sammelform'] = $paper->getSammelform();
+
+
return $variables;
}
diff --git a/src/Option/Type/Template.php b/src/Option/Type/Template.php
new file mode 100644
index 0000000..6f5b819
--- /dev/null
+++ b/src/Option/Type/Template.php
@@ -0,0 +1,27 @@
+select;
+ }
+
+ /**
+ * @param String $select
+ */
+ public function setSelect(String $select): void
+ {
+ $this->select = $select;
+ }
+}
\ No newline at end of file
diff --git a/src/Parser.php b/src/Parser.php
index d3ede4f..6b27a18 100644
--- a/src/Parser.php
+++ b/src/Parser.php
@@ -4,6 +4,7 @@ namespace PSC\Library\Calc;
use Doctrine\Common\Persistence\ObjectRepository;
use PSC\Library\Calc\Option\Parser\Select;
+use PSC\Library\Calc\Option\Parser\Template;
class Parser
{
@@ -15,6 +16,9 @@ class Parser
/** @var ObjectRepository */
protected $paperRepository;
+ /** @var \SimpleXMLElement $templates */
+ protected $templates;
+
public function __construct()
{
}
@@ -33,8 +37,19 @@ class Parser
$obj->setPaperContainer($this->getPaperContainer());
$obj->setPaperRepository($this->getPaperRepository());
}
+ if($obj instanceof Template) {
+ $element = $obj->parse();
- $element = $obj->parse();
+ $default = $element->getDefault();
+ $node = $this->templates->xpath('//option[@id="' . $element->getSelect() . '"]');
+ $obj = $optionParser->getOptByType($node[0]);
+ $element = $obj->parse();
+ if($default != "") {
+ $element->setDefault($default);
+ }
+ }else{
+ $element = $obj->parse();
+ }
$this->article->addOption($element);
}
}
@@ -74,4 +89,9 @@ class Parser
$this->paperRepository = $paperRepository;
}
+ public function setTemplates(\SimpleXMLElement $templates)
+ {
+ $this->templates = $templates;
+ }
+
}
\ No newline at end of file
diff --git a/tests/Article/Complete1Test.php b/tests/Article/Complete1Test.php
index 9d2d6ed..51136a9 100644
--- a/tests/Article/Complete1Test.php
+++ b/tests/Article/Complete1Test.php
@@ -35,8 +35,8 @@ class Complete1Test extends \PHPUnit_Framework_TestCase
public function testIfCalcArticleCorrect()
{
- $this->engine->setParameters([]);
- $this->engine->setFormulas([]);
+ $this->engine->setParameters("");
+ $this->engine->setFormulas("");
$this->engine->setVariables([]);
$this->engine->calc('test1');
$this->assertEquals(0, $this->engine->getPrice());
@@ -45,8 +45,8 @@ class Complete1Test extends \PHPUnit_Framework_TestCase
public function testIfCalcReturnsPrice()
{
- $this->engine->setParameters([]);
- $this->engine->setFormulas([]);
+ $this->engine->setParameters("");
+ $this->engine->setFormulas("");
$this->engine->setVariables(['gebwert' => 20000]);
$this->engine->calc('test1');
$this->assertEquals(18.12, $this->engine->getPrice());
@@ -54,8 +54,8 @@ class Complete1Test extends \PHPUnit_Framework_TestCase
public function testIfCalcReturnsPriceWithEdge()
{
- $this->engine->setParameters([]);
- $this->engine->setFormulas([]);
+ $this->engine->setParameters("");
+ $this->engine->setFormulas("");
$this->engine->setVariables(['gebyn' => 2, 'gebwert' => 20000]);
$this->engine->calc('test1');
$this->assertEquals(0, $this->engine->getPrice());
@@ -63,8 +63,8 @@ class Complete1Test extends \PHPUnit_Framework_TestCase
public function testIfCalcCompletePrice()
{
- $this->engine->setParameters([]);
- $this->engine->setFormulas([]);
+ $this->engine->setParameters("");
+ $this->engine->setFormulas("");
$this->engine->setVariables([
'gebwert' => 20000,
'maschwertjuengerfuenf' => 12000,
diff --git a/tests/Calc/OptionsRemoveTest.php b/tests/Calc/OptionsRemoveTest.php
index 562f821..2df9805 100644
--- a/tests/Calc/OptionsRemoveTest.php
+++ b/tests/Calc/OptionsRemoveTest.php
@@ -37,8 +37,8 @@ class OptionsRemoveTest extends \PHPUnit_Framework_TestCase
public function testIfOptionsNotValid()
{
- $this->engine->setParameters([]);
- $this->engine->setFormulas([]);
+ $this->engine->setParameters("");
+ $this->engine->setFormulas("");
$this->engine->setVariables([]);
$this->engine->calc('test1');
diff --git a/tests/Customer/A/CalcTest.php b/tests/Customer/A/CalcTest.php
new file mode 100644
index 0000000..afab794
--- /dev/null
+++ b/tests/Customer/A/CalcTest.php
@@ -0,0 +1,56 @@
+parse(simplexml_load_string(file_get_contents(__DIR__ . '/papierContainer.xml')));
+
+ $this->engine = new Engine();
+ $this->engine->setPaperContainer($paperContainer);
+ $this->engine->setPaperRepository($repository);
+ $this->engine->setFormulas(file_get_contents(__DIR__ . '/formels.txt'));
+ $this->engine->setParameters(file_get_contents(__DIR__ . '/parameters.txt'));
+ $this->engine->setTemplates(file_get_contents(__DIR__ . '/calcTemplates.xml'));
+
+ $this->engine->loadString(file_get_contents(__DIR__ . '/calc.xml'));
+
+ }
+
+ public function tearDown()
+ {
+ $this->engine = null;
+ }
+
+ public function testIfDefaultPriceIsOk()
+ {
+ $this->assertEquals(229.86 , $this->engine->getPrice());
+ }
+
+ public function testVariant1()
+ {
+ $this->engine->setVariable('falzbrueche', 14);
+ $this->assertEquals(292.78 , $this->engine->getPrice());
+ }
+ public function testVariant2()
+ {
+ $this->engine->setVariable('falzbrueche', 14);
+ $this->engine->setVariable('druckfarben_inhalt', 8);
+ $this->assertEquals(339.15 , $this->engine->getPrice());
+ }
+}
\ No newline at end of file
diff --git a/tests/Customer/A/calc.xml b/tests/Customer/A/calc.xml
new file mode 100644
index 0000000..a58376d
--- /dev/null
+++ b/tests/Customer/A/calc.xml
@@ -0,0 +1,721 @@
+
+
+
+ Prospekte, Sonderformat, gefalzt
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/Customer/A/calcTemplates.xml b/tests/Customer/A/calcTemplates.xml
new file mode 100644
index 0000000..b6ba66c
--- /dev/null
+++ b/tests/Customer/A/calcTemplates.xml
@@ -0,0 +1,160 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/Customer/A/formels.txt b/tests/Customer/A/formels.txt
new file mode 100644
index 0000000..42fb7de
--- /dev/null
+++ b/tests/Customer/A/formels.txt
@@ -0,0 +1,733 @@
+$hilfsvalue_abschlag_sammelform_plano = '((($CVhilfsvalue_sammelform_format_auflage$CV/100*75)+($CVhilfsvalue_sammelform_menge_auflage$CV/100*25))/(75+25)*100)';
+
+$hilfsvalue_sammelform_format_plano = '(max(0,getSammelformFormatPlano($Vsortenzahl$V*$CVformat_offen_breite_auflage$CV*$CVformat_offen_hoehe_auflage$CV)-(5*abs(1.408-max($CVformat_offen_breite_auflage$CV,$CVformat_offen_hoehe_auflage$CV)/min($CVformat_offen_breite_auflage$CV,$CVformat_offen_hoehe_auflage$CV)))))';
+
+if(!function_exists('getSammelformMengenAbschlagPlano')) {
+
+ function getSammelformMengenAbschlagPlano($menge) {
+
+ if($menge < 2500) return 100;
+ if($menge < 7500) return 90;
+ if($menge < 10000) return 80;
+ if($menge < 15000) return 70;
+ if($menge < 20000) return 60;
+ if($menge < 35000) return 50;
+ if($menge < 50000) return 25;
+ return 1;
+ }
+
+ function getSammelformFormatPlano($value) {
+ if($value < 56) return 150;
+ if($value < 63) return 130;
+ if($value < 649) return 100;
+ if($value < 1299) return 90;
+ if($value < 1999) return 80;
+ if($value < 2499) return 60;
+ return 0;
+ }
+
+
+ function getCalcTableValue($what, $papierType1,$papierType2,$papierType3,$papierType4,$papierType5,$papierType6,$papierType7,$papierType8,$papierType9,$papierType10,$papierType11,$papierType12,$papierType13,$papierType14, $kostenDruckplatte, $druckplatteOption, $gammatur, $papierKosten, $weiterVerarbeitung, $seiten, $auflage, $anzahlDruckfarben, $anzahlFarbwechsel, $anzahlDruckJeForm, $format_offen_breite, $format_offen_hoehe, $geiferRand, $bogenRaender) {
+
+ $price = 9999999999;
+ $nutzen = 9999999999;
+ $nettobg = 9999999999;
+ $zuschuss = 9999999999;
+ $bogen_hoehe = 1000;
+ $bogen_breite = 1000;
+ $ctp = 999999999;
+
+ $formate=array();
+ if($papierType1) {
+ $formate[] = array('type' => 1, 'breite' => 88, 'hoehe' => 63, 'seiten' => 4);
+ }
+ if($papierType1 && ($weiterVerarbeitung == 3)) {
+ $formate[] = array('type' => 2, 'breite' => 88, 'hoehe' => 63, 'seiten' => 2);
+ }
+
+ if($papierType2) {
+ $formate[] = array('type' => 5, 'breite' => 100, 'hoehe' => 70, 'seiten' => 4);
+ }
+ if($papierType2 && ($weiterVerarbeitung == 3)) {
+ $formate[] = array('type' => 5, 'breite' => 100, 'hoehe' => 70, 'seiten' => 2);
+ }
+
+ if($papierType3) {
+ //$formate[] = array('type' => 3, 'breite' => 70, 'hoehe' => 50, 'seiten' => 4);
+ }
+ if($papierType3 && ($weiterVerarbeitung == 3)) {
+ //$formate[] = array('type' => 3, 'breite' => 70, 'hoehe' => 50, 'seiten' => 2);
+ }
+
+ if($papierType4) {
+ //$formate[] = array('type' => 7, 'breite' => 61, 'hoehe' => 43, 'seiten' => 4);
+ }
+ if($papierType4 && ($weiterVerarbeitung == 3)) {
+ //$formate[] = array('type' => 7, 'breite' => 61, 'hoehe' => 43, 'seiten' => 2);
+ }
+
+ if($papierType5) {
+ //$formate[] = array('type' => 7, 'breite' => 22.9, 'hoehe' => 11.4, 'seiten' => 4);
+ }
+ if($papierType5 && ($weiterVerarbeitung == 3)) {
+ //$formate[] = array('type' => 7, 'breite' => 22.9, 'hoehe' => 11.4, 'seiten' => 2);
+ }
+
+ if($papierType6) {
+ //$formate[] = array('type' => 7, 'breite' => 32.4, 'hoehe' => 22.9, 'seiten' => 4);
+ }
+ if($papierType6 && ($weiterVerarbeitung == 3)) {
+ //$formate[] = array('type' => 7, 'breite' => 32.4, 'hoehe' => 22.9, 'seiten' => 2);
+ }
+
+ if($papierType7) {
+ //$formate[] = array('type' => 7, 'breite' => 35.3, 'hoehe' => 25, 'seiten' => 4);
+ }
+ if($papierType7 && ($weiterVerarbeitung == 3)) {
+ //$formate[] = array('type' => 7, 'breite' => 35.3, 'hoehe' => 25, 'seiten' => 2);
+ }
+
+ if($papierType8) {
+ //$formate[] = array('type' => 7, 'breite' => 22.9, 'hoehe' => 16.2, 'seiten' => 4);
+ }
+ if($papierType8 && ($weiterVerarbeitung == 3)) {
+ //$formate[] = array('type' => 7, 'breite' => 22.9, 'hoehe' => 16.2, 'seiten' => 2);
+ }
+
+ if($papierType9) {
+ //$formate[] = array('type' => 7, 'breite' => 22, 'hoehe' => 11, 'seiten' => 4);
+ }
+ if($papierType9 && ($weiterVerarbeitung == 3)) {
+ //$formate[] = array('type' => 7, 'breite' => 22, 'hoehe' => 11, 'seiten' => 2);
+ }
+
+ if($papierType10) {
+ //$formate[] = array('type' => 7, 'breite' => 22, 'hoehe' => 22, 'seiten' => 4);
+ }
+ if($papierType10 && ($weiterVerarbeitung == 3)) {
+ //$formate[] = array('type' => 7, 'breite' => 22, 'hoehe' => 22, 'seiten' => 2);
+ }
+
+ if($papierType11) {
+ $formate[] = array('type' => 7, 'breite' => 92, 'hoehe' => 65, 'seiten' => 4);
+ }
+ if($papierType11 && ($weiterVerarbeitung == 3)) {
+ $formate[] = array('type' => 7, 'breite' => 92, 'hoehe' => 65, 'seiten' => 2);
+ }
+
+ if($papierType12) {
+ //$formate[] = array('type' => 7, 'breite' => 64, 'hoehe' => 45, 'seiten' => 4);
+ }
+ if($papierType12 && ($weiterVerarbeitung == 3)) {
+ //$formate[] = array('type' => 7, 'breite' => 64, 'hoehe' => 45, 'seiten' => 2);
+ }
+
+ if($papierType13) {
+ //$formate[] = array('type' => 7, 'breite' => 44, 'hoehe' => 31.5, 'seiten' => 4);
+ }
+ if($papierType13 && ($weiterVerarbeitung == 3)) {
+ //$formate[] = array('type' => 7, 'breite' => 44, 'hoehe' => 31.5, 'seiten' => 2);
+ }
+ if($papierType14) {
+ $formate[] = array('type' => 7, 'breite' => 102, 'hoehe' => 72, 'seiten' => 4);
+ }
+ if($papierType14 && ($weiterVerarbeitung == 3)) {
+ $formate[] = array('type' => 7, 'breite' => 102, 'hoehe' => 72, 'seiten' => 2);
+ }
+
+ //echo "
";
+
+ foreach($formate as $key => $format) {
+
+ if($format['seiten'] == 4) {
+ $calc1=floor((($format['breite']-$bogenRaender)/($format_offen_breite)))*floor((($format['hoehe']-$geiferRand))/$format_offen_hoehe)*2;
+ $calc2=floor((($format['hoehe']-$bogenRaender)/($format_offen_breite)))*floor((($format['breite']-$geiferRand))/$format_offen_hoehe)*2;
+ }else{
+ $calc1=floor((($format['breite']-$bogenRaender)/($format_offen_breite/2)))*floor((($format['hoehe']-$geiferRand))/$format_offen_hoehe);
+ $calc2=floor((($format['hoehe']-$bogenRaender)/($format_offen_breite/2)))*floor((($format['breite']-$geiferRand))/$format_offen_hoehe);
+ }
+
+ $nutzen_calc = ($calc1 > $calc2)? $calc1: $calc2;
+
+ $calc1 = 200;
+
+ $calc2 = ($anzahlDruckJeForm*$anzahlDruckfarben*100*ceil($seiten/($nutzen_calc*2))+($anzahlFarbwechsel*100)+($seiten/($nutzen_calc*2)*$auflage*0.02));
+
+ $zuschussCalc = ($calc1 > $calc2)? $calc1 : $calc2;
+
+ $nettoBedruckGesamt = $seiten/$nutzen_calc*$auflage/2;
+ $ctp1 = ceil($seiten/$nutzen_calc)*($anzahlDruckfarben)+$druckplatteOption;
+ $price_calc = ((($nettoBedruckGesamt+$zuschussCalc)*$format['hoehe']*$format['breite']*$gammatur*$papierKosten/1000000000))+($kostenDruckplatte*$ctp1);
+ //var_dump($nutzen_calc);
+ //var_dump($format['hoehe'].'-'.$format['breite'].'-'.$ctp1.'-'.$nettoBedruckGesamt.'-'.$price_calc.'-'.$price);
+ //echo "
";
+
+ if($price_calc < $price && $nutzen > 0) {
+ $price = $price_calc;
+ $nutzen = $nutzen_calc;
+ $ctp = $ctp1;
+ $zuschuss = $zuschussCalc;
+ $nettobg = $nettoBedruckGesamt;
+ $bogen_hoehe = $format['hoehe'];
+ $bogen_breite = $format['breite'];
+ }
+ }
+
+
+
+
+ if($what == 'nutzen') {
+ if($seiten < $nutzen) {
+ return $seiten;
+ }
+ return $nutzen;
+ }
+ if($what == 'nettobg') {
+ return $nettobg;
+ }
+ if($what == 'zuschuss') {
+ return $zuschuss;
+ }
+
+ if($what == 'bogen_hoehe') {
+ return $bogen_hoehe;
+ }
+
+ if($what == 'ctp') {
+ return $ctp;
+ }
+
+ if($what == 'bogen_breite') {
+ return $bogen_breite;
+ }
+ return $price;
+
+ }
+
+
+ function getCalcTableValueUmschlag($what, $papierType1,$papierType2,$papierType3,$papierType4,$papierType5,$papierType6,$papierType7,$papierType8,$papierType9,$papierType10,$papierType11,$papierType12,$papierType13,$papierType14, $kostenDruckplatte, $druckplatteOption, $gammatur, $papierKosten, $umschlagen, $seiten, $auflage, $anzahlDruckfarben, $anzahlFarbwechsel, $anzahlDruckJeForm, $format_offen_breite, $format_offen_hoehe, $geiferRand, $bogenRaender, $umschlag_seiten_bedruckt) {
+
+ $price = 9999999999;
+ $nutzen = 9999999999;
+ $nettobg = 9999999999;
+ $zuschuss = 9999999999;
+ $bogen_hoehe = 1000;
+ $bogen_breite = 1000;
+
+ $formate=array();
+ if($papierType1) {
+ $formate[] = array('type' => 1, 'breite' => 88, 'hoehe' => 63, 'umschlagen' => 0);
+ }
+ if($papierType1 && $umschlagen == 1) {
+ $formate[] = array('type' => 2, 'breite' => 88, 'hoehe' => 63, 'umschlagen' => 1);
+ }
+
+ if($papierType2) {
+ $formate[] = array('type' => 5, 'breite' => 100, 'hoehe' => 70, 'umschlagen' => 0);
+ }
+ if($papierType2 && $umschlagen == 1) {
+ $formate[] = array('type' => 5, 'breite' => 100, 'hoehe' => 70, 'umschlagen' => 1);
+ }
+
+ if($papierType3) {
+ $formate[] = array('type' => 3, 'breite' => 70, 'hoehe' => 50, 'umschlagen' => 0);
+ }
+ if($papierType3 && $umschlagen == 1) {
+ $formate[] = array('type' => 3, 'breite' => 70, 'hoehe' => 50, 'umschlagen' => 1);
+ }
+
+ if($papierType4) {
+ //$formate[] = array('type' => 7, 'breite' => 61, 'hoehe' => 43, 'umschlagen' => 0);
+ }
+ if($papierType4 && $umschlagen == 1) {
+ //$formate[] = array('type' => 7, 'breite' => 61, 'hoehe' => 43, 'umschlagen' => 1);
+ }
+
+ if($papierType5) {
+ //$formate[] = array('type' => 7, 'breite' => 22.9, 'hoehe' => 11.4, 'umschlagen' => 0);
+ }
+ if($papierType5 && $umschlagen == 1) {
+ //$formate[] = array('type' => 7, 'breite' => 22.9, 'hoehe' => 11.4, 'umschlagen' => 1);
+ }
+
+ if($papierType6) {
+ //$formate[] = array('type' => 7, 'breite' => 32.4, 'hoehe' => 22.9, 'umschlagen' => 0);
+ }
+ if($papierType6 && $umschlagen == 1) {
+ //$formate[] = array('type' => 7, 'breite' => 32.4, 'hoehe' => 22.9, 'umschlagen' => 1);
+ }
+
+ if($papierType7) {
+ //$formate[] = array('type' => 7, 'breite' => 35.3, 'hoehe' => 25, 'umschlagen' => 0);
+ }
+ if($papierType7 && $umschlagen == 1) {
+ //$formate[] = array('type' => 7, 'breite' => 35.3, 'hoehe' => 25, 'umschlagen' => 1);
+ }
+
+ if($papierType8) {
+ //$formate[] = array('type' => 7, 'breite' => 22.9, 'hoehe' => 16.2, 'umschlagen' => 0);
+ }
+ if($papierType8 && $umschlagen == 1) {
+ //$formate[] = array('type' => 7, 'breite' => 22.9, 'hoehe' => 16.2, 'umschlagen' => 1);
+ }
+
+ if($papierType9) {
+ //$formate[] = array('type' => 7, 'breite' => 22, 'hoehe' => 11, 'umschlagen' => 0);
+ }
+ if($papierType9 && $umschlagen == 1) {
+ //$formate[] = array('type' => 7, 'breite' => 22, 'hoehe' => 11, 'umschlagen' => 1);
+ }
+
+ if($papierType10) {
+ //$formate[] = array('type' => 7, 'breite' => 22, 'hoehe' => 22, 'umschlagen' => 0);
+ }
+ if($papierType10 && $umschlagen == 1) {
+ //$formate[] = array('type' => 7, 'breite' => 22, 'hoehe' => 22, 'umschlagen' => 1);
+ }
+
+ if($papierType11) {
+ //$formate[] = array('type' => 7, 'breite' => 92, 'hoehe' => 65, 'umschlagen' => 0);
+ }
+ if($papierType11 && $umschlagen == 1) {
+ //$formate[] = array('type' => 7, 'breite' => 92, 'hoehe' => 65, 'umschlagen' => 1);
+ }
+
+ if($papierType12) {
+ //$formate[] = array('type' => 7, 'breite' => 64, 'hoehe' => 45, 'umschlagen' => 0);
+ }
+ if($papierType12 && $umschlagen == 1) {
+ //$formate[] = array('type' => 7, 'breite' => 64, 'hoehe' => 45, 'umschlagen' => 1);
+ }
+
+ if($papierType13) {
+ //$formate[] = array('type' => 7, 'breite' => 44, 'hoehe' => 31.5, 'umschlagen' => 0);
+ }
+ if($papierType13 && ($weiterVerarbeitung == 2 || $weiterVerarbeitung == 3)) {
+ //$formate[] = array('type' => 7, 'breite' => 44, 'hoehe' => 31.5, 'umschlagen' => 1);
+ }
+ if($papierType14) {
+ $formate[] = array('type' => 7, 'breite' => 102, 'hoehe' => 72, 'umschlagen' => 0);
+ }
+ if($papierType14 && $umschlagen == 1) {
+ $formate[] = array('type' => 7, 'breite' => 102, 'hoehe' => 72, 'umschlagen' => 1);
+ }
+
+ //echo "
";
+
+ foreach($formate as $key => $format) {
+
+
+ if($format['umschlagen'] == 0) {
+ $calc1=floor((($format['breite']-$bogenRaender)/($format_offen_breite)))*floor((($format['hoehe']-$geiferRand))/$format_offen_hoehe);
+ $calc2=floor((($format['hoehe']-$bogenRaender)/($format_offen_breite)))*floor((($format['breite']-$geiferRand))/$format_offen_hoehe);
+
+ $ctp1 = $umschlag_seiten_bedruckt*$anzahlDruckfarben+$druckplatteOption;
+
+ }else{
+ $calc1=floor((($format['breite']-$bogenRaender)/($format_offen_breite)))*floor((($format['hoehe']-$geiferRand))/$format_offen_hoehe);
+ $calc2=floor((($format['hoehe']-$bogenRaender)/($format_offen_breite)))*floor((($format['breite']-$geiferRand))/$format_offen_hoehe);
+
+ $ctp1 = $anzahlDruckfarben+$druckplatteOption;
+ }
+
+ $nutzen_calc = ($calc1 > $calc2)? $calc1: $calc2;
+
+ if($format['umschlagen'] == 1) {
+ $nutzen_calc = floor($nutzen_calc/2)*2;
+ }
+
+ if($nutzen_calc == 0) {
+ continue;
+ }
+
+ $calc1 = 150;
+
+ $calc2 = ($anzahlDruckJeForm*$anzahlDruckfarben*100)+($auflage/$nutzen_calc*0.02);
+
+ $zuschussCalc = ($calc1 > $calc2)? $calc1 : $calc2;
+
+ //var_dump($nutzen_calc);
+
+ $nettoBedruckGesamt = $auflage/$nutzen_calc;
+
+ $gramGesch = (100-sqrt((150-$gammatur)*(150-$gammatur))/5)/100;
+
+ $fortdruckGeschwindigkeit = 2500+$gramGesch*(log10($auflage*$auflage)*700);
+
+ $kba1 = 140*($zuschussCalc+$nettoBedruckGesamt)/$fortdruckGeschwindigkeit*$umschlag_seiten_bedruckt*(ceil($anzahlDruckfarben/5));
+ //var_dump($zuschussCalc.' - '.$nettoBedruckGesamt.' - '.$fortdruckGeschwindigkeit.' - '.$umschlag_seiten_bedruckt.' - '.$anzahlDruckfarben);
+ $price_calc = ($format['hoehe']*$format['breite']*($nettoBedruckGesamt+$zuschussCalc)*$gammatur*$papierKosten/1000000000)+($kostenDruckplatte*$ctp1)+$kba1;
+
+ //var_dump($format['hoehe'].' - '.$format['breite'].' - '.$ctp1.' - '.$kba1.' - '.$price_calc.' - '.$price);
+ //echo "
";
+
+
+ if($price_calc < $price) {
+ $price = $price_calc;
+ $nutzen = $nutzen_calc;
+ $zuschuss = $zuschussCalc;
+ $nettobg = $nettoBedruckGesamt;
+ $bogen_hoehe = $format['hoehe'];
+ $bogen_breite = $format['breite'];
+ }
+ }
+
+
+
+
+ if($what == 'nutzen') {
+ return $nutzen;
+ }
+ if($what == 'nettobg') {
+ return $nettobg;
+ }
+ if($what == 'zuschuss') {
+ return $zuschuss;
+ }
+
+ if($what == 'bogen_hoehe') {
+ return $bogen_hoehe;
+ }
+
+ if($what == 'bogen_breite') {
+ return $bogen_breite;
+ }
+ return $price;
+
+ }
+
+ function getPurHelpKlebe($what, $var) {
+
+ $fix = 222;
+ $per = 89;
+
+ if($var > 7) {
+ $fix = 233;
+ $per = 102;
+ }
+ if($var > 12) {
+ $fix = 244;
+ $per = 114;
+ }
+ if($var > 16) {
+ $fix = 366;
+ $per = 228;
+ }
+
+ if($what=='fix') {
+ return $fix;
+ }
+ return $per;
+ }
+
+ function getPurHelpFalz($what, $var) {
+
+ $fix = 10.30;
+ $per = 7.05;
+
+ if($var == 6) {
+ $fix = 15.40;
+ $per = 8.20;
+ }
+ if($var == 8) {
+ $fix = 15.40;
+ $per = 8.40;
+ }
+ if($var == 12) {
+ $fix = 20.50;
+ $per = 9.70;
+ }
+ if($var == 16) {
+ $fix = 31.50;
+ $per = 9.50;
+ }
+ if($var == 24) {
+ $fix = 41.00;
+ $per = 10.70;
+ }
+ if($var == 32) {
+ $fix = 51.20;
+ $per = 11.90;
+ }
+ if($var == 48) {
+ $fix = 102.30;
+ $per = 12.90;
+ }
+
+ if($what=='fix') {
+ return $fix;
+ }
+ return $per;
+ }
+
+
+ function getCalcTableValueOffsetPlano($what, $papierType1,$papierType2,$papierType3,$papierType4,$papierType5,$papierType6,$papierType7,$papierType8,$papierType9,$papierType10,$papierType11,$papierType12,$papierType13,$papierType14, $kostenDruckplatte, $druckplatteOption, $gammatur, $papierKosten, $umschlagen, $seiten, $auflage, $anzahlDruckfarben, $anzahlFarbwechsel, $anzahlSeiten, $format_offen_breite, $format_offen_hoehe, $drucklack, $papier_vs_rs_unterschiedlich) {
+ //var_dump( func_get_args());
+ $price = 9999999999;
+ $nutzen = 9999999999;
+ $nettobg = 9999999999;
+ $zuschuss = 9999999999;
+ $bogen_hoehe = 1000;
+ $bogen_breite = 1000;
+ $ctp = 999999999;
+ $druckgaenge = 99999999;
+ $fortdruckmaschine = 0;
+ $stundensatz = 99999999;
+ $maschine = 'kba';
+
+ $formate=array();
+ if($papierType1) {
+ $formate[] = array('type' => 1, 'breite' => 88, 'hoehe' => 63, 'umschlagen' => 0);
+ }
+ if($papierType1 && $umschlagen == 1) {
+ $formate[] = array('type' => 2, 'breite' => 88, 'hoehe' => 63, 'umschlagen' => 1);
+ }
+
+ if($papierType2) {
+ $formate[] = array('type' => 5, 'breite' => 100, 'hoehe' => 70, 'umschlagen' => 0);
+ }
+ if($papierType2 && $umschlagen == 1) {
+ $formate[] = array('type' => 5, 'breite' => 100, 'hoehe' => 70, 'umschlagen' => 1);
+ }
+
+ if($papierType3) {
+ $formate[] = array('type' => 3, 'breite' => 70, 'hoehe' => 50, 'umschlagen' => 0);
+ }
+ if($papierType3 && $umschlagen == 1) {
+ $formate[] = array('type' => 3, 'breite' => 70, 'hoehe' => 50, 'umschlagen' => 1);
+ }
+
+ if($papierType4) {
+ $formate[] = array('type' => 7, 'breite' => 61, 'hoehe' => 43, 'umschlagen' => 0);
+ }
+ if($papierType4 && $umschlagen == 1) {
+ $formate[] = array('type' => 7, 'breite' => 61, 'hoehe' => 43, 'umschlagen' => 1);
+ }
+
+ if($papierType5) {
+ $formate[] = array('type' => 7, 'breite' => 22.9, 'hoehe' => 11.4, 'umschlagen' => 0);
+ }
+ if($papierType5 && $umschlagen == 1) {
+ $formate[] = array('type' => 7, 'breite' => 22.9, 'hoehe' => 11.4, 'umschlagen' => 1);
+ }
+
+ if($papierType6) {
+ $formate[] = array('type' => 7, 'breite' => 32.4, 'hoehe' => 22.9, 'umschlagen' => 0);
+ }
+ if($papierType6 && $umschlagen == 1) {
+ $formate[] = array('type' => 7, 'breite' => 32.4, 'hoehe' => 22.9, 'umschlagen' => 1);
+ }
+
+ if($papierType7) {
+ $formate[] = array('type' => 7, 'breite' => 35.3, 'hoehe' => 25, 'umschlagen' => 0);
+ }
+ if($papierType7 && $umschlagen == 1) {
+ $formate[] = array('type' => 7, 'breite' => 35.3, 'hoehe' => 25, 'umschlagen' => 1);
+ }
+
+ if($papierType8) {
+ $formate[] = array('type' => 7, 'breite' => 22.9, 'hoehe' => 16.2, 'umschlagen' => 0);
+ }
+ if($papierType8 && $umschlagen == 1) {
+ $formate[] = array('type' => 7, 'breite' => 22.9, 'hoehe' => 16.2, 'umschlagen' => 1);
+ }
+
+ if($papierType9) {
+ $formate[] = array('type' => 7, 'breite' => 22, 'hoehe' => 11, 'umschlagen' => 0);
+ }
+ if($papierType9 && $umschlagen == 1) {
+ $formate[] = array('type' => 7, 'breite' => 22, 'hoehe' => 11, 'umschlagen' => 1);
+ }
+
+ if($papierType10) {
+ $formate[] = array('type' => 7, 'breite' => 22, 'hoehe' => 22, 'umschlagen' => 0);
+ }
+ if($papierType10 && $umschlagen == 1) {
+ $formate[] = array('type' => 7, 'breite' => 22, 'hoehe' => 22, 'umschlagen' => 1);
+ }
+
+ if($papierType11) {
+ $formate[] = array('type' => 7, 'breite' => 92, 'hoehe' => 65, 'umschlagen' => 0);
+ }
+ if($papierType11 && $umschlagen == 1) {
+ $formate[] = array('type' => 7, 'breite' => 92, 'hoehe' => 65, 'umschlagen' => 1);
+ }
+
+ if($papierType12) {
+ $formate[] = array('type' => 7, 'breite' => 64, 'hoehe' => 45, 'umschlagen' => 0);
+ }
+ if($papierType12 && $umschlagen == 1) {
+ $formate[] = array('type' => 7, 'breite' => 64, 'hoehe' => 45, 'umschlagen' => 1);
+ }
+
+ if($papierType13) {
+ $formate[] = array('type' => 7, 'breite' => 44, 'hoehe' => 31.5, 'umschlagen' => 0);
+ }
+ if($papierType13 && $umschlagen == 1) {
+ $formate[] = array('type' => 7, 'breite' => 44, 'hoehe' => 31.5, 'umschlagen' => 1);
+ }
+
+ if($papierType14) {
+ $formate[] = array('type' => 7, 'breite' => 102, 'hoehe' => 72, 'umschlagen' => 0);
+ }
+ if($papierType14 && $umschlagen == 1) {
+ $formate[] = array('type' => 7, 'breite' => 102, 'hoehe' => 72, 'umschlagen' => 1);
+ }
+
+ //echo "
";
+
+ foreach($formate as $key => $format) {
+
+ $geiferRand = getGeiferRand($format);
+ $bogenRaender = getBogenRaender($format);
+
+
+ if($format['umschlagen'] == 0) {
+
+ $nutzen_calc = max(
+ ((floor(($format['breite']-$bogenRaender)/$format_offen_breite))*(floor(($format['hoehe']-$geiferRand)/$format_offen_hoehe))),
+ ((floor(($format['breite']-$bogenRaender)/$format_offen_hoehe)*(floor(($format['hoehe']-$geiferRand)/$format_offen_breite))))
+ );
+
+ }else{
+ $nutzen_calc= 2*floor((max(
+ ((floor(($format['breite']-$bogenRaender)/$format_offen_breite))*(floor(($format['hoehe']-$geiferRand)/$format_offen_hoehe))),
+ ((floor(($format['breite']-$bogenRaender)/$format_offen_hoehe)*(floor(($format['hoehe']-$geiferRand)/$format_offen_breite))))
+ ))/2);
+
+
+ }
+
+
+ if($anzahlSeiten==2 && $papier_vs_rs_unterschiedlich==0 && $nutzen_calc > 1 && $format['umschlagen'] == 1) {
+ $ctp1 = ($anzahlDruckfarben+$drucklack)*$anzahlSeiten/2;
+ }else{
+ $ctp1 = ($anzahlDruckfarben+$drucklack)*$anzahlSeiten;
+ }
+
+ $maschine1 = getMaschine($format['breite'], $format['hoehe']);
+
+ if(getMaschine($format['breite'], $format['hoehe']) == "gto") {
+ $druckgaenge1 = $anzahlSeiten*($anzahlDruckfarben+$drucklack);
+ $fortdruckmaschine1 = 0;
+ $stundensatz1 = 40;
+ $anzahlFarb1 = max($anzahlFarbwechsel, $anzahlDruckfarben-1);
+ }else{
+ $druckgaenge1 = ceil(($anzahlDruckfarben+$drucklack)/5)*$anzahlSeiten;
+ $fortdruckmaschine1 = 4500;
+ $stundensatz1 = 140;
+ $anzahlFarb1 = $anzahlFarbwechsel;
+ }
+
+ $zuschussCalc = intval(max(200,floor(($anzahlDruckfarben*100)+($auflage/$nutzen_calc*0.02))));
+
+ $fortdruckGeschwindigkeit = (log10($auflage*$auflage)*900)*(100-sqrt((150-$gammatur)*(150-$gammatur))/5)/100;
+
+ $nettoBedruckGesamt = (round($auflage/$nutzen_calc,0));
+ $druckkosten = $stundensatz1*((($zuschussCalc+$nettoBedruckGesamt)/$fortdruckGeschwindigkeit*$druckgaenge1)+($ctp1*7/60)+($anzahlFarb1*45/60));
+
+ //var_dump($maschine1.'-'.$stundensatz1.'-'.$zuschussCalc.'-'.$nettoBedruckGesamt.'-'.$fortdruckGeschwindigkeit.'-'.$druckgaenge1.'-'.$ctp1.'-'.$anzahlFarb1);
+ //echo "
";
+
+ $price_calc = (($nettoBedruckGesamt+$zuschussCalc)*($format['hoehe']*$format['breite']*$gammatur*$papierKosten/1000000000)+($kostenDruckplatte*$ctp1))+$druckkosten;
+
+ if($price_calc < $price && $nettoBedruckGesamt != 0) {
+ $price = $price_calc;
+ $nutzen = $nutzen_calc;
+ $ctp = $ctp1;
+ $zuschuss = $zuschussCalc;
+ $nettobg = $nettoBedruckGesamt;
+ $bogen_hoehe = $format['hoehe'];
+ $bogen_breite = $format['breite'];
+ $druckgaenge = $druckgaenge1;
+ $fortdruckmaschine = $fortdruckmaschine1;
+ $stundensatz = $stundensatz1;
+ $maschine = $maschine1;
+ }
+ //var_dump($format['hoehe'].'-'.$format['breite'].'-'.$ctp1.'-'.($zuschussCalc+$nettoBedruckGesamt).'-'.$druckkosten.'-'.$price_calc.'-'.$price);
+ //echo "
";
+ }
+
+
+
+
+ if($what == 'nutzen') {
+ return $nutzen;
+ }
+ if($what == 'nettobg') {
+ return $nettobg;
+ }
+ if($what == 'maschine') {
+ return $maschine;
+ }
+ if($what == 'zuschuss') {
+ return $zuschuss;
+ }
+ if($what == 'fortdruckmaschine') {
+ return $fortdruckmaschine;
+ }
+
+ if($what == 'maschine_stundensatz') {
+ return $stundensatz;
+ }
+
+ if($what == 'bogen_hoehe') {
+ return $bogen_hoehe;
+ }
+
+ if($what == 'ctp') {
+ return $ctp;
+ }
+
+ if($what == 'druckgaenge') {
+ return $druckgaenge;
+ }
+
+ if($what == 'bogen_breite') {
+ return $bogen_breite;
+ }
+ return $price;
+
+ }
+
+ function getMaschine($breite, $hoehe) {
+ if($breite > 49 || $hoehe > 49) {
+
+ return '"kba"';
+ }
+
+ return '"gto"';
+ }
+
+ function getGeiferRand($format) {
+ $maschine = getMaschine($format['breite'], $format['hoehe']);
+
+ if($maschine == 'kba') {
+ return 2.3;
+ }
+
+ return 1.4;
+ }
+
+ function getBogenRaender($format) {
+ $maschine = getMaschine($format['breite'], $format['hoehe']);
+
+ if($maschine == 'kba') {
+ return 1.5;
+ }
+
+ return 0.8;
+ }
+
+ function getMaschineKosten($format) {
+ $maschine = getMaschine($format['breite'], $format['hoehe']);
+
+ if($maschine == 'kba') {
+ return 140;
+ }
+
+ return 40;
+ }
+
+
+}
\ No newline at end of file
diff --git a/tests/Customer/A/papierContainer.xml b/tests/Customer/A/papierContainer.xml
new file mode 100644
index 0000000..139811c
--- /dev/null
+++ b/tests/Customer/A/papierContainer.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/tests/Customer/A/parameters.txt b/tests/Customer/A/parameters.txt
new file mode 100644
index 0000000..d3c0f6e
--- /dev/null
+++ b/tests/Customer/A/parameters.txt
@@ -0,0 +1,201 @@
+$onlinerabatt_flaschenanhaenger_p = 0;
+$onlinerabatt_flaschenanhaenger_f = 10;
+
+$onlinerabatt_digitalplot_p = 0;
+$onlinerabatt_digitalplot_f = 5;
+
+$onlinerabatt_ausdruck_p = 0;
+$onlinerabatt_ausdruck_f = 10;
+
+$onlinerabatt_digitalproof_p = 0;
+$onlinerabatt_digitalproof_f = 0;
+$medienkeil_aufpreis_f = 8;
+
+$onlinerabatt_farbscan_p = 0;
+$onlinerabatt_farbscan_f = 5;
+
+$onlinerabatt_strichscan_p = 0;
+$onlinerabatt_strichscan_f = 5;
+
+$hour_druckvorstufe = 60;
+$geiferRand = 2.3;
+$bogenRaender = 1.5;
+
+$onlinerabatt_broschuere_p = 0;
+$onlinerabatt_broschuere_f = 30;
+$aktionsrabatt_broschuere_p = 3;
+$aktionsrabatt_broschuere_f = 0;
+
+$onlinerabatt_plano_p = 0;
+$onlinerabatt_plano_f = 10;
+
+$onlinerabatt_privatdrucksachen_p = 0;
+$onlinerabatt_privatdrucksachen_f = 5;
+
+$aktionsrabatt_plano_p = 6;
+$aktionsrabatt_plano_p_vk = 6;
+$aktionsrabatt_plano_f = 0;
+$aktionsrabatt_plano_f_vk = 0;
+
+$papierzuschlag_broschuere = 1.3;
+$papierzuschlag_plano = 1.3;
+
+$onlinerabatt_20 = -20;
+$onlinerabatt_10 = -10;
+
+$onlinerabatt_etikett = -10;
+
+$kostenProDruckplatte = 15;
+$stundenSatzDruck = 140;
+$stundenSatzDruckGTO = 40;
+$ruestZeitJeDruckplatte = 5;
+$ruestZeitJeDruckplatteGTO = 15;
+$kostenProZusatzdruckplatteGTO = 35;
+
+$farbwechselZeit = 45;
+$farbwechselZeitGTO = 20;
+
+$stundensatz_wtv_maschinen = 50;
+$stundensatz_wtv = 30;
+$stundensatz_vorstufe = 60;
+$stundensatz_vorstufe_daten_huellen = 60;
+$vorstufe_fixkosten = 20;
+
+$papieraufschlag_huellen = 1.3;
+
+$durckfarbe_preis_je_bogen = 1;
+
+$buchrueckenstaerke = 0.36;
+
+// WTV
+$ringoesen = 60;
+$oesen_stkpreis = 0.20;
+$oesen_fixpreis = 45;
+$beilage_einlegen_bestimmte = 45;
+$beilage_einlegen_unbestimmte = 35;
+$buendeln = 0.15;
+$perforation = 25;
+$laserstanzung = 0.50;
+$folieeinschweissen = 0.13;
+
+$ruestkosten_perforation = 35;
+$ruestkosten_lochung = 15;
+$ruestkosten_umlaufender_karton = 35;
+
+$fixkosten_nummerierung = 15;
+$fixkosten_blockleimung = 25;
+$fixkosten_umlaufender_karton = 0.6;
+
+$umschlag_kaschierung_mk = 0.8;
+$umschlag_kaschierung_gl = 0.6;
+
+$faktor_klein_gross_falzung = 3;
+
+$plano_fa_aufpreis_anderes_dateiformat = 25;
+$plano_fa_fixpreis_buendeln = 15;
+$plano_fa_preis_je_buendel = 0.15;
+$plano_fa_fixpreis_perforation = 35;
+$plano_fa_tsdpreis_perforation = 35;
+$plano_fa_tsdpreis_ecken_runden = 16;
+$plano_fa_tsdpreis_ecken_runden_nassleimetik = 1.50;
+$plano_fa_fixpreis_ecken_runden = 15;
+$plano_fa_fixpreis_bohren = 25;
+$plano_fa_tsdpreis_bohren = 5;
+$plano_fa_stckpreis_laserstanzung = 0.50;
+$plano_fa_fixpreis_laserstanzung = 150;
+$plano_fa_fixpreis_cito = 260;
+$plano_fa_tsdpreis_cito = 35;
+$plano_fa_tsdpreis_cito_nassleimetik = 2;
+
+// Sammelform
+$sammelform_brosch_inhalt_happy = -60;
+$sammelform_brosch_inhalt_eq = -45;
+$sammelform_brosch_inhalt_sense = -45;
+$sammelform_brosch_inhalt_sky = -30;
+$sammelform_brosch_inhalt_glam = -60;
+$sammelform_brosch_inhalt_post = 0;
+
+$sammelform_brosch_umschlag_happy = -60;
+$sammelform_brosch_umschlag_eq = -40;
+$sammelform_brosch_umschlag_sense = -20;
+$sammelform_brosch_umschlag_sky = -10;
+$sammelform_brosch_umschlag_glam = -40;
+$sammelform_brosch_umschlag_post = 0;
+
+$sammelform_plano_fa_happy = -180;
+$sammelform_plano_fa_eq = -160;
+$sammelform_plano_fa_sense = -130;
+$sammelform_plano_fa_sky = -125;
+$sammelform_plano_fa_glam = -90;
+$sammelform_plano_fa_post = -90;
+$sammelform_plano_fa_happy_rapetik = - 280;
+$sammelform_plano_fa_happy_aufkleber = - 280;
+$sammelform_plano_fa_eq_aufkleber = - 250;
+$sammelform_plano_fa_stdformatabschlag = 30;
+
+// Banderolen Verschluss
+$klebepunkte_lose_fix = 15;
+$klebepunkte_lose_pro_tausend = 12;
+$klebepunkte_vorkonf_fix = 15;
+$klebepunkte_vorkonf_pro_tausend = 47;
+$haftstreifen_lose_fix = 15;
+$haftstreifen_lose_pro_tausend = 15;
+$haftstreifen_vorkonf_fix = 45;
+$haftstreifen_vorkonf_pro_tausend = 85;
+
+// Digitaldruck
+$standard_bogenbreite = 45;
+$standard_bogenhoehe = 32;
+$stundensatz_vorstufe_digitaldruck = 90;
+$stundensatz_nuten_digitaldruck = 15;
+$stundensatz_klebebinder = 200;
+$papierzuschlag_digitaldruck = 1.3;
+$klick_digitaldruck_a4fbg = 0.17;
+$klick_digitaldruck_a4sw = 0.07;
+
+
+$plano_fa_maxabschlag_proz_ek = 90;
+$plano_fa_maxabschlag_abs = 7;
+
+$plano_stanzen_fix1 = 35;
+$plano_stanzen_fix1_vkru7 = 15;
+$plano_stanzen_fix2 = 85;
+$plano_stanzen_fix3_mappen = 260;
+
+$plano_stanzen_var1 = 13;
+$plano_stanzen_var2 = 33;
+$plano_stanzen_var3_mappen = 40;
+
+
+$plano_praegen_fix1 = 60;
+$plano_praegen_fix2 = 110;
+$plano_praegen_var1 = 25;
+$plano_praegen_var2 = 45;
+
+$plano_digitalproof_minimal = 15;
+
+
+$plano_express_f = 45;
+$plano_express_p = 13;
+$plano_relax_f = 0;
+$plano_relax_p = 15;
+$plano_max_highend_f = 0;
+$plano_max_highend_p = 10;
+$plano_easy_value_f = 0;
+$plano_easy_value_p = 10;
+
+$rdh_aufschlag_sonderformate = 1.7;
+$bro_aufschlag_pur = 1.22;
+$bro_aufschlag_wire_o = 1.40;
+$bro_aufschlag_hdcover = 1.20;
+
+$bro_weight_faktor = 1.05;
+
+$brosch_express_f = 45;
+$brosch_express_p = 13;
+$brosch_relax_f = 0;
+$brosch_relax_p = 8;
+$brosch_max_highend_f = 60;
+$brosch_max_highend_p = 10;
+$brosch_easy_value_f = 0;
+$brosch_easy_value_p = 10;
\ No newline at end of file
diff --git a/tests/Mock/Paper.php b/tests/Mock/Paper.php
index ff0038c..9766dec 100644
--- a/tests/Mock/Paper.php
+++ b/tests/Mock/Paper.php
@@ -24,6 +24,27 @@ class Paper
private $breite;
private $hoehe;
private $laenge;
+ protected $papierTyp1;
+ protected $papierTyp2;
+ protected $papierTyp3;
+ protected $papierTyp4;
+ protected $papierTyp5;
+ protected $papierTyp6;
+ protected $papierTyp7;
+ protected $papierTyp8;
+ protected $papierTyp9;
+ protected $papierTyp10;
+ protected $papierTyp11;
+ protected $papierTyp12;
+ protected $papierTyp13;
+ protected $papierTyp14;
+ protected $umschlagen;
+ protected $happy;
+ protected $eq;
+ protected $sense;
+ protected $sky;
+ protected $glam;
+ protected $post;
private $rollenLaenge;
@@ -1110,5 +1131,361 @@ class Paper
$this->volume = $volume;
}
+ /**
+ * @return mixed
+ */
+ public function getPapierTyp1()
+ {
+ return $this->papierTyp1;
+ }
+ /**
+ * @param mixed $papierTyp1
+ */
+ public function setPapierTyp1($papierTyp1): void
+ {
+ $this->papierTyp1 = $papierTyp1;
+ }
+
+ /**
+ * @return mixed
+ */
+ public function getPapierTyp2()
+ {
+ return $this->papierTyp2;
+ }
+
+ /**
+ * @param mixed $papierTyp2
+ */
+ public function setPapierTyp2($papierTyp2): void
+ {
+ $this->papierTyp2 = $papierTyp2;
+ }
+
+ /**
+ * @return mixed
+ */
+ public function getPapierTyp3()
+ {
+ return $this->papierTyp3;
+ }
+
+ /**
+ * @param mixed $papierTyp3
+ */
+ public function setPapierTyp3($papierTyp3): void
+ {
+ $this->papierTyp3 = $papierTyp3;
+ }
+
+ /**
+ * @return mixed
+ */
+ public function getPapierTyp4()
+ {
+ return $this->papierTyp4;
+ }
+
+ /**
+ * @param mixed $papierTyp4
+ */
+ public function setPapierTyp4($papierTyp4): void
+ {
+ $this->papierTyp4 = $papierTyp4;
+ }
+
+ /**
+ * @return mixed
+ */
+ public function getPapierTyp5()
+ {
+ return $this->papierTyp5;
+ }
+
+ /**
+ * @param mixed $papierTyp5
+ */
+ public function setPapierTyp5($papierTyp5): void
+ {
+ $this->papierTyp5 = $papierTyp5;
+ }
+
+ /**
+ * @return mixed
+ */
+ public function getPapierTyp6()
+ {
+ return $this->papierTyp6;
+ }
+
+ /**
+ * @param mixed $papierTyp6
+ */
+ public function setPapierTyp6($papierTyp6): void
+ {
+ $this->papierTyp6 = $papierTyp6;
+ }
+
+ /**
+ * @return mixed
+ */
+ public function getPapierTyp7()
+ {
+ return $this->papierTyp7;
+ }
+
+ /**
+ * @param mixed $papierTyp7
+ */
+ public function setPapierTyp7($papierTyp7): void
+ {
+ $this->papierTyp7 = $papierTyp7;
+ }
+
+ /**
+ * @return mixed
+ */
+ public function getPapierTyp8()
+ {
+ return $this->papierTyp8;
+ }
+
+ /**
+ * @param mixed $papierTyp8
+ */
+ public function setPapierTyp8($papierTyp8): void
+ {
+ $this->papierTyp8 = $papierTyp8;
+ }
+
+ /**
+ * @return mixed
+ */
+ public function getPapierTyp9()
+ {
+ return $this->papierTyp9;
+ }
+
+ /**
+ * @param mixed $papierTyp9
+ */
+ public function setPapierTyp9($papierTyp9): void
+ {
+ $this->papierTyp9 = $papierTyp9;
+ }
+
+ /**
+ * @return mixed
+ */
+ public function getPapierTyp10()
+ {
+ return $this->papierTyp10;
+ }
+
+ /**
+ * @param mixed $papierTyp10
+ */
+ public function setPapierTyp10($papierTyp10): void
+ {
+ $this->papierTyp10 = $papierTyp10;
+ }
+
+ /**
+ * @return mixed
+ */
+ public function getPapierTyp11()
+ {
+ return $this->papierTyp11;
+ }
+
+ /**
+ * @param mixed $papierTyp11
+ */
+ public function setPapierTyp11($papierTyp11): void
+ {
+ $this->papierTyp11 = $papierTyp11;
+ }
+
+ /**
+ * @return mixed
+ */
+ public function getPapierTyp12()
+ {
+ return $this->papierTyp12;
+ }
+
+ /**
+ * @param mixed $papierTyp12
+ */
+ public function setPapierTyp12($papierTyp12): void
+ {
+ $this->papierTyp12 = $papierTyp12;
+ }
+
+ /**
+ * @return mixed
+ */
+ public function getPapierTyp13()
+ {
+ return $this->papierTyp13;
+ }
+
+ /**
+ * @param mixed $papierTyp13
+ */
+ public function setPapierTyp13($papierTyp13): void
+ {
+ $this->papierTyp13 = $papierTyp13;
+ }
+
+ /**
+ * @return mixed
+ */
+ public function getPapierTyp14()
+ {
+ return $this->papierTyp14;
+ }
+
+ /**
+ * @param mixed $papierTyp14
+ */
+ public function setPapierTyp14($papierTyp14): void
+ {
+ $this->papierTyp14 = $papierTyp14;
+ }
+
+ /**
+ * @return mixed
+ */
+ public function getUmschlagen()
+ {
+ return $this->umschlagen;
+ }
+
+ /**
+ * @param mixed $umschlagen
+ */
+ public function setUmschlagen($umschlagen): void
+ {
+ $this->umschlagen = $umschlagen;
+ }
+
+ /**
+ * @return mixed
+ */
+ public function getHappy()
+ {
+ return $this->happy;
+ }
+
+ /**
+ * @param mixed $happy
+ */
+ public function setHappy($happy): void
+ {
+ $this->happy = $happy;
+ }
+
+ /**
+ * @return mixed
+ */
+ public function getEq()
+ {
+ return $this->eq;
+ }
+
+ /**
+ * @param mixed $eq
+ */
+ public function setEq($eq): void
+ {
+ $this->eq = $eq;
+ }
+
+ /**
+ * @return mixed
+ */
+ public function getSense()
+ {
+ return $this->sense;
+ }
+
+ /**
+ * @param mixed $sense
+ */
+ public function setSense($sense): void
+ {
+ $this->sense = $sense;
+ }
+
+ /**
+ * @return mixed
+ */
+ public function getSky()
+ {
+ return $this->sky;
+ }
+
+ /**
+ * @param mixed $sky
+ */
+ public function setSky($sky): void
+ {
+ $this->sky = $sky;
+ }
+
+ /**
+ * @return mixed
+ */
+ public function getGlam()
+ {
+ return $this->glam;
+ }
+
+ /**
+ * @param mixed $glam
+ */
+ public function setGlam($glam): void
+ {
+ $this->glam = $glam;
+ }
+
+ /**
+ * @return mixed
+ */
+ public function getPost()
+ {
+ return $this->post;
+ }
+
+ /**
+ * @param mixed $post
+ */
+ public function setPost($post): void
+ {
+ $this->post = $post;
+ }
+
+ public function getSammelform() {
+ if($this->getHappy()) {
+ return 2;
+ }
+ if($this->getEq()) {
+ return 3;
+ }
+ if($this->getSense()) {
+ return 4;
+ }
+ if($this->getSky()) {
+ return 5;
+ }
+ if($this->getGlam()) {
+ return 6;
+ }
+ if($this->getPost()) {
+ return 7;
+ }
+ return 1;
+ }
}
diff --git a/tests/Mock/PaperRepostory.php b/tests/Mock/PaperRepostory.php
index 944787e..0a23c05 100644
--- a/tests/Mock/PaperRepostory.php
+++ b/tests/Mock/PaperRepostory.php
@@ -186,6 +186,21 @@ class PaperRepostory implements ObjectRepository
$papier['grasnatur205']->setDescription1('Graspapier 50% Faseranteil (205 g/m²)');
$papier['grasnatur205']->setDescription2('Graspapier 50% Faseranteil (205 g/m²)');
+ $papier['sm150g'] = new Paper();
+ $papier['sm150g']->setArtNr('sm150g');
+ $papier['sm150g']->setGrammatur('150');
+ $papier['sm150g']->setPreis('100');
+ $papier['sm150g']->setVolume('1.2');
+ $papier['sm150g']->setDescription1('Bilderdruck seidenmatt, aus zert. nachhaltiger Forstwirtschaft');
+ $papier['sm150g']->setDescription2('Bilderdruck seidenmatt, aus zert. nachhaltiger Forstwirtschaft');
+ $papier['sm150g']->setPapierTyp1(1);
+ $papier['sm150g']->setPapierTyp2(1);
+ $papier['sm150g']->setPapierTyp3(1);
+ $papier['sm150g']->setPapierTyp11(1);
+ $papier['sm150g']->setPapierTyp14(1);
+ $papier['sm150g']->setUmschlagen(1);
+ $papier['sm150g']->setHappy(1);
+
return $papier[$criteria['artNr']];
}