我有一个由两个Symfony应用程序使用的库,该库定义了一组我希望公开的服务(我希望能够通过容器直接检索这些服务)。当我尝试访问一个服务时,我有:
编译容器时,已删除或内联库\Service\DerivedServices\OneSpecific实现"服务或别名。您应该将其公开,或者直接停止使用容器,转而使用依赖注入。
问题是,所述服务是公开的。
基本上有:
以下是我的服务定义:
# Base: inject common dependencies
Library\Service\BaseService:
abstract: true
calls:
- [setDoctrine, ['@doctrine.orm.entity_manager']]
- [setLogger, ['@Library\Service\Logger']]
# These services are public to be retrieved directly by the container interface
Library\Service\DerivedServices\:
resource: '../vendor/company/library/src/Library/Service/DerivedServices'
public: true
autowire: true
autoconfigure: false
parent: Library\Service\BaseService
然后,Symfony应用程序检索一个派生服务,如:
$this->get('Library\Service\DerivedServices\OneSpecificImplementation');
这些没有任何区别:
我认为在配置方面这是一个微不足道的问题,但我无法准确指出(在尝试调试框架为何将我的服务编译为私有服务2小时后,我认为可能有人有这个问题,并且可能会帮助我)。
事实证明,服务声明的顺序非常重要。正如我所认为的那样,问题在于配置。
我有:
Library\Service\BaseService:
...
Library\Service\DerivedServices\:
...
Library\Service\:
resource: '../vendor/company/library/src/Library/Service'
最后一条指令将所有服务重新声明为私有(默认情况下)。
我将此更改为:
Library\Service\:
resource: '../vendor/company/library/src/Library/Service'
Library\Service\BaseService:
...
Library\Service\DerivedServices\:
...
这首先声明所有服务为私有,然后用新的声明重新声明它们:使用父公共。
我有一个场景,我必须在AWS ECS上部署多个微服务。我想让服务能够通过每个微服务中开发的API相互通信。我想把前端也部署在AWS ECS上,可以公开访问,也可以与其他部署在AWS ECS上的微服务通信。我怎样才能做到这一点呢?我是否可以使用AWS ECS服务发现,将所有服务都放在一个专用子网中,以启用每个服务之间的通信?我可以使用弹性负载均衡器使前端微服务仅通过HTTP/HTTPS协议在inte
我正在尝试将我的Symfony 3.4应用程序迁移到Symfony 4.1。 测试不起作用,因为服务默认是私有的(这是一个好消息)。 以下这篇文章:https://symfony.com/blog/new-in-symfony-4-1-simpler-service-testing,我仍然面临私人服务的问题: Symfony\Component\DependencyInjection\Except
我正在aws中运行openshift 我有一个主节点和两个节点。如何向aws公共IP公开服务?我可以在内部访问服务: 我怎么把它暴露给公共IP呢?是否可以在openshfit web控制台中完成?我尝试使用https://docs.openshift.com/container-platform/3.4/dev_guide/expose_service/expose_internal_ip_ser
4.4.1.2 创建/使用公共服务 公共服务是应该由未指定的大量应用使用的服务。 有必要注意,它可能会收到恶意软件发送的信息(意图等)。 在使用公共服务的情况下,有必要注意,恶意软件可能会收到要发送的信息(意图等)。 下面展示了如何使用startService类型服务的示例代码。 要点(创建服务): 将导出属性显式设置为true。 小心并安全地处理接收到的意图。 返回结果时,请勿包含敏感信息。 A
我试图在解决方案中配置Business network Operator服务,方法是在我的应用程序中添加r3提供的工具箱作为corrdap依赖项。我能够构建应用程序,但当我运行nodes时,我收到Notary错误 更新 我正在添加日志
首先:我是OPCUA的新手。:) 我正在尝试将Milo客户端连接到我们的服务器,但不真正了解出了什么问题。示例客户端和服务器一起工作很好,但当我尝试将客户端示例与公共OPC-UA-Test-Servers之一连接时,我得到了这些例外: 15:48:34.729[ua-netty-event-lop-0]DEBUGorg.eclipse.milo.opcua.stack.client.handler