cnm*_*cha 2 php symfony symfony4
我将 Symfony 4 与预配置的“App”-Bundle(名称中没有“Bundle”)一起使用,并添加了如下扩展名。访问路由时,不会输出扩展的调试输出,因此扩展逻辑未运行。为什么?我没有在任何地方注册扩展,只是按照http://symfony.com/doc/current/bundles/extension.html 上的手册进行操作。
<?php
namespace App\DependencyInjection;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
class AppExtension extends Extension
{
public function __construct()
{
echo "EXTLOAD000|";
}
/**
* {@inheritDoc}
*/
public function load(array $configs, ContainerBuilder $container)
{
echo "EXTLOAD|";
$configuration = new Configuration();
$config = $this->processConfiguration($configuration, $configs);
$container->setParameter('app_transformer_configuration', $config['transformer_configuration']);
}
}
Run Code Online (Sandbox Code Playgroud)
除调试外的代码来自此站点:https : //blog.bam.tech/developper-news/make-a-versioned-api-with-symfony (Symfony 2.7)
更新:我这样做很困难。可以使用 Kernel::build() 加载扩展
// src/Kernel.php
protected function build(ContainerBuilder $container): void
{
$container->registerExtension(new AppExtension());
}
Run Code Online (Sandbox Code Playgroud)
其余的现在可以忽略,尽管我将它保留在这里只是因为我花时间输入它。
注册您的 AppExtension 的方法是创建一个 AppBundle。这只是一个简单的类。
// src/AppBundle.php
namespace App;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class AppBundle extends Bundle
{
}
Run Code Online (Sandbox Code Playgroud)
注册它:
// config/bundles.php
return [
Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true],
Symfony\Bundle\WebServerBundle\WebServerBundle::class => ['dev' => true],
App\AppBundle::class => ['all' => true],
];
Run Code Online (Sandbox Code Playgroud)
然后你的扩展名将被调用:
// src/DependencyInjection/AppExtension.php
namespace App\DependencyInjection;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
class AppExtension extends Extension
{
public function load(array $configs, ContainerBuilder $container)
{
die('load');
}
}
Run Code Online (Sandbox Code Playgroud)
我想这就是你所要求的。仍然不清楚为什么您需要为 S4 应用程序执行此操作,但这没关系。
| 归档时间: |
|
| 查看次数: |
965 次 |
| 最近记录: |