Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

[FrameworkBundle][HttpKernel][TwigBundle] Bundle templates and translations configuration #40631

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 3 commits into from

Conversation

kumulo
Copy link

@kumulo kumulo commented Mar 29, 2021

Makes bundle templates and translations directory depending of bundle configuration, not Kernel

Q A
Branch? 5.x
Bug fix? no
New feature? yes
Deprecations? no
Tickets none
License MIT
Doc PR symfony/symfony-docs#... TODO

In DDD pattern and hexagonal architecture for bundles, I was faced to symfony tree model for translations and templates.
This PR allows to define bundle's translations and templates directories in bundle itself, instead of numerous lines of code in dependencies injections.

<?php

namespace MyBundleCollection\CustomBundle;

use Symfony\Component\HttpKernel\Bundle\Bundle;

class CustomBundle extends Bundle
{
    public function getTemplatesPath()
    {
        return $this->getPath() . '/custom_path/templates';
    }

    public function getTranslationsPath()
    {
        return $this->getPath() . '/custom_path/translations';
    }
}

@carsonbot
Copy link

Hey!

I see that this is your first PR. That is great! Welcome!

Symfony has a contribution guide which I suggest you to read.

In short:

  • Always add tests
  • Keep backward compatibility (see https://symfony.com/bc).
  • Bug fixes must be submitted against the lowest maintained branch where they apply (see https://symfony.com/releases)
  • Features and deprecations must be submitted against the 5.x branch.

Review the GitHub status checks of your pull request and try to solve the reported issues. If some tests are failing, try to see if they are failing because of this change.

When two Symfony core team members approve this change, it will be merged and you will become an official Symfony contributor!
If this PR is merged in a lower version branch, it will be merged up to all maintained branches within a few days.

I am going to sit back now and wait for the reviews.

Cheers!

Carsonbot

@carsonbot carsonbot changed the title [HttpKernel] [FrameworkBundle] [TwigBundle] Bundle templates and translations configuration [FrameworkBundle][HttpKernel][TwigBundle] Bundle templates and translations configuration Mar 29, 2021
@nicolas-grekas nicolas-grekas added this to the 5.x milestone Mar 29, 2021
@yceruto
Copy link
Member

yceruto commented Mar 29, 2021

Hello @kumulo, thanks for contributing.

For the record, this kind of proposal has been rejected in the past: #32845 (comment)

I'm against having methods that allow to change the default directories. A bundle is opinionated and convention based for directories. Developers should be able to easily find things in a third party bundle, so a common directory structure is a must.

And I still agree with him, thus 👎 on my side.


On the other hand, I don't think it's so hard to achieve by implementing PrependExtensionInterface in your DI extension:

public function prepend(ContainerBuilder $container): void
{
    $container->prependExtensionConfig('twig', [
        'paths' => [
            '/<bundle_path>/custom_path/templates' => 'Custom',
        ],
    ]);

    $container->prependExtensionConfig('framework', [
        'translator' => [
            'paths' => [
                '/<bundle_path>/custom_path/translations',
            ],
        ],
    ]);
}

@kumulo
Copy link
Author

kumulo commented Mar 29, 2021

Hello @yceruto
Thanks, PrependExtensionInterface seems working fine ;)

@kumulo kumulo closed this Mar 29, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants
Morty Proxy This is a proxified and sanitized view of the page, visit original site.