Symfony 3.4 Usar vista dentro do meu pacote
Estou com algum problema na configuração de um novo repositório usando o Symfony 3.4. Eu usei o comando symfony para criá-lo com o último LTS (3.4) e adicionei um novo pacote usando o comando também. Meu novo pacote está instalado e funciona bem, mas não consigo usar a exibição armazenada dentro deste pacote.
Eu mostro a você a estrutura do meu pacote:
Eu quero usar este index.html.twig no meu controlador como este:
<?php
namespace Lister\ListerBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
class DefaultController extends Controller
{
/**
* @Route("/lister")
*/
public function indexAction()
{
return $this->render('ListerListerBundle:Default:index.html.twig');
}
}
Mas quando tento renderizá-lo, tenho esse erro.
Não foi possível encontrar o modelo "ListerListerBundle: Padrão: index.html.twig" (procurado em: / home / emendiel / Dados / Código / Perso / WebLister / app / Recursos / exibições, / home / emendiel / Dados / Código / Perso / WebLister / fornecedor / symfony / symfony / src / Symfony / Bridge / Twig / Recursos / visualizações / Formulário).
Entendo o que isso diz, minha pasta não é onde o symfony pesquisa minha visão, mas não achei como posso dizer ao Symfony em "ListerBundle / Ressources / views"
No meu projeto mais antigo, esse foi o trabalho sem outra configuração.
Informações: Eu uso meu pacote como pacote reutilizável.
Saudações,
PS: Esta é a minha parte de carregamento automático no compositor.json
"autoload": {
"psr-4": {
"": "src/"
},
"classmap": [
"app/AppKernel.php",
"app/AppCache.php"
]
},
PSS: Meu AppKernel:
public function registerBundles()
{
$bundles = [
new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
new Symfony\Bundle\SecurityBundle\SecurityBundle(),
new Symfony\Bundle\TwigBundle\TwigBundle(),
new Symfony\Bundle\MonologBundle\MonologBundle(),
new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),
new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
new AppBundle\AppBundle(),
new Lister\ListerBundle\ListerListerBundle(),
];
...
E de novo: Aqui Minha dependênciaInjection
E o conteúdo dos arquivos:
Configuration.php
<?php
namespace Lister\ListerBundle\DependencyInjection;
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
use Symfony\Component\Config\Definition\ConfigurationInterface;
/**
* This is the class that validates and merges configuration from your app/config files.
*
* To learn more see {@link http://symfony.com/doc/current/cookbook/bundles/configuration.html}
*/
class Configuration implements ConfigurationInterface
{
/**
* {@inheritdoc}
*/
public function getConfigTreeBuilder()
{
$treeBuilder = new TreeBuilder();
$rootNode = $treeBuilder->root('lister_lister');
// Here you should define the parameters that are allowed to
// configure your bundle. See the documentation linked above for
// more information on that topic.
return $treeBuilder;
}
}
ListerListerExtension.php
<?php
namespace Lister\ListerBundle\DependencyInjection;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
use Symfony\Component\DependencyInjection\Loader;
/**
* This is the class that loads and manages your bundle configuration.
*
* @link http://symfony.com/doc/current/cookbook/bundles/extension.html
*/
class ListerListerExtension extends Extension
{
/**
* {@inheritdoc}
*/
public function load(array $configs, ContainerBuilder $container)
{
$configuration = new Configuration();
$config = $this->processConfiguration($configuration, $configs);
$loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
$loader->load('services.yml');
}
}
Solução: de @Cerad
@ ListerLister / Default / index.html.twig
Resposta original de @Cerad
Por alguma razão, o S3.4 não gosta mais da abordagem Bundle: Dir: name para especificar caminhos de galho e o comando generate: bundle ainda não foi atualizado. Não tenho certeza se é um bug ou recurso. O caminho @ ListerLister / Default / index.html.twig sugerido acima deve funcionar. Tente bin / console debug: twig para ver seus caminhos de namespaces de galho. - Cerad