Template
Symfony Flex is a Composer plugin that helps you to manage and keep your Shopware configuration files up-to-date.
To create a new Shopware project, run the following command:
composer create-project shopware/production:dev-flex <project-name>
This creates a new project in the
<project-name>
directory. The dev-flex
version constraint installs the latest version of Shopware. The constraint dev-flex
will be removed once the template is generally available.The template contains all Shopware bundles like
shopware/administration
, shopware/storefront
and shopware/elasticsearch
. If you don't need any, then you can uninstall them with:composer remove shopware/<bundle-name>
After you have created the project via Composer, you have to adjust the generated
.env
file and run the following command:bin/console system:install --basic-setup
This installs Shopware and creates a default sales channel with Shopware's default Administration credentials:
Username | Password |
---|---|
admin | shopware |
Change these credentials after finishing the installation.
The Symfony CLI is a developer tool that helps to build, run, and manage your Symfony applications directly from the terminal. The services will run in Docker containers, while the application will run locally.
Prerequisites:
- 1.
- 2.As Symfony CLI uses local PHP, ensure to have PHP installed. Below are the commands to install it:
Ubuntu
Debian
macOS
Nix / NixOS
Add a new software repository to your system to have the latest PHP version.
sudo add-apt-repository ppa:ondrej/php
sudo apt-get install -y php8.1-fpm php8.1-mysql php8.1-curl php8.1-gd php8.1-xml php8.1-zip php8.1-opcache php8.1-mbstring php8.1-intl php8.1-cli
Add a new software repository to your system to have the latest PHP version:
curl https://packages.sury.org/php/README.txt | bash
sudo apt-get install -y php8.1-fpm php8.1-mysql php8.1-curl php8.1-gd php8.1-xml php8.1-zip php8.1-opcache php8.1-mbstring php8.1-intl php8.1-cli
brew install [email protected]
# Nix
nix-env -iA nixpkgs.php81 nixpkgs.symfony-cli
# NixOS
nix-env -iA nixos.php81 nixpkgs.symfony-cli
The template is small and does not contain any dev-tooling or integrations like PaaS or Fastly. You can easily add them to your project with the following commands:
# Install profiler and other dev tools, eg Faker for demo data generation
composer req --dev dev-tools
# Install PaaS integration
composer req paas
# Install Fastly integration
composer req fastly
Using Shopware Packagist, you can manage all your Shopware Store plugins directly in the
composer.json
. Refer to "Using Composer for plugin installation in Shopware" blog post for detailed information.Start with a clean git state, stash everything or make a backup of your files.
First, adjust your root
composer.json
. Add the following lines to your composer.json
:"extra": {
"symfony": {
"allow-contrib": true,
"endpoint": [
"https://raw.githubusercontent.com/shopware/recipes/flex/main/index.json",
"flex://defaults"
]
}
}
Next, replace all the existing scripts with the following:
"scripts": {
"auto-scripts": [],
"post-install-cmd": [
"@auto-scripts"
],
"post-update-cmd": [
"@auto-scripts"
]
}
Finally, remove the fixed platform as it will now be determined by the required packages.
"config": {
"optimize-autoloader": true,
- "platform": {
- "php": "7.4.3"
- },
"sort-packages": true,
"allow-plugins": {
"composer/package-versions-deprecated": true
}
},
After having installed the new Composer packages, you can clean up the template by removing the following files:
rm -r .dockerignore \
.editorconfig \
.env.dist \
.github \
.gitlab-ci \
.gitlab-ci.yml \
Dockerfile \
docker-compose.yml \
easy-coding-standard.php \
PLATFORM_COMMIT_SHA \
artifacts \
bin/deleted_files_vendor.sh \
bin/entrypoint.sh \
bin/package.sh \
config/etc \
config/secrets \
config/services \
config/services.xml \
config/services_test.xml \
license.txt \
phpstan.neon \
phpunit.xml.dist \
psalm.xml
touch .env
To install Symfony Flex, you need to have Composer installed. If you don't have Composer installed, please follow the official documentation.
To install Symfony Flex, you need to run the following commands and allow both new Composer plugins.
composer require symfony/flex:~2 symfony/runtime:~5.4
composer recipe:install --force --reset
Review the changes and commit them to your Git repository. All upcoming config changes can be applied with
composer recipes:update
.You may need to adjust some environment variables as the names have changed:
Old name | New name |
MAILER_URL | MAILER_DSN |
SHOPWARE_ES_HOSTS | OPENSEARCH_URL |
If you want to use Shopware PaaS or Fastly, you need to install the following Composer packages:
# PaaS
composer req paas
# Fastly
composer req fastly
There are two ways to update Shopware:
- Initially run
bin/console system:update:prepare
to enable the maintenance mode and then update all Composer packages usingcomposer update
. However, to disable the maintenance mode, runbin/console system:update:finish
. - To force-update all config files, run
composer recipes:update
.
Prior to Shopware 6.4.17.0, you have to install the Profiler bundle to get
APP_ENV=dev
working with:composer req --dev profiler
Prior to Shopware 6.4.17.0, you have to install some packages to get
framework:demo-data
command working:composer req --dev mbezhanov/faker-provider-collection maltyxx/images-generator
Last modified 17d ago