Drupal 8 - tworzenie modułu podstawy
W artykule przedstawię wstęp do tworzenia modułów w Drupalu 8. Stworzymy prosty moduł tworzący drupalową stronę po stronie frontendu. Tworzenie modułów w Drupalu 8 ma parę istotnych zmian w stosunku do Drupala 7. W Drupalu 7 podstawowe moduły są umieszczane w katalogu /modules, a moduły niestandardowe i dodatkowe należy umieścić w katalogu sites/all/modules lub sites/sitename/modules. W Drupalu 8 podstawowe moduły przechodzą do katalogu /core, więc możesz umieścić swoje moduły dodatkowe i niestandardowe w katalogu /modules.
name: My Module description: My first module package: Custom type: module version: 1.0 core: 8.xWięcej o plikach info możesz przeczytać na stronie Drupala. W Drupalu 7 plik .module był obowiązkowy, teraz jest opcjonalny. W katalogu modułów musimy stworzyć podkatalog dla kontrolerów, wtyczek, formularzy, szablonów i testów. Ten podkatalog powinien nazywać się src. Pozwoli to klasie kontrolera na automatyczne ładowanie, co oznacza, że nie musisz jawnie dołączać pliku klasy. Teraz stworzymy pierwszy kontroler. Utwórz folder w src o nazwie Controller. W tym folderze utwórz plik o nazwie FirstController.php. W FirstController.php utworzymy prostą wiadomość "hello world" wyświetloną na drupalowej podstronie.
<?php
/**
 * @file
 * Contains \Drupal\my_module\Controller\FirstController.
 */
namespace Drupal\my_module\Controller;
use Drupal\Core\Controller\ControllerBase;
class FirstController extends ControllerBase {
  public function content() {
    return array(
      '#type' => 'markup',
      '#markup' => t('Hello world'),
    );
  }
}
Kontroler, który stworzyliśmy powyżej, na tym etapie nic nie zrobi. 
Musimy utworzyć routing, aby mógł zostać wykonany. Utwórz plik o nazwie my_module.routing.yml
w głównym katalogu naszego modułu o następującej treści.
my_module.content:
  path: '/hello'
  defaults:
    _controller: 'Drupal\my_module\Controller\FirstController::content'
    _title: 'Hello world'
  requirements:
    _permission: 'access content'
Włącz moduł w panelu administracyjnym. 
Jeśli teraz przejdziesz do /hello, zobaczysz komunikat Hello World.
Routing działa i zwraca zawartość z kontrolera. 
Ale aby dotrzeć do treści, musisz znać adres URL. 
Aby uczynić to bardziej użytecznym, musimy dodać go do systemu menu Drupala. Aby to zrobić, musisz utworzyć plik menu.yml.
Utwórz zatem w głównym katalogu modułu plik my_module.links.menu.yml.
my_module.admin: title: 'My module settings' description: 'A basic module to return hello world' parent: system.admin_config_development route_name: my_module.content weight: 100Wyczyść cache, a następnie powinieneś zobaczyć pozycję menu w konfiguracji -> development. Gratulacje stworzyłeś właśnie pierwszy drupalowy moduł!
