我将symfony 3迁移到symfony 4.3,并且我的自定义包移动到:src/Bundles/FooBundle。
structure FooBundle:-依赖注入-配置。php-FooExtension。php-Event-Model-Resources-config-services。yml-Service-Twig-Exception-FooBundle。php
和文件bundle/FooBundle/Resources/config/services。亚马尔
services:
foo:
class: App\Bundles\FooBundle\Service\Foo
arguments:
- '%foo.argument1%'
- '%foo.argument2%'
- '%foo.argument3%'
foo.listener.example:
class: App\Bundles\FooBundle\Event\Listener\ExampleListener
arguments: ['@annotations.reader']
tags:
- { name: kernel.event_listener, event: kernel.controller, method: onKernelController }
foo.filter:
class: App\Bundles\FooBundle\Filter\FilterConverter
tags:
- { name: request.param_converter }
捆绑/脚束/依赖注射/Configuration.php
<?php
namespace App\Bundles\FooBundle\DependencyInjection;
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
use Symfony\Component\Config\Definition\ConfigurationInterface;
class Configuration implements ConfigurationInterface
{
/**
* {@inheritdoc}
*/
public function getConfigTreeBuilder()
{
$treeBuilder = new TreeBuilder('foo');
$treeBuilder->getRootNode()
->children()
->scalarNode('argument1')->isRequired()->end()
->scalarNode('argument2')->isRequired()->end()
->scalarNode('argument3')->isRequired()->end()
->end();
return $treeBuilder;
}
}
Bundles/FooBundle/DependencyInjection/footextension。php
<?php
namespace App\Bundles\FooBundle\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 FooExtension extends Extension
{
/**
* {@inheritdoc}
*/
public function load(array $configs, ContainerBuilder $container)
{
$configuration = new Configuration();
$config = $this->processConfiguration($configuration, $configs);
$container->setParameter('foo.argument1', $config['page_field_name']);
$container->setParameter('foo.argument2', $config['per_page_field_name']);
$container->setParameter('foo.argument3', $config['sort_field_name']);
$loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
$loader->load('services.yml');
}
}
和bundle注册:config/bundles。php
App\Bundles\FooBundle\FooBundle::class => ['all' => true],
配置包:
config/packages/foo。山药
foo:
argument1: test1
argument2: test2
argument3: test3
完成了...运行应用程序和错误:无法自动连接服务"App\Bundles\FaBundle\Service\Foo":方法"__construct()"的参数"$agument1"没有类型提示,您应该显式配置其值。
但是,当我在config/services中添加conf时。亚马尔:
App\Bundles\FooBundle\Service\Foo:
arguments:
- '%foo.argument1%'
- '%foo.argument2%'
- '%foo.argument3%'
那工作。。。
问:为什么捆绑服务不起作用?
我想问题在于symfony中的默认配置将自动连线添加到应用程序名称空间下的所有类。
检查config/services下的配置。yml
:
services:
# default configuration for services in *this* file
_defaults:
autowire: true # Automatically injects dependencies in your services.
autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
# makes classes in src/ available to be used as services
# this creates a service per class whose id is the fully-qualified class name
App\:
resource: '../src/*'
exclude: '../src/{DependencyInjection,Entity,Migrations,Tests,Kernel.php}'
您可以删除以下行:
App\:
resource: '../src/*'
exclude: '../src/{DependencyInjection,Entity,Migrations,Tests,Kernel.php}'
问题应该会消失。
我正在尝试建立一个混合AngularJS Angular应用程序,它使用Webpack作为模块加载程序,Karma Jasmine作为测试框架。为了运行测试,我正在使用;但是,webpack创建的包从未加载到浏览器中,因此测试从未执行(duh!)。我试过很多方法来检查是否正常,但我在其他网站上都没有发现这个问题。 所以,一点调试信息。首先,我的文件: 运行Karma时,webpack执行成功(pr
问题内容: 我已经为此花了好一会儿,想知道是否有可能从头开始。感谢您对此的任何帮助! npm包 我有一个npm包,它基本上是一个React组件库。该库具有嵌入式样式表,该样式表引用了CSS中的资源,例如字体和图像。然后将所有这些都使用webpack捆绑到中。 的配置如下所示: 随着看起来像: 到目前为止,一切都很好。 应用程序 现在,在另一个代码库中,我有了主应用程序,该应用程序安装了该npm软件
我正在尝试创建自己的android Asynctask实现。为此,我创建了一个抽象类,它扩展了Thread类。我为onPreExecute、onPostExecute、onProgressUpdate和doInBackground声明了方法。 我通过从主线程的循环器创建一个处理程序来运行doInBackground方法。但我无法修改onProgressUpdate()方法中的UI元素,但我可以修改
我正在尝试使用cq中的OSGI包创建自定义标记库。实际上,我创建了所有必要的文件,但我无法放置mytags。生成时META-INF文件夹下的tld文件。为此,我使用了maven bundle插件。这是我的代码,用于将资源包含在META-INF文件夹中 注意:我已将标记文件放在“src\main\resources\META-INF\myTags”下 我使用了<代码> 这是我的生成错误 [错误]捆绑
我制作了一个简单的API包,它将在项目之间共享。每个对象/实体都有自己的配置,说明哪些字段以及如何序列化(分解为标量值)。它们将如何序列化取决于所选的规范化程序。现在只有一个默认的规范化器可以将值识别为标量、iterable或object。到目前为止效果很好。当您需要一些特定的序列化(比如DateTime)时(您不希望将对象分解为隐式标量值,而是设置输出格式),您只需要创建一个新的规范化器来相应地
我想制作某种代理(可能是windows服务),它将在服务器的后台运行,并在Azure服务总线中公开一个endpoint。 我在Azure中有一个worker角色,每天向代理内部发送一条消息,代理将向内部服务发出一个web请求并返回一些数据。 问题是座席将在不同的客户处所运行...工作人员角色如何向正确的客户座席服务发送消息并进行呼叫? 我猜也许主题和订阅会起作用?