You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Symfony 6.2自定义Bundle服务无法被Web项目识别求助

Symfony 6.2 + PHP 8.1下Bundle服务无法被Web项目识别的问题

我曾在Symfony 5.4环境下成功创建Bundle,用于在不同项目间共享服务和工具类,但迁移至PHP 8.1 + Symfony 6.2后,Web项目无法识别Bundle内的服务。

操作步骤

  • 创建Web项目:
    symfony new my-webapp --version="6.2.*" --webapp
    
  • 创建Bundle项目,其composer.json配置如下:
    {    
        "name": "carlospauluk/my-bundle",    
        "type": "project",    
        "license": "proprietary",    
        "require": {        
            "php": ">=8.1"    
        },    
        "require-dev": {        
            "symfony/http-kernel": "6.2.*"    
        },    
        "autoload": {        
            "psr-4": {            
                "MyBundleNamespace\\": "src/"        
            }    
        },    
        "autoload-dev": {        
            "psr-4": {            
                "MyBundleNamespace\\Tests\\": "tests/"        
            }    
        }
    }
    
  • 修改Bundle的config/services.yaml配置:
    parameters:
    services:    
        _defaults:        
            autowire: true        
            autoconfigure: true    
        MyBundleNamespace\\:        
            resource: '../src/'        
            exclude:            
                - '../src/DependencyInjection/'            
                - '../src/Entity/'            
                - '../src/Kernel.php'
    
  • 在Bundle的src/Service目录下创建NumberGeneratorService类:
    <?php
    namespace MyBundleNamespace\Service;
    class NumberGeneratorService{
        public function generate(int $max) {
            return random_int(0, $max);
        }
    }
    
  • 在Web项目的composer.json中添加本地仓库后执行composer require "carlospauluk/my-bundle @dev",但执行php bin/console debug:container MyBundleNamespace时返回:
    No services found that match "MyBundleNamespace".
    

请求排查该问题,相关代码仓库内容可参考对应项目。

内容的提问来源于stack exchange,提问作者chuckedw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 02:40:29