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
相关产品推荐
相关产品推荐

