2017-12-14 21 views
4

큰 응용 프로그램에는 많은 서비스가 있습니다. 나는 서비스의 공공 사용을 지양하고 싶습니다 심포니 3.4/4서비스의 공개 사용을 더 이상 권장하지 않습니다.

$container->get('service.id'); 

Transistioning : 우리는 컨트롤러에서 공공 및 사용되는 대부분의 서비스가 심포니 2.x를 사용. 많은 고객이 서비스를 직접 사용하기 때문에 공개해야합니다.

하지만 "사용되지 않는"서비스의 공공 사용을 표시하고 싶습니다.

는 이미 심포니 (http://symfony.com/blog/new-in-symfony-2-8-deprecated-service-definitions)에서 서비스 정의를 지양하는 방법을 알고있다.

나는 공공의 사용은 어떻게 든 더 이상 사용 수 있어요?

답변

1

private 특성을 서비스 정의에서 true으로 설정하여 "비공개"서비스를 만들 수 있습니다.

YAML : public: true, private: true
PHP : 컨테이너에서 서비스를 받고 대신를 주입 할 때 당신이 정말로 public: false 나중에 서비스를 할 수 있도록, 사용되지 않는다는 알림을 트리거 $definition->setPublic(true)->setPrivate(true);

.

+0

니스. 정확히 내가 찾은 것. 컨테이너 자체를 꾸미려고했으나 사용 중단 알림을 던졌습니다. 이 방법이 더 좋습니다. 그것은 의도적입니까? 이 문서를 찾지 못했습니다. – psren

+0

symfony 코어의 내부 기능으로 https://github.com/symfony/symfony/pull/24104에서 소개되었습니다. Btw, 유용한 답변을 upvoting 고려하십시오 :) – chalasr