Possível alterar a class de ação dentro de Yii2?

É possível alterar a class de ação Yii2 usa de alguma forma, semelhante a como você pode definir a class de muitos outros componentes dentro do arquivo de configuração?

Eu quero estender essa class para que eu possa adicionar outra variável de membro a ela.

Eu acho que eu poderia apenas adicionar um dele de qualquer forma dinamicamente, mas preferiria fazê-lo de forma adequada.

Editar: Olhando para a lista de componentes principais do aplicativo, ele não está listado, então não tenha certeza se é possível?

A maneira correta de resolver esse problema é estender as classs de controle e de ação. Se você olhar para o código-fonte, yii\base\Controller possui um método createAction que, se nenhuma ação de class for encontrada, criará uma instância do InlineAction .

Uma vez que você está estendendo algum tipo de class de controlador sempre que você faz seu próprio controlador (a class MyController extends Controller ), você pode simplesmente replace o método original createAction e usar sua própria implementação da class InlineAction .

Pode ser feito com o mapa da class

 Yii::$classMap['yii\base\InlineAction'] = '@common/InlineAction.php'; 

e deve ser colocado no index.php , antes do lançamento do aplicativo.

Independentemente da sua localização, common/InlineAction.php deve ter o mesmo yii\base namespace como a class original.