Symfony2 使用缓存将设置存储在数据库中

发布于 2024-12-12 18:01:54 字数 184 浏览 0 评论 0原文

我是 symfony2 框架的新手,我不知道如何正确存储应用程序设置。

我想要什么:

  • 将我的应用程序设置存储在数据库中(需要管理中心)
  • 将此设置缓存在symfony缓存系统(app/cache/dev|prod)中
  • ,然后轻松获取值

这可能吗?

Im new in symfony2 framework and i don't know how to store application settings correctly.

What i want:

  • Store my application settings in database (need for admin-center)
  • With caching this setting in the symfony cache system (app/cache/dev|prod)
  • and then get values easy

Is it possible?

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

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

发布评论

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

评论(1

情场扛把子 2024-12-19 18:01:54

您可以实现自己的资源类,实现 ResourceInterface 并实现您自己的加载器类,实现 LoaderInterface

您的加载程序必须将参数加载到已配置的 ContainerBuilder 中,如 FileLoader 和来自同一命名空间的其他文件都是如此。

完成后,您可以覆盖应用程序内核的 getContainerLoader 方法,以便将您的加载程序添加到现有加载程序中:

protected function getContainerLoader(ContainerInterface $container)
{
    $locator = new FileLocator($this);
    $resolver = new LoaderResolver(array(
        new XmlFileLoader($container, $locator),
        new YamlFileLoader($container, $locator),
        new IniFileLoader($container, $locator),
        new PhpFileLoader($container, $locator),
        new ClosureLoader($container),
        new DatabaseLoader($container),

    ));

    return new DelegatingLoader($resolver);
}

You can implement your own resource class implementing the ResourceInterface and also implement your own loader class implementing the LoaderInterface.

Your loader must load your parameters into a configured ContainerBuilder as the FileLoader and others from the same namespace do.

Once you are done, you can overwrite the getContainerLoader method of your application Kernel in order to add your loader to the existing ones :

protected function getContainerLoader(ContainerInterface $container)
{
    $locator = new FileLocator($this);
    $resolver = new LoaderResolver(array(
        new XmlFileLoader($container, $locator),
        new YamlFileLoader($container, $locator),
        new IniFileLoader($container, $locator),
        new PhpFileLoader($container, $locator),
        new ClosureLoader($container),
        new DatabaseLoader($container),

    ));

    return new DelegatingLoader($resolver);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文