2016-10-21 2 views
-1

누구나 symfony에서 재사용 가능한 번들에 대해 이야기하지만 재사용 가능한 서비스는 무엇입니까? 그들은 쉽게 재사용 할 수 있어야 하는가? 그들은 때때로 그렇지 않아야합니까? 일부 서비스를 내 번들 밖으로 옮겨서/src/services에 직접 넣는 것을 생각하고있었습니다. 예를 들어, 이전에 ForumBundle에 있던 구문 구문 분석기가 있지만 지금은 다른 번들에서도 사용하고 싶습니다.Symfony 재사용 가능 서비스

하지만 다른 프로젝트에서도 사용할 수 있다고 생각합니다. 번들보다 간단하기 때문에 서비스가 덜 결합되어야하기 때문에 일반적이지 않습니까?

경우에 따라 서비스가 완전한 번들이되지 않아도되는지 확실하지 않은 경우에도이 두 가지 방법의 작업을 어떻게 분리 할 수 ​​있습니까?

답변

0

는 잘 모르겠지만, 나는 generate:bundle 콘솔 명령을 사용할 때 당신이해야 할 것은 yes과 답변을 생각 : 내부, 다음

$ php app/console generate:bundle 

Are you planning on sharing this bundle across multiple applications? [no]: yes 
Your application code must be written in bundles. This command helps you generate them easily. 

Each bundle is hosted under a namespace (like Acme/BlogBundle). The namespace should begin with a "vendor" name like your company name, your project name, or your client name, followed by one or more optional category sub-namespaces, and it should end with the bundle name itself (which must have Bundle as a suffix). 

See http://symfony.com/doc/current/cookbook/bundles/best_practices.html#bundle-name for more details on bundle naming conventions. 

Use/instead of \ for the namespace delimiter to avoid any problem. 

를 그리고이 새로운 창조 번들 내에서 서비스를 선언하고 새 앱 번들을 사용하고 있다면 다른 앱도 자동으로 해당 서비스를 사용한다는 의미입니다.

0

오픈 소스 라이브러리 및 번들의 구조를 살펴 보는 것이 좋습니다. 예 : KnpMenuBundle은 가장 인기있는 번들 중 하나입니다. 그것은 라이브러리에 따라 달라집니다. 모든 비즈니스 로직을 가지고 있습니다 : 클래스와 메소드, 템플릿 등 KnpMenuKnpMenuBundle없이 라이브러리를 사용할 수 있습니다.

번들은 서비스를 등록하고 구성하고 라이브러리와 바인딩하는 라이브러리와 심포니 응용 프로그램 사이의 래퍼 또는 브리지입니다.