Lately I’ve been switching to new versions and upgrading Symfony for client projects that I cannot reveal, but what I would like to share in this simple and short post is what combinations worked for me after many hours switching versions and dependancies.
Symfony 4
{ "require": { "php": "^7.1.3", "ext-ctype": "*", "ext-iconv": "*", "sensio/framework-extra-bundle": "^5.4", "symfony/asset": "4.3.*", "symfony/console": "4.3.*", "symfony/dotenv": "4.3.*", "symfony/expression-language": "4.3.*", "symfony/flex": "^1.3.1", "symfony/form": "4.3.*", "symfony/framework-bundle": "4.3.*", "symfony/http-client": "4.3.*", "symfony/intl": "4.3.*", "symfony/monolog-bundle": "^3.1", "symfony/orm-pack": "*", "symfony/process": "4.3.*", "symfony/security-bundle": "4.3.*", "symfony/serializer-pack": "*", "symfony/swiftmailer-bundle": "^3.2", "symfony/translation": "4.3.*", "symfony/twig-bundle": "4.3.*", "symfony/validator": "4.3.*", "symfony/web-link": "4.3.*", "symfony/webpack-encore-bundle": "^1.6", "symfony/yaml": "4.3.*", "jms/serializer-bundle": "3.4.1", "friendsofsymfony/user-bundle": "2.1.2" } }
This is the easiest one since is the last version and you can just install it following the docs. Added some nice packages that I use always just to JSON serialize entities.
Symfony 3.4
{ "require" : { "php" : "^7.1", "symfony/symfony" : "3.4.x-dev", "symfony/webpack-encore-bundle" : "~1.6", "symfony/swiftmailer-bundle" : "3.3.*", "symfony/monolog-bundle" : "3.4.0", "symfony/console" : "^3.4", "symfony/serializer": "^3.4", "sensio/distribution-bundle" : "5.0.25", "sensio/framework-extra-bundle" : "5.4.0", "doctrine/orm": "2.6.4", "doctrine/doctrine-bundle": "2.0.x-dev", "twig/extensions" : "1.5.4" } }
Basic install. This where you would like to go in case you are still using 2.8 version that will be soon out of maintenance
Symfony 3.3
{ "require": { "php": ">=5.6.27", "symfony/symfony": "^3.3", "doctrine/orm": "^2", "doctrine/doctrine-bundle": "1.10.0", "symfony/swiftmailer-bundle": "~2", "symfony/monolog-bundle": "^3", "sensio/distribution-bundle": "~5.0", "sensio/framework-extra-bundle": "^3", "incenteev/composer-parameter-handler": "~2.0", "knplabs/knp-snappy-bundle": "~1.4", "knplabs/doctrine-behaviors": "~1.4", "friendsofsymfony/user-bundle": "~2.0@dev", "doctrine/doctrine-fixtures-bundle": "^2.3", "twig/extensions": "^1.4", "mopa/bootstrap-bundle": "dev-master", "m6web/guzzle-http-bundle": "~2.0", "doctrine/migrations": "^1.5", "doctrine/doctrine-migrations-bundle": "^1.3", "jms/serializer-bundle": "1.5.0" } }
The important difference in this 3.3 version is that it still runs on PHP 5.6+ but if you can it would be the best to go to 3.4 or even 4 but that requires a big refatoring in many corners.