Is your feature request related to a problem? Please describe.
If I want to redeclare a Kafka pool in a consumer, I can only do it in an annotation, it doesn't work in an abstract class.
#[Consumer]
class FooKafkaConsumer extends AbstractConsumer
{
public string $pool = 'foo'; // Didn't work, pool is 'default', came from Consumer annotation
public function consume(ConsumeMessage $message): ?string {return null;}
}
#[Consumer(pool: 'foo')] // Will work, pool is 'foo'
class FooKafkaConsumer extends AbstractConsumer
{
public function consume(ConsumeMessage $message): ?string {return null;}
}
Describe the solution you'd like
Make Hyperf\Kafka\Annotation\Consumer::$pool empty by default and then
#[Consumer]
class FooKafkaConsumer extends AbstractConsumer
{
public string $pool = 'foo'; // Will work, pool is 'foo'
public function consume(ConsumeMessage $message): ?string {return null;}
}
#[Consumer(pool: 'foo')] // Will work, pool is 'foo'
class FooKafkaConsumer extends AbstractConsumer
{
public function consume(ConsumeMessage $message): ?string {return null;}
}
Additional context
#7547