Fionn Posted June 18, 2019 Share Posted June 18, 2019 I am fairly new to php coding and completely new Drupal 8 coding. I am having trouble understanding some regular notation I see in passing arguments to functions. Here is an example function mymodule_form_alter(&$form, Drupal\Core\Form\FormStateInterface $form_state, $form_id) I am not sure what "Drupal\Core\Form\FormStateInterface $form_state" means. Does is mean that $form_state will be passed in from FormStateInterface? Quote Link to comment Share on other sites More sharing options...
gizmola Posted June 18, 2019 Share Posted June 18, 2019 That is "type hinting" which PHP calls "Type Declarations". It is telling PHP that when this function is called and a $form_state object is passed in, it must be an object that implements the Drupal\Core\Form\FormStateInterface. In general, Interface definitions describe a series of methods that a class must implement, so that in dependency injection situations, a class can be certain it can safely call a specific class function for an injected object (ie. an object that was passed into the class) and know that certain methods exist even though the object class is otherwise completely unknown to the wrapper class. Quote Link to comment Share on other sites More sharing options...
Fionn Posted June 18, 2019 Author Share Posted June 18, 2019 Thanks so much for the thorough explanation gizmola. This is a big help. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.