- Output for 8.0.1 - 8.0.30, 8.1.0 - 8.1.29, 8.2.0 - 8.2.24, 8.3.0 - 8.3.12
- trait
<?php
interface FormStateInterface {}
class FormState implements FormStateInterface {}
class Config {}
class ConfigFormBase {
public function submitForm(array &$form, FormStateInterface $form_state) {
print "original";
}
}
trait ValidatableConfigFormTrait {
abstract protected static function mapFormValuesToConfig(FormStateInterface $form_state, Config $config): void;
public function submitForm(array &$form, FormStateInterface $form_state) {
print "trait";
}
}
class MyForm extends ConfigFormBase {
use ValidatableConfigFormTrait;
protected static function mapFormValuesToConfig(FormStateInterface $form_state, Config $config): void {
// without this, PHP will complain! 👍
}
}
$form = [];
(new MyForm())->submitForm($form, new FormState());