Search code examples
phpsymfonypimcore

composer require symfony/assets installation


I'm relatively new to pimcore and struggle to get the right composer packages.

First of all, I installed pimcore

composer create-project pimcore/skeleton my-project

I added TWIG to the project cause it is recommended for symfony. --> so i can use the asset function. Symfony Asset

Now to include files, i would like to use the asset function of symfony. But sadly "asset()" does not return any path at the moment.

{# the image lives at "public/images/logo.png" #}
<img src="{{ asset('images/logo.png') }}" alt="Symfony!"/>

So i realized, i have to install the asset package. But whenever i try to add the requirement, I get a error. I am not sure if i need to put the requirement in the composer.json file of the pimcore project, oder the composer.json file of the symfony/symfony package. Nevertheless I get errors in both cases:

Result Update composer.json in the project root

  Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Conclusion: remove pimcore/pimcore v6.8.1
    - Conclusion: don't install pimcore/pimcore v6.8.1
    - symfony/symfony v3.4.43 conflicts with pimcore/pimcore[v6.8.1].
    - symfony/symfony v4.4.11 conflicts with pimcore/pimcore[v6.8.1].
    - Conclusion: don't install symfony/asset v5.1.8
    - Conclusion: don't install symfony/asset v5.1.7
    - Conclusion: don't install symfony/asset v5.1.6
    - Conclusion: don't install symfony/asset v5.1.5
    - Conclusion: don't install symfony/asset v5.1.4
    - Conclusion: don't install symfony/asset v5.1.3
    - Conclusion: don't install symfony/asset v5.1.2
    - Installation request for pimcore/pimcore (locked at v6.8.1, required as ~6.8.0) -> satisfiable by pimcore/pimcore[v6.8.1].
    - Conclusion: don't install symfony/asset v5.1.1
    - pimcore/pimcore v6.8.1 requires symfony/symfony ^3.4.26 || ^4.1.12 -> satisfiable by symfony/symfony[v4.4.15, v3.4.26, v3.4.27, v3.4.28, v3.4.29, v3.4.30, v3.4.31, v3.4.32, v3.4.33, v3.4.34, v3.4.35, v3.4.36, v3.4.37, v3.4.38, v3.4.39, v3.4.40, v3.4.41, v3.4.42, v3.4.43, v3.4.44, v3.4.45, v3.4.46, v4.1.12, v4.1.13, v4.2.0, v4.2.1, v4.2.10, v4.2.11, v4.2.12, v4.2.2, v4.2.3, v4.2.4, v4.2.5, v4.2.6, v4.2.7, v4.2.8, v4.2.9, v4.3.0, v4.3.1, v4.3.10, v4.3.11, v4.3.2, v4.3.3, v4.3.4, v4.3.5, v4.3.6, v4.3.7, v4.3.8, v4.3.9, v4.4.0, v4.4.1, v4.4.10, v4.4.11, v4.4.12, v4.4.13, v4.4.14, v4.4.16, v4.4.2, v4.4.3, v4.4.4, v4.4.5, v4.4.6, v4.4.7, v4.4.8, v4.4.9].
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v3.4.26
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v3.4.27
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v3.4.28
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v3.4.29
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v3.4.30
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v3.4.31
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v3.4.32
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v3.4.33
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v3.4.34
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v3.4.35
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v3.4.36
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v3.4.37
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v3.4.38
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v3.4.39
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v3.4.40
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v3.4.41
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v3.4.42
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v3.4.44
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v3.4.45
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v3.4.46
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.1.12
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.1.13
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.2.0
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.2.1
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.2.10
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.2.11
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.2.12
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.2.2
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.2.3
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.2.4
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.2.5
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.2.6
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.2.7
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.2.8
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.2.9
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.3.0
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.3.1
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.3.10
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.3.11
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.3.2
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.3.3
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.3.4
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.3.5
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.3.6
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.3.7
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.3.8
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.3.9
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.4.0
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.4.1
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.4.10
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.4.12
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.4.13
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.4.14
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.4.15
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.4.16
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.4.2
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.4.3
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.4.4
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.4.5
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.4.6
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.4.7
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.4.8
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.4.9
    - don't install symfony/asset v5.1.0|remove symfony/symfony v4.4.15
    - don't install symfony/asset v5.1.0|don't install symfony/symfony v4.4.15
    - Installation request for symfony/asset ^5.1 -> satisfiable by symfony/asset[v5.1.0, v5.1.1, v5.1.2, v5.1.3, v5.1.4, v5.1.5, v5.1.6, v5.1.7, v5.1.8].


Installation failed, reverting ./composer.json to its original content.

Result Update composer.json of the symfony package (/vendor/symfony/symfony) - But I think this is the wrong one

    Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Installation request for symfony/symfony No version set (parsed as 1.0.0) -> satisfiable by symfony/symfony[No version set (parsed as 1.0.0)].
    - don't install symfony/asset 5.x-dev|remove symfony/symfony No version set (parsed as 1.0.0)
    - Installation request for symfony/asset 5.x-dev -> satisfiable by symfony/asset[5.x-dev].


Installation failed, reverting ./composer.json to its original content.

Sorry for this silly question. Thank you for helping me.


Edit 1: This is my composer.json file for the project

{
"name": "pimcore/skeleton",
  "type": "project",
  "license": "GPL-3.0-or-later",
  "config": {
    "optimize-autoloader": true,
    "sort-packages": true
  },
  "require": {
    "php": ">=7.2",
    "wikimedia/composer-merge-plugin": "^1.4",
    "pimcore/pimcore": "~6.8.0"
  },
  "require-dev": {
    "cache/integration-tests": "^0.16.0",
    "codeception/codeception": "~2.4.5"
  },
  "autoload": {
    "psr-4": {
      "": ["src/"],
      "Pimcore\\Model\\DataObject\\": "var/classes/DataObject",
      "Pimcore\\Model\\Object\\": "var/classes/Object",
      "Website\\": "legacy/website/lib"
    },
    "classmap": [
      "app/AppKernel.php"
    ]
  },
  "scripts": {
    "post-create-project-cmd": "Pimcore\\Composer::postCreateProject",
    "post-install-cmd": [
      "Pimcore\\Composer::postInstall",
      "@pimcore-scripts"
    ],
    "post-update-cmd": [
      "Pimcore\\Composer::postUpdate",
      "@pimcore-scripts",
      "Pimcore\\Composer::executeMigrationsUp",
      "@pimcore-scripts"
    ],
    "pimcore-scripts": [
      "Pimcore\\Composer::clearCache",
      "Pimcore\\Composer::installAssets"
    ]
  },
  "extra": {
    "symfony-app-dir": "app",
    "symfony-bin-dir": "bin",
    "symfony-var-dir": "var",
    "symfony-web-dir": "web",
    "symfony-tests-dir": "tests",
    "symfony-assets-install": "relative",
    "merge-plugin": {
      "include": [
        "composer.local.json"
      ],
      "recurse": true,
      "replace": true,
      "merge-dev": true,
      "merge-extra": false,
      "merge-extra-deep": false,
      "merge-scripts": false
    }
  }
}

Edit 2:

This was the command i used:

composer require symfony/asset

Solution

  • Finally I've come to the point where it get's interesting: as the error message tells you, symfony/symfony is already installed (as this is a dependency of pimcore/pimcore). This core package contains all components of Symfony, and installing a single additional component (like symfony/asset) is not possible.

    If you can use the posted image tag (<img src="{{ asset('images/logo.png') }}" alt="Symfony!"/>) without any error message popping up during rendering (in terms of: the markup can be generated, even if the image's source is not generated as expected), this also means that the Twig extension needed for the asset function is installed.

    So, the next step for you is searching for the asset configuration that is missing to generate the proper image URL.