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

الثلج
  • 11
  • 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");
    }
}
回复
阅读 336
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏