Routing: O hook_menu do Drupal 8.

No Drupal 8, o hook_menu deixou de existir e deu lugar ao "Routing".

Neste tutorial, vou mostrar como é simples criar uma página utilizando Routing no Drupal 8.

No exemplo abaixo, temos um módulo contendo dois exemplos de url: uma simples e outra recebendo parâmetros.

Estrutura do módulo:

Dentro de "myexample.info.yml", contém apenas as informações do módulo:

name: Myexample
type: module
description: 'My Example'
package: Core

version: '8.0.0'
core: '8.x'
project: 'drupal'

No arquivo "myexample.routing.yml", eu informo a URL, seu Controller, o título da página e sua regra de acesso.

myexample.render:
  path: '/myurl'
  defaults:
    _controller: '\Drupal\myexample\Controller\MyExampleController::myexampleRender'
    _title: 'My Example'
  requirements:
    _permission: 'access content'

myexampleparameters.render:
  path: '/myurl/{arg}/{arg2}'
  defaults:
    _controller: '\Drupal\myexample\Controller\MyExampleController::parametersRender'
    _title: 'My Example with parameters'
  requirements:
    _permission: 'access content'

Por fim, no arquivo "MyExampleController.php", implemente o retorno de cada URL:

<?php

/**
 * @file
 * Contains \Drupal\myexample\Controller\MyExampleController.
 */

namespace Drupal\myexample\Controller;

/**
 * Controller routines for Myexample routes.
 */
class MyExampleController {

	public function myexampleRender() {
  	$build = array( '#markup' => t("<p>My example with simple URL</p>"));
  	return $build;
  }

  public function parametersRender($arg, $arg2) {
  	$build = array( '#markup' => t("<p>My example with parameters URL: $arg and $arg2</p>"));
  	return $build;
  }
}


Veja aqui mais detalhes a respeito de Routing no Drupal 8.