Symfony2 依赖关系

发布于 2024-11-10 07:53:20 字数 139 浏览 2 评论 0原文

我想知道是否有适当的方法来检查依赖关系。

例如,我有一个 NewsBundle。现在我必须检查是否有 CommentBundle。如果有的话,它应该再执行一些代码。

有什么建议吗?

I'm wondering if there is a proper way to check the dependencies.

For example I've got a NewsBundle. Now I'll have to check if there is a CommentBundle. If there is one, it should execute a few more Code.

Any suggestions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

秋心╮凉 2024-11-17 07:53:20

除了markymark的答案之外,您还可以使用以下代码片段检查控制器(或任何其他容器感知代码)中是否存在特定的服务

if ($this->container->has('foo_service.alias'))
{
    // service is loaded and usable
}

如果您不确定某个服务的确切别名给定服务,或者只是为了好玩,您可以运行控制台命令 php app/console container:debug 来查看在容器中注册的所有服务。

In addition to markymark's answer, you can check if a specific service exists from your controller (or any other container-aware code) with the following snippet:

if ($this->container->has('foo_service.alias'))
{
    // service is loaded and usable
}

If you're not sure of the exact alias of a given service, or just for kicks and giggles, you can run the console command php app/console container:debug to see all services registered with the container.

是伱的 2024-11-17 07:53:20

您可以在每个包都应具有的主 Bundle 类上使用 class_exists。

例如:

if (class_exists('Acme\CommentBundle\AcmeCommentBundle'))
{
    // Bundle exists and is loaded by AppKernel...
}

You could use class_exists on the main Bundle class that every bundle should have.

For example:

if (class_exists('Acme\CommentBundle\AcmeCommentBundle'))
{
    // Bundle exists and is loaded by AppKernel...
}
汹涌人海 2024-11-17 07:53:20

Kernel 类包含一系列辅助方法,用于检查某个类是否是某个类的一部分活动捆绑包或捆绑包是否已注册。

public BundleInterface[] getBundles()
    Gets the registered bundle instances.

public bool isClassInActiveBundle(string $class)
    Checks if a given class name belongs to an active bundle.

The Kernel class contains a list of helper methods to check if a certain class is part of an active bundle or if a bundle is registered.

public BundleInterface[] getBundles()
    Gets the registered bundle instances.

public bool isClassInActiveBundle(string $class)
    Checks if a given class name belongs to an active bundle.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文