What are the Slack Archives?

It’s a history of our time together in the Slack Community! There’s a ton of knowledge in here, so feel free to search through the archives for a possible answer to your question.

Because this space is not active, you won’t be able to create a new post or comment here. If you have a question or want to start a discussion about something, head over to our categories and pick one to post in! You can always refer back to a post from Slack Archives if needed; just copy the link to use it as a reference..

Hello, we have a problem with twig-files and a second namespace beside "Pyz". (Let's it call "OwnNS

U012PCVT2DB
U012PCVT2DB Posts: 66 🧑🏻‍🚀 - Cadet
edited March 2021 in Help

Hello,

we have a problem with twig-files and a second namespace beside "Pyz". (Let's it call "OwnNS")
With the current spryker-codebase the "Pyz" is preferably used before "OwnNS". Looking into the .pathCache-File, i can see, it recognizes the second namespace, but not in the correct way.
In the config-files, the namespace has been correctly set to "OwnNS" and also been added to the namespaces, even before the "Pyz"-namespace.
I also completely removed any volumes and images from docker, used a clean workspace and docker/sdk and even performed a complete restart of my windows-machine.

~But now, it only seems to be this way on WSL2 and on Servers, but on MacOS it works correct?~

Has anyone else this Problem?

Comments

  • UPWG9AYH2
    UPWG9AYH2 Posts: 509 🧑🏻‍🚀 - Cadet

    We figured out the problem. The .pathCache get generated correctly when its deleted manually. On next refresh, paths for the templates are correct. The problem occurs just when running twig:cache:warmup. The cache warmer groups up all possible template paths to resolve the required order … and here is the problem

    The glob part in code

    $themeName = $this->getSharedConfig()->getYvesThemeName();
    $themeNameDefault = $this->getSharedConfig()->getYvesThemeNameDefault();
    
    if ($themeName === '') {
        $themeName = $themeNameDefault;
    }
    
    $directories = array_merge(
        glob('vendor/*/*/src/*/Yves/*/Theme/' . $themeName, GLOB_ONLYDIR | GLOB_NOSORT),
        glob('src/*/Yves/*/Theme/' . $themeNameDefault, GLOB_ONLYDIR | GLOB_NOSORT),
        glob('src/*/Yves/*/Theme/' . $themeName, GLOB_ONLYDIR | GLOB_NOSORT)
    );
    
    return $directories;
    

    scans the directories. Unfortunately the order is alphabetical. Vendor is correctly replaced by everything else that is following, because its at the firs position of this array. But everything else depends on alphabetical order … “Pyz” starts with P … everything before P will be loaded before and gets overwritten by “Pyz” …
    In my eyes, the overwriting order must be dependent on the order configured in

    $config[KernelConstants::PROJECT_NAMESPACES]

    which will as a temporary fix for us.
    Anyone from spryker some comment to this? I think, multiple project namespaces where never considered at this point.

    Best