Update and audit existing project dependencies for Symfony/Flex.

- Converted all non-flex bundles with available bundles into Symfony/Flex.
- Updated namespaces to more closely match Symfony.
- Removed unnecessary dependencies and recipes.
- Executed Symfony/Flex recipes to create default configs.
- Improved composer.json scripts.
This commit is contained in:
Dillon-Brown 2020-02-03 18:01:16 +00:00
parent 48ddf269b0
commit 8cf555f4ee
33 changed files with 1085 additions and 1159 deletions

View file

@ -1,4 +1,4 @@
# define your env variables for the test environment here
KERNEL_CLASS='SuiteCRM\Core\Base\Kernel'
KERNEL_CLASS='App\Kernel'
APP_SECRET='$ecretf0rt3st'
SYMFONY_DEPRECATIONS_HELPER=999999

View file

@ -1,28 +1,12 @@
#!/usr/bin/env php
<?php
use SuiteCRM\Core\src\Kernel;
use App\Kernel;
use Symfony\Bundle\FrameworkBundle\Console\Application;
use Symfony\Component\Console\Input\ArgvInput;
use Symfony\Component\ErrorHandler\Debug;
if (count($argv) === 1 && $argv[0] === 'bin/console') {
echo
"
\033[38;5;167m OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO\033[38;5;240m00000000000000000000000000000000000000000
\033[38;5;167m OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO\033[38;5;240m00000\033[1;37m000000\033[38;5;240m00\033[1;37m0000000\033[38;5;240m00000\033[1;37m000\033[38;5;240m000000000\033[1;37m000\033[38;5;240mG00
\033[38;5;167m OOOG\033[1;37m000\033[38;5;167mGOOO\033[1;37m0\033[38;5;167mOOOO\033[1;37m0\033[38;5;167mOOC\033[1;37m0\033[38;5;167mOOC\033[1;37m00000\033[38;5;167mGOC\033[1;37m0000\033[38;5;167mOOO\033[38;5;240m\033[38;5;240m0000\033[1;37m00000\033[38;5;240mG0000\033[1;37m000\033[38;5;240m000C\033[1;37m00\033[38;5;240m00C\033[1;37m00\033[38;5;240m0\033[1;37m0\033[38;5;240m0000000\033[1;37m0\033[38;5;240m0\033[1;37m00\033[38;5;240mG00
\033[38;5;167m OOG\033[1;37m0\033[38;5;167mCOOOOOO\033[1;37m0\033[38;5;167mOOOO\033[1;37m0\033[38;5;167mOOC\033[1;37m0\033[38;5;167mOOOOC\033[1;37m0\033[38;5;167mGOOOC\033[1;37m0\033[38;5;167mGOOOO\033[38;5;240m0000\033[1;37m0000\033[38;5;240mC000000\033[1;37m000\033[38;5;240m0000G\033[1;37m0\033[38;5;240m00C\033[1;37m00\033[38;5;240m0\033[1;37m00\033[38;5;240m00000\033[1;37m00\033[38;5;240m0\033[1;37m00\033[38;5;240mG00
\033[38;5;167m OOOC\033[1;37m00\033[38;5;167mCOOOO\033[1;37m0\033[38;5;167mOOOO\033[1;37m0\033[38;5;167mOOC\033[1;37m0\033[38;5;167mOOOOC\033[1;37m0\033[38;5;167mGOOOC\033[1;37m000\033[38;5;167mOOO\033[38;5;240m000C\033[1;37m0000\033[38;5;240mG000000\033[1;37m000\033[38;5;240m000C\033[1;37m00\033[38;5;240m00C\033[1;37m00\033[38;5;240m00\033[1;37m00\033[38;5;240m000\033[1;37m00\033[38;5;240m00\033[1;37m00\033[38;5;240mG00
\033[38;5;167m OOOOOOC\033[1;37m0\033[38;5;167mOOO\033[1;37m0\033[38;5;167mOOO\033[1;37m00\033[38;5;167mOOC\033[1;37m0\033[38;5;167mOOOOC\033[1;37m0\033[38;5;167mGOOOC\033[1;37m0\033[38;5;167mGOOOO\033[38;5;240m0000\033[1;37m0000\033[38;5;240mC000000\033[1;37m00000000\033[38;5;240m000C\033[1;37m00\033[38;5;240m00C\033[1;37m00\033[38;5;240m0\033[1;37m00\033[38;5;240m000\033[1;37m00\033[38;5;240mG00
\033[38;5;167m OOOC\033[1;37m000\033[38;5;167mCOOOG\033[1;37m0000\033[38;5;167mGOOC\033[1;37m0\033[38;5;167mOOOOC\033[1;37m0\033[38;5;167mGOOOC\033[1;37m0000\033[38;5;167mOOO\033[38;5;240m0000\033[1;37m00000\033[38;5;240mG0000\033[1;37m000\033[38;5;240m000C\033[1;37m00\033[38;5;240m00C\033[1;37m00\033[38;5;240m000C\033[1;37m000\033[38;5;240m0000\033[1;37m00\033[38;5;240mG00
\033[38;5;167m OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO\033[38;5;240m0000G\033[1;37m000000\033[38;5;240m00\033[1;37m000\033[38;5;240m0000G\033[1;37m00\033[38;5;240m0C\033[1;37m00\033[38;5;240m00000000000\033[1;37m00\033[38;5;240mG00
\033[38;5;167m OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO\033[38;5;240m00000000000000000000000000000000000000000\033[1;37m
";
}
if (false === in_array(PHP_SAPI, ['cli', 'phpdbg', 'embed'], true)) {
if (!in_array(PHP_SAPI, ['cli', 'phpdbg', 'embed'], true)) {
echo 'Warning: The console should be invoked via the CLI version of PHP, not the ' . PHP_SAPI . ' SAPI' . PHP_EOL;
}
@ -31,7 +15,7 @@ set_time_limit(0);
require dirname(__DIR__) . '/vendor/autoload.php';
if (!class_exists(Application::class)) {
throw new RuntimeException('You need to add "symfony/framework-bundle" as a Composer dependency.');
throw new LogicException('You need to add "symfony/framework-bundle" as a Composer dependency.');
}
$input = new ArgvInput();
@ -49,15 +33,10 @@ if ($_SERVER['APP_DEBUG']) {
umask(0000);
if (class_exists(Debug::class)) {
/** @noinspection UnusedFunctionResultInspection */
Debug::enable();
}
}
$kernel = new Kernel($_SERVER['APP_ENV'], (bool)$_SERVER['APP_DEBUG']);
$application = new Application($kernel);
try {
$application->run($input);
} catch (Exception $exception) {
echo 'An error occurred while attempting to run the application ' . $exception->getMessage();
}

View file

@ -3,6 +3,11 @@
"description": "SuiteCRM Application",
"homepage": "https://suitecrm.com",
"type": "project",
"authors": [
{
"name": "SalesAgility Ltd"
}
],
"config": {
"vendor-dir": "vendor",
"platform": {
@ -11,34 +16,17 @@
"optimize-autoloader": true,
"sort-packages": true
},
"minimum-stability": "dev",
"prefer-stable": true,
"require": {
"ext-json": "*",
"api-platform/api-pack": "^1.2",
"bshaffer/oauth2-server-httpfoundation-bridge": "^1.4",
"bshaffer/oauth2-server-php": "^1.11.1",
"composer/installers": "~1.0",
"doctrine/cache": "^1.8",
"doctrine/dbal": "^2.9",
"doctrine/orm": "2.6.*",
"monolog/monolog": "^1.23",
"phpdocumentor/type-resolver": "^0.4.0",
"pimple/pimple": "^3.2",
"psr/log": "^1.1",
"symfony/cache": "^4.4",
"symfony/config": "^4.2",
"symfony/console": "^4.4",
"symfony/dependency-injection": "^4.4",
"symfony/dotenv": "^4.4",
"symfony/error-handler": "^4.4",
"symfony/filesystem": "^4.4",
"symfony/finder": "^4.4",
"symfony/flex": "^1.6",
"symfony/framework-bundle": "^4.4",
"symfony/http-foundation": "^4.2",
"symfony/http-kernel": "^4.4",
"symfony/monolog-bundle": "^3.5",
"symfony/routing": "4.4.x-dev",
"symfony/yaml": "^4.2",
"symfony/orm-pack": "^1.0",
"symfony/security-bundle": "^4.4",
"webonyx/graphql-php": "^0.13.8"
},
"require-dev": {
@ -47,22 +35,13 @@
"codeception/module-asserts": "^1.1",
"dama/doctrine-test-bundle": "^5.0",
"doctrine/doctrine-fixtures-bundle": "~3.2",
"phploc/phploc": "^4.0.1",
"phpmetrics/phpmetrics": "^2.4.1",
"doctrine/doctrine-migrations-bundle": "^2.1",
"roave/security-advisories": "dev-master",
"symfony/maker-bundle": "^1.14"
},
"conflict": {
"symfony/symfony": "*"
},
"license": "GPL-3.0",
"authors": [
{
"name": "SalesAgility Ltd"
}
],
"autoload": {
"psr-4": {
"App\\": "core/src/",
"SuiteCRM\\Core\\src\\": "core/src/",
"SuiteCRM\\Core\\Modules\\": "core/modules/",
"SuiteCRM\\Core\\Legacy\\": "core/legacy/",
@ -72,15 +51,23 @@
"App\\Entity\\": "core/src/Entity/"
}
},
"minimum-stability": "dev",
"prefer-stable": true,
"extra": {
"src-dir": "core/src"
},
"scripts": {
"auto-scripts": {
"cache:clear": "symfony-cmd",
"cache:warmup": "symfony-cmd",
"assets:install %PUBLIC_DIR%": "symfony-cmd"
},
"post-install-cmd": [
"@auto-scripts"
],
"post-update-cmd": [
"@auto-scripts"
]
},
"extra": {
"src-dir": "core/src",
"symfony": {
"allow-contrib": false
}
}
}

1511
composer.lock generated

File diff suppressed because it is too large Load diff

View file

@ -6,7 +6,7 @@ require dirname(__DIR__) . '/vendor/autoload.php';
// Load cached env vars if the .env.local.php file exists
// Run "composer dump-env prod" to create it (requires symfony/flex >=1.2)
if (is_array($env = @include dirname(__DIR__) . '/.env.local.php') && ($_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? $env['APP_ENV']) === $env['APP_ENV']) {
if (is_array($env = @include dirname(__DIR__) . '/.env.local.php') && (!isset($env['APP_ENV']) || ($_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? $env['APP_ENV']) === $env['APP_ENV'])) {
foreach ($env as $k => $v) {
$_ENV[$k] = $_ENV[$k] ?? (isset($_SERVER[$k]) && 0 !== strpos($k, 'HTTP_') ? $_SERVER[$k] : $v);
}

View file

@ -9,4 +9,7 @@ return [
DAMA\DoctrineTestBundle\DAMADoctrineTestBundle::class => ['test' => true],
Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle::class => ['dev' => true, 'test' => true],
Symfony\Bundle\MonologBundle\MonologBundle::class => ['all' => true],
Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true],
Nelmio\CorsBundle\NelmioCorsBundle::class => ['all' => true],
Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle::class => ['all' => true],
];

View file

@ -0,0 +1,5 @@
doctrine_migrations:
dir_name: '%kernel.project_dir%/src/Migrations'
# namespace is arbitrary but should be different from App\Migrations
# as migrations classes should NOT be autoloaded
namespace: DoctrineMigrations

View file

@ -0,0 +1,10 @@
nelmio_cors:
defaults:
origin_regex: true
allow_origin: ['%env(CORS_ALLOW_ORIGIN)%']
allow_methods: ['GET', 'OPTIONS', 'POST', 'PUT', 'PATCH', 'DELETE']
allow_headers: ['Content-Type', 'Authorization']
expose_headers: ['Link']
max_age: 3600
paths:
'^/': null

View file

@ -5,6 +5,8 @@ monolog:
action_level: error
handler: nested
excluded_http_codes: [404, 405]
# Prevents memory leaks
buffer_size: 50
nested:
type: stream
path: "%kernel.logs_dir%/%kernel.environment%.log"

View file

@ -1,5 +1,4 @@
security:
# https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers
providers:
in_memory: { memory: null }
firewalls:
@ -8,15 +7,4 @@ security:
security: false
main:
anonymous: lazy
# activate different ways to authenticate
# https://symfony.com/doc/current/security.html#firewalls-authentication
# https://symfony.com/doc/current/security/impersonating_user.html
# switch_user: true
# Easy way to control access for large sections of your site
# Note: Only the *first* access control that matches will be used
access_control:
# - { path: ^/admin, roles: ROLE_ADMIN }
# - { path: ^/profile, roles: ROLE_USER }

View file

@ -1,7 +1,12 @@
monolog:
handlers:
main:
type: fingers_crossed
action_level: error
handler: nested
excluded_http_codes: [404, 405]
channels: ["!event"]
nested:
type: stream
path: "%kernel.logs_dir%/%kernel.environment%.log"
level: debug
channels: ["!event"]

View file

@ -0,0 +1,3 @@
#controllers:
# resource: ../../src/Controller/
# type: annotation

View file

@ -1,6 +1,6 @@
<?php
namespace SuiteCRM\Core\src;
namespace App;
use Exception;
use Symfony\Bundle\FrameworkBundle\Kernel\MicroKernelTrait;
@ -14,7 +14,7 @@ use function dirname;
/**
* Class Kernel
* @package SuiteCRM\Core\src
* @package App
*/
class Kernel extends BaseKernel
{

View file

View file

@ -1,6 +1,6 @@
<?php
use SuiteCRM\Core\src\Kernel;
use App\Kernel;
use Symfony\Component\ErrorHandler\Debug;
use Symfony\Component\HttpFoundation\Request;

View file

@ -12,8 +12,7 @@
},
"files": [
"config/packages/api_platform.yaml",
"config/routes/api_platform.yaml",
"core/base/src/Entity/.gitignore"
"config/routes/api_platform.yaml"
]
},
"api-platform/schema-generator": {
@ -22,12 +21,6 @@
"behat/gherkin": {
"version": "v4.6.0"
},
"bshaffer/oauth2-server-httpfoundation-bridge": {
"version": "v1.4"
},
"bshaffer/oauth2-server-php": {
"version": "v1.11.1"
},
"codeception/codeception": {
"version": "2.3",
"recipe": {
@ -56,19 +49,19 @@
]
},
"codeception/lib-asserts": {
"version": "1.1.1"
"version": "1.10.1"
},
"codeception/module-asserts": {
"version": "1.1.1"
},
"codeception/phpunit-wrapper": {
"version": "7.8.0"
"version": "8.1.1"
},
"codeception/stub": {
"version": "3.0.0"
"version": "3.6.0"
},
"composer/semver": {
"version": "1.5.0"
"version": "1.5.1"
},
"composer/xdebug-handler": {
"version": "1.4.0"
@ -94,7 +87,7 @@
"ref": "cb4152ebcadbe620ea2261da1a1c5a9b8cea7672"
},
"files": [
"config/routes/annotations.yaml"
"./config/routes/annotations.yaml"
]
},
"doctrine/cache": {
@ -104,13 +97,13 @@
"version": "1.6.4"
},
"doctrine/common": {
"version": "v2.11.0"
"version": "2.12.0"
},
"doctrine/data-fixtures": {
"version": "1.4.0"
"version": "1.4.2"
},
"doctrine/dbal": {
"version": "v2.10.0"
"version": "v2.10.1"
},
"doctrine/doctrine-bundle": {
"version": "2.0",
@ -121,10 +114,8 @@
"ref": "a9f2463b9f73efe74482f831f03a204a41328555"
},
"files": [
"config/packages/doctrine.yaml",
"config/packages/prod/doctrine.yaml",
"core/base/src/Entity/.gitignore",
"core/base/src/Repository/.gitignore"
"./config/packages/doctrine.yaml",
"./config/packages/prod/doctrine.yaml"
]
},
"doctrine/doctrine-fixtures-bundle": {
@ -136,7 +127,20 @@
"ref": "fc52d86631a6dfd9fdf3381d0b7e3df2069e51b3"
},
"files": [
"core/base/src/DataFixtures/AppFixtures.php"
"core/src/DataFixtures/AppFixtures.php"
]
},
"doctrine/doctrine-migrations-bundle": {
"version": "1.2",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "1.2",
"ref": "c1431086fec31f17fbcfe6d6d7e92059458facc1"
},
"files": [
"./config/packages/doctrine_migrations.yaml",
"./core/src/Migrations/.gitkeep"
]
},
"doctrine/event-manager": {
@ -151,14 +155,17 @@
"doctrine/lexer": {
"version": "1.2.0"
},
"doctrine/migrations": {
"version": "2.2.1"
},
"doctrine/orm": {
"version": "v2.6.6"
"version": "v2.7.0"
},
"doctrine/persistence": {
"version": "1.3.3"
"version": "1.3.6"
},
"doctrine/reflection": {
"version": "v1.0.0"
"version": "v1.1.0"
},
"easyrdf/easyrdf": {
"version": "0.9.1"
@ -166,18 +173,6 @@
"fig/link-util": {
"version": "1.1.0"
},
"friendsofphp/php-cs-fixer": {
"version": "2.2",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "2.2",
"ref": "cc05ab6abf6894bddb9bbd6a252459010ebe040b"
},
"files": [
".php_cs.dist"
]
},
"guzzlehttp/psr7": {
"version": "1.6.1"
},
@ -191,11 +186,29 @@
"version": "1.25.3"
},
"myclabs/deep-copy": {
"version": "1.9.4"
"version": "1.9.5"
},
"nelmio/cors-bundle": {
"version": "1.5",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "1.5",
"ref": "6388de23860284db9acce0a7a5d9d13153bcb571"
},
"files": [
"./config/packages/nelmio_cors.yaml"
]
},
"nikic/php-parser": {
"version": "v4.3.0"
},
"ocramius/package-versions": {
"version": "1.4.2"
},
"ocramius/proxy-manager": {
"version": "2.2.3"
},
"paragonie/random_compat": {
"version": "v9.99.99"
},
@ -208,9 +221,6 @@
"php": {
"version": "7.2.0"
},
"php-cs-fixer/diff": {
"version": "v1.3.0"
},
"phpdocumentor/reflection-common": {
"version": "1.0.1"
},
@ -220,17 +230,11 @@
"phpdocumentor/type-resolver": {
"version": "0.4.0"
},
"phploc/phploc": {
"version": "4.0.1"
},
"phpmetrics/phpmetrics": {
"version": "v2.5.0"
},
"phpspec/prophecy": {
"version": "1.10.1"
"version": "v1.10.2"
},
"phpunit/php-code-coverage": {
"version": "6.1.4"
"version": "7.0.10"
},
"phpunit/php-file-iterator": {
"version": "2.0.2"
@ -250,17 +254,9 @@
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "4.7",
"ref": "f1546d78502f904f37f7b47a42b1444cbf1d3423"
"ref": "00fdb38c318774cd39f475a753028a5e8d25d47c"
},
"files": [
".env.test",
"phpunit.xml.dist",
"config/bootstrap.php",
"tests/.gitignore"
]
},
"pimple/pimple": {
"version": "v3.2.3"
"files": []
},
"psr/cache": {
"version": "1.0.1"
@ -298,11 +294,8 @@
"sebastian/exporter": {
"version": "3.1.2"
},
"sebastian/finder-facade": {
"version": "1.2.2"
},
"sebastian/global-state": {
"version": "2.0.0"
"version": "3.0.0"
},
"sebastian/object-enumerator": {
"version": "3.0.3"
@ -323,16 +316,16 @@
"version": "2.0.1"
},
"symfony/asset": {
"version": "v4.4.2"
"version": "v4.4.4"
},
"symfony/cache": {
"version": "v4.4.2"
"version": "v4.4.4"
},
"symfony/cache-contracts": {
"version": "v1.1.7"
},
"symfony/config": {
"version": "v4.4.2"
"version": "v4.4.4"
},
"symfony/console": {
"version": "4.4",
@ -340,45 +333,45 @@
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "4.4",
"ref": "fead3ab2e80622c61d13dac0d21a3430a45efae8"
"ref": "ea8c0eda34fda57e7d5cd8cbd889e2a387e3472c"
},
"files": [
"bin/console",
"config/bootstrap.php"
"./bin/console",
"./config/bootstrap.php"
]
},
"symfony/css-selector": {
"version": "v4.4.2"
"version": "v4.4.4"
},
"symfony/debug": {
"version": "v4.4.2"
"version": "v4.4.4"
},
"symfony/dependency-injection": {
"version": "v4.4.2"
"version": "v4.4.4"
},
"symfony/doctrine-bridge": {
"version": "v4.4.2"
"version": "v4.4.4"
},
"symfony/dotenv": {
"version": "v4.4.2"
"version": "v4.4.4"
},
"symfony/error-handler": {
"version": "v4.4.2"
"version": "v4.4.4"
},
"symfony/event-dispatcher": {
"version": "v4.4.2"
"version": "v4.4.4"
},
"symfony/event-dispatcher-contracts": {
"version": "v1.1.7"
},
"symfony/expression-language": {
"version": "v4.4.2"
"version": "v4.4.4"
},
"symfony/filesystem": {
"version": "v4.4.2"
"version": "v4.4.4"
},
"symfony/finder": {
"version": "v4.4.2"
"version": "v4.4.4"
},
"symfony/flex": {
"version": "1.0",
@ -408,18 +401,18 @@
"config/routes/dev/framework.yaml",
"config/services.yaml",
"public/index.php",
"core/base/src/Controller/.gitignore",
"core/base/src/Kernel.php"
"core/src/Controller/.gitkeep",
"core/src/Kernel.php"
]
},
"symfony/http-foundation": {
"version": "v4.4.2"
"version": "v4.4.4"
},
"symfony/http-kernel": {
"version": "v4.4.2"
"version": "v4.4.4"
},
"symfony/inflector": {
"version": "v4.4.2"
"version": "v4.4.4"
},
"symfony/maker-bundle": {
"version": "1.0",
@ -431,10 +424,10 @@
}
},
"symfony/mime": {
"version": "v4.4.2"
"version": "v4.4.4"
},
"symfony/monolog-bridge": {
"version": "v4.4.2"
"version": "v4.4.4"
},
"symfony/monolog-bundle": {
"version": "3.3",
@ -442,16 +435,19 @@
"repo": "github.com/symfony/recipes",
"branch": "master",
"version": "3.3",
"ref": "6240c6d43e8237a32452f057f81816820fd56ab6"
"ref": "5f5bdd0f0bd94eedc40ebf637d3c9fe9e48c9689"
},
"files": [
"config/packages/dev/monolog.yaml",
"config/packages/prod/monolog.yaml",
"config/packages/test/monolog.yaml"
"./config/packages/dev/monolog.yaml",
"./config/packages/prod/monolog.yaml",
"./config/packages/test/monolog.yaml"
]
},
"symfony/options-resolver": {
"version": "v4.4.2"
"version": "v4.4.4"
},
"symfony/orm-pack": {
"version": "v1.0.7"
},
"symfony/polyfill-ctype": {
"version": "v1.13.1"
@ -472,13 +468,13 @@
"version": "v1.13.1"
},
"symfony/process": {
"version": "v4.4.2"
"version": "v4.4.4"
},
"symfony/property-access": {
"version": "v4.4.2"
"version": "v4.4.4"
},
"symfony/property-info": {
"version": "v4.4.2"
"version": "v4.4.4"
},
"symfony/routing": {
"version": "4.2",
@ -507,31 +503,31 @@
]
},
"symfony/security-core": {
"version": "v4.4.2"
"version": "v4.4.4"
},
"symfony/security-csrf": {
"version": "v4.4.2"
"version": "v4.4.4"
},
"symfony/security-guard": {
"version": "v4.4.2"
"version": "v4.4.4"
},
"symfony/security-http": {
"version": "v4.4.2"
"version": "v4.4.4"
},
"symfony/serializer": {
"version": "v4.4.2"
"version": "v4.4.4"
},
"symfony/service-contracts": {
"version": "v1.1.8"
},
"symfony/stopwatch": {
"version": "v4.4.2"
"version": "v4.4.4"
},
"symfony/translation-contracts": {
"version": "v1.1.7"
},
"symfony/twig-bridge": {
"version": "v4.4.2"
"version": "v4.4.4"
},
"symfony/twig-bundle": {
"version": "4.4",
@ -561,19 +557,16 @@
]
},
"symfony/var-dumper": {
"version": "v4.4.2"
"version": "v4.4.4"
},
"symfony/var-exporter": {
"version": "v4.4.2"
"version": "v4.4.4"
},
"symfony/web-link": {
"version": "v4.4.2"
"version": "v4.4.4"
},
"symfony/yaml": {
"version": "v4.4.2"
},
"theseer/fdomdocument": {
"version": "1.6.6"
"version": "v4.4.4"
},
"theseer/tokenizer": {
"version": "1.1.3"
@ -589,5 +582,11 @@
},
"willdurand/negotiation": {
"version": "v2.3.1"
},
"zendframework/zend-code": {
"version": "3.4.1"
},
"zendframework/zend-eventmanager": {
"version": "3.2.1"
}
}