Alter an existing form We just starting out with Drupal 8 and very quickly we ran into our first problem. 

How should I alter an existing form in Drupal 8?

We need to alter the save method for the node form to do a redirect to an other page. We want to alter the node form to become something like a multistep form. After the user creates new content they get redirected to a new form (we created) to get some more information.

We solved our problem implementing hook_entity_type_alter().

function mymodule_entity_type_alter(&amp;$entity_info) {
  $handlers = $entity_info['node']-&gt;get('handlers');
  $handlers['form']['default'] =    'Drupal\mymodule\Form\MyExtendedNodeForm';
  $handlers['form']['edit'] = 'Drupal\mymodule\Form\MyExtendedNodeForm';
  $entity_info['node']-&gt;set('handlers', $handlers);
}


We then created a new form class that extends the node form and alter the save method.

class MyExtendedNodeForm extends NodeForm {

    public function save(array $form, FormStateInterface $form_state) {
      parent::save($form, $form_state);
      $node = $this-&gt;entity;
      $form_state-&gt;setRedirect('entity.regions.add_form', ['nid' =&gt; $node-&gt;id()]);
  }

}


This works perfectly, but is it good? If another module does the same, our code does not get executed anymore.
I had to do the exact same thing yesterday, and I am still looking for a more Drupal 8 way to do this, but haven't found it. I ended up doing it this way:

&lt;?php

/**
 * @file
 * This is my module.
 */

use Drupal\Core\Form\FormStateInterface;
use Symfony\Component\HttpFoundation\Request;

/**
 * Implements hook_form_alter().
 */
function MODULE_form_alter(array &amp;$form, FormStateInterface $form_state, $form_id) {
  if ($form_id == 'user_form') {
    $form['actions']['submit']['#submit'][] = '_MODULE_goto';
  }
}

/**
 * Make the form go to route.id.
 */
function _MODULE_goto($form, FormStateInterface $form_state) {
  $form_state-&gt;setRedirect('route.id');
}


I am still very interested in doing it a different way, my module looked so clean without the .module file :).