Symfony 3 - 你请求了一个不存在的服务,这让我发疯

2024-06-28

所以,这不是我第一次创建服务,但我只是无法解决错误

您请求了一个不存在的服务“global_settings”。

我为确保服务正确设置而采取的步骤:

My AppBundleExtension.php

namespace AppBundle\DependencyInjection;

use Symfony\Component\Config\FileLocator;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Extension\Extension;
use Symfony\Component\DependencyInjection\Loader;

class AppBundleExtension extends Extension
{
    public function load(array $configs, ContainerBuilder $container)
    {
        $configuration = new Configuration();
        $config = $this->processConfiguration($configuration, $configs);

        $loader = new Loader\XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
        $loader->load('settings.xml');
    }
}

My settings.xml

<?xml version="1.0" encoding="UTF-8" ?>
<container
        xmlns="http://symfony.com/schema/dic/services"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
    <services>
        <service id="global_settings" class="AppBundle\Services\GlobalSettings">
            <call method="setEntityManager">
                <argument type="service" id="doctrine.orm.default_entity_manager" />
            </call>
        </service>
    </services>
</container>

My GlobalSettings service

namespace AppBundle\Services;
use Doctrine\ORM\EntityManager;
use Doctrine\ORM\EntityRepository;
    class GlobalSettings
    {

        /**
         * @var EntityManager
         */
        protected $em;
        /**
         * @var EntityRepository
         */
        protected $repo;

        public function setEntityManager(EntityManager $em) {
            $this->em = $em;
            $this->repo = null;
        }

        /**
         * @return array with name => value
         */
        public function all() {
            return $this->$this->getRepo()->findAll();
        }


        /**
         * @param string $name Name of the setting.
         * @return string|null Value of the setting.
         * @throws \RuntimeException If the setting is not defined.
         */
        public function get($name) {
            $setting = $this->$this->getRepo()->findOneBy(array(
                'name' => $name,
            ));
            if ($setting === null) {
                throw $this->createNotFoundException($name);
            }
            return $setting->getValue();
        }
        /**
         * @param string $name Name of the setting to update.
         * @param string|null $value New value for the setting.
         * @throws \RuntimeException If the setting is not defined.
         */
        public function set($name, $value) {
            $setting = $this->$this->getRepo()->findOneBy(array(
                'name' => $name,
            ));
            if ($setting === null) {
                throw $this->createNotFoundException($name);
            }
            $setting->setValue($value);
            $this->em->flush($setting);
        }
        /**
         * @return EntityRepository
         */
        protected function getRepo() {
            if ($this->repo === null) {
                $this->repo = $this->em->getRepository('AppBundle:Settings');
            }
            return $this->repo;
        }

        /**
         * @param string $name Name of the setting.
         * @return \RuntimeException
         */
        protected function createNotFoundException($name) {
            return new \RuntimeException(sprintf('Setting "%s" couldn\'t be found.', $name));
        }


    }

然后在我的控制器内我尝试使用以下代码访问该服务

$data = $this->get('global_settings')->get('paypal_email');

我究竟做错了什么?任何帮助将非常感激,因为我不知道。


我不断收到此错误的原因是我的服务默认设置是public: false

所以为了解决这个问题,我需要设置public财产给true为我服务

services:
    # default configuration for services in *this* file
    _defaults:
        # automatically injects dependencies in your services
        autowire: true
        # automatically registers your services as commands, event subscribers, etc.
        autoconfigure: true
        # this means you cannot fetch services directly from the container via $container->get()
        # if you need to do this, you can override this setting on individual services
        public: false

    my_service:
        class: AppBundle\Service\MyService
        public: true
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Symfony 3 - 你请求了一个不存在的服务,这让我发疯 的相关文章

  • PHP 中的随机排列对象

    如何在 PHP 中对对象进行排序 我试过shuffle 但这需要一个数组 Warning shuffle expects parameter 1 to be array object given in var www index php o
  • 在 imagick php 中使用 svg 原始数据生成 SVG 图像

    我正在尝试使用从 Fabric js 获取的 svg 原始数据创建 svg 图像 我使用下面的代码使用 svg 原始数据生成 svg 但它无法正常工作 public function generate svg raw svg prefix
  • 禁用 php 文件缓存以进行调试

    我有一个安装了 zpanel 和 apache2 php mysql 的 vps 我正在为 php 网站开发一个小型后端 对于准备发布的网站来说情况是完美的 但现在我需要禁用缓存 php 文件的服务器功能以立即测试我的 php 文件的正确性
  • android php 连接错误? (添加java代码)

    我试图从 android 应用程序获取位置 纬度 经度 并使用 php 插入数据库 然后提取 10m 半径内的数据 问题是 当我使用智能手机测试代码时 本地测试正常 数据未正确插入 表 usergps 有 3 列 名称 纬度 经度 在我测试
  • PHP 如果找到特定值范围,则从主数组中删除子数组

    假设我有以下数组 9 gt Array 0 gt Bob Smith 1 gt email protected cdn cgi l email protection 2 gt Helsinki 3 gt 10 4 gt 34 5 gt 20
  • PHP“按引用分配”的奇怪现象

    我发现了一个代码片段 其中包括 a b 但没有测试 b 是否确实存在 if isset b 我不确定 PHP 是如何处理这个问题的 所以我进行了一个快速的裸测试 现在我更加感兴趣了 a array a gt b x gt y b array
  • PHP - 可以将成员函数分配给变量吗? [复制]

    这个问题在这里已经有答案了 在 PHP5 中 变量可以作为函数进行计算1 http php net manual en functions variable functions php例如 function myFunc echo what
  • PHP 的 Checkstyle 作为 Eclipse 插件

    有这样的插件可用吗 是的 有一个 PHP 工具集成 http www phpsrc org 与 Checkstyle 等效的是 PHP CodeSniffer 一个 pear 包 您可以在这里找到更多信息PHP CodeSniffer ht
  • 如何在 dompdf 库上启用调试?

    我正在使用 dompdf 库来输出一些报告 我得到了一个文件输出 但我有一些奇怪的行为 如何启用调试报告dompdf https github com dompdf dompdf dompdf new Dompdf something li
  • Codeigniter 未连接到 SQL Server

    我正在尝试使用 CodeIgniter 连接到 SQL 服务器 如果我使用 sqlsrv 驱动程序 我会收到致命错误消息 如果我使用 odbc 驱动程序 我会收到 无法使用提供的设置连接到数据库服务器 错误消息 有谁知道如何解决这个问题 我
  • 使用 Wikipedia API 查找文章的主要类别

    我有一个文章列表 我想找到每篇文章的主要类别 维基百科在这里列出了它的主要类别 http en wikipedia org wiki Portal Contents Categories http en wikipedia org wiki
  • 将 SQL 查询的 SELECT 子句解析为 PHP 数组

    这更多的是用于分析 PHP 中的查询before它被发送到服务器 我这样做的原因非常复杂 所以我不想深究其原因 在 PHP 中 我需要将字段选择存储到 PHP 数组中 以这个查询为例 SELECT user id username DATE
  • PHP Remedy API 调用创建带有附件的条目不起作用(使用 Postman Works!)

    当我尝试创建带有 PDF 附件的条目时 我已经为此工作了好几天 但没有成功 使用补救 REST API 我每次都会收到超时错误 500 或错误请求 这是文档 https docs bmc com docs ars2002 example o
  • YouTube API 观看私人视频

    我有一个具有草稿模式的网站 有人可以登录并查看该网站的外观 以便在公众看到该网站之前批准该网站 我在一个帐户上有一些 YouTube 视频 但我将其设为私人帐户 因为我不想让全世界看到它们 不过 我确实希望登录草稿模式的人能够观看私人嵌入内
  • 如何在 Laravel 8 中实现记住我?

    我有一个登录表单和一个记住我复选框 我希望如果用户在上次登录时选中 记住我 复选框 则自动填写用户名和密码 但目前不起作用 我正在使用 Laravel 中构建的 LoginController 登录控制器
  • Active Record 库的 CodeIgniter 挂钩

    我需要一些帮助来理解 CodeIgniter 的钩子逻辑 以使代码适应我的需要 这一页 https www codeigniter com user guide general hooks html https www codeignite
  • php 32位日期解析1901年12月13日之前的日期

    我很高兴使用strtotime http www php net manual en function strtotime php在我的开发机器上解析日期 其中一些日期是 1800 年代 一个极端的例子是 1500 年代 但我的开发机是64
  • php SimpleXML 属性丢失

    我这里有以下 xml 文档 编辑 示例见下文 我正在使用 php SimpleXML 将其转换为对象来读取它 xmlContent file get contents path test xml tablesRaw new SimpleXM
  • PHP 中的金字塔星号

    请看我的代码 for row var row gt 1 row for j 0 j lt row j echo echo echo nbsp Output 但我需要输出如下 您可能想查看一些字符串函数
  • ImagickException 并显示消息 Postscript delegate 在 MAMP 3.0.5 上失败

    我正在尝试使用 MAMP 3 0 5 将 PDF 转换为 png 文件 我知道我的 PHP 代码可以在我们的 Linux 服务器上正常运行 我在 Mac OSX 10 8 5 上安装了 MAMP 3 0 5 当我运行脚本将 PDF 转换为

随机推荐

  • 对象预期错误、javascript、jQuery

    我在 javascript 文件中收到一个对象预期错误 在这种情况下 这是否意味着 jQuery 文件未正确包含 导致错误的行是 function 浏览器中的错误是 Message Object expected Line 6 Char 1
  • 如何使用 Delphi 并行检查拼写?

    我有一种用 Delphi 编写的拼写检查器 它逐句分析文本 它在解析每个句子后根据一些规则对错误的项目进行着色 用户能够中断此过程 这一点很重要 我如何使用一些第 3 方 Delphi 库并行化这个过程 在当前状态下 我在检查后已经对句子进
  • 如何增加 RStudio 编辑器大小?

    在 Eclipse 中 我可以在编辑器中输入时按 Ctrl M 以全屏显示编辑器并暂时隐藏所有侧窗口 有没有办法在 RStudio 中实现这一目标 窗口的代码编辑器部分非常小 但我不想手动摆弄鼠标来调整控制台 绘图 工作区窗口的大小 视图菜
  • 将字节数组写入txt文件并将其读回

    我有一个字节数组 我需要将其写入 txt 文件 之后我需要从那里读取该字节数组 这里出现了一个问题 我读了这个将Java字符串转换为字节数组 https stackoverflow com questions 5499924 convert
  • Erlang 列出超过 8 的单个数字?

    以某种奇怪的方式所有的数字都结束了8 单个 在列表中变成某种 ASCII 8 gt b 请尝试帮助我解决这个问题 String http www erlang org doc reference manual data types html
  • FFMPEG - 将视频与透明度合并

    我正在尝试使用命令将两个视频合并在一起 两个视频都具有透明度 ffmpeg exe i person2 mov vf in scale iw 2 ih 2 fade out 300 30 alpha 1 pad 2 iw ih 左 movi
  • 迭代 char 的位

    假设我有 char C 其 ascii 代码是0110 0111 我如何迭代它的位 我想从这些 1 和 0 构建一个向量 您可以使用按位运算符轻松地迭代它们 char c C for int i 0 i lt 8 i extract the
  • Unix unzip:如何批量解压文件夹中的zip文件并保存在子文件夹中?

    假设我有一个文件夹 images 里面有 0001 zip 到 9999 zip 我想将它们全部解压并将它们保存在具有其文件名的子文件夹中 例如 0001 zip 将被解压并保存到 0001 0002 zip将被解压缩并保存到 0002 我
  • 如何创建 Elasticsearch 时间点 (PIT)?

    我尝试使用带有时间点 PIT 的 search after 参数来对搜索结果进行分页 This https www elastic co guide en elasticsearch reference 7 x paginate searc
  • git filter-branch - 放弃对一系列提交中的一组文件的更改

    说我有一个分支dev我想要discard所做的所有更改到一组文件在提交的愤怒中dev分支 因为它偏离了master 如果提交在此范围内只触及那些文件我喜欢把它修剪一下 我得到的最接近的是 git checkout dev git filte
  • 如何修复 PagesController#home 缺少请求格式模板:text/html

    对于我的 Rails 6 应用程序routes rb I have Rails application routes draw do root pages home end 并在我的pages controller rb I have cl
  • 如何从 Facebook iFrame 应用程序中删除滚动条

    我创建了一个 facebook iframe 应用程序 并在 Facebook 应用程序设置页面中将尺寸设置为 自动调整大小 但 IE 和 Google Chrome 底部仍然显示水平滚动条 在 Firefox 中运行良好 有什么解决办法吗
  • 如何使用通用约束类型属性实现 Swift 协议?

    我想要一个看起来像这样的协议 protocol ReturnType var returnType ImmutableMappable Type get 实现协议的枚举部分 extension ShimEndPoint ReturnType
  • 椭圆曲线加密的 .NET 实现(库)

    您能否建议在 NET 平台上使用椭圆曲线加密技术的任何实现 另外 如果您使用过它们 您能告诉我应该使用的推荐曲线吗 EDIT 正如 FatCat 提到的 它的实现在 NET Framework 3 5 中可用 但仅在 Windows Vis
  • Vue-konva 遇到错误:必须使用 import 加载 ES 模块

    我正在努力实施Vue konva按照以下步骤进入我的应用程序文档在这里 https www npmjs com package vue konva 但我遇到了以下错误 Must use import to load ES Module Us
  • html5标签“Contenteditable”的css选择器[重复]

    这个问题在这里已经有答案了 如何使用 contenteditable true 的 css 选择器 div div Use a CSS 属性选择器 https developer mozilla org en docs Web CSS At
  • 为什么在使用 PowerMockRunner 运行时无法使用 @InjectMocks 字段匹配?

    我遇到了一个问题 其中字段注入与 Mockito 匹配 Mock注释为 InjectMocks在有 2 个的情况下不起作用 Mock相同类型的 我用过 Mock name name of var 语法也是如此 但仍然失败 这是被测试的类 i
  • 在行内颤动展开列

    I am trying to create this design My code Row mainAxisSize MainAxisSize max crossAxisAlignment CrossAxisAlignment start
  • 以编程方式设置android布局参数

    我是安卓新手 我想知道如何从程序中为任何布局 如绝对布局 设置布局 x 和布局 y 宽度和高度的参数或属性 对于按钮你可以尝试这样 RelativeLayout Layoutparams params RelativeLayout Layo
  • Symfony 3 - 你请求了一个不存在的服务,这让我发疯

    所以 这不是我第一次创建服务 但我只是无法解决错误 您请求了一个不存在的服务 global settings 我为确保服务正确设置而采取的步骤 My AppBundleExtension php namespace AppBundle De