Swoft中使用Inject ,with @xxx must be define class annotation

发布于 2022-09-12 04:29:55 字数 1315 浏览 29 评论 0

  • Demo继承一个父类,然后父类中使用inject注入一个bean,这个时候会报错,
  • with @xxx must be define class annotation
  • 提示的错误信息是,使用属性注解必须有类注解,,问题是父类中应该不需要有类注解的么?不懂求解
  • 父类中怎么处理,不懂!!

DemoCommand

<?php declare(strict_types=1);

namespace App\Console\Command;

use Swoft\Console\Annotation\Mapping\Command;
use Swoft\Console\Annotation\Mapping\CommandMapping;

/**
 * @Command()
 */
class DemoCommand extends CommCommand
{
    /**
     * @CommandMapping()
     */
    public function test(): void
    {
        $this->tests();
        var_dump("test_demo");
    }
}

CommCommand

<?php declare(strict_types=1);
namespace App\Console\Command;

use App\Service\DemoService;
use Swoft\Bean\Annotation\Mapping\Inject;

class CommCommand
{
    /**
     * @Inject()
     * @var DemoService
     */
    private $d;
    public function tests() {
        $this->d->demo();
        var_dump("tests");
    }
}

DemoService

<?php declare(strict_types=1);
namespace App\Service;

use Swoft\Bean\Annotation\Mapping\Bean;

/**
 * @package App\Service
 * @Bean(name="demoservice", scope=Bean::PROTOTYPE)
 */
class DemoService {
    public function demo() {
        var_dump("demo");
    }
}

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

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

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文