Drupal 8 için geliştirdiğiniz modülün bazı işlemlerinin sonuçlarını block içerisinde göstermek istiyorsanız öncelikle modülünüzün .info.yml dosyasında block'u zorunlu hale getirmelisiniz. Bunu yapmasanızda modülünuz çalışır ancak block açık olmayan bir Drupal sitelerde modülünüz hata verecek ve sistemi çalışmaz hale getirecektir. 

name: Drupart Custom Module Block
description: Drupart Custom Module Block
core: 8.x
package: DRUPART
dependencies:
- block
type: module

Modülünüz altında src/Plugin/Block dizinini ve  bu dizinin altında block_adi.php adında block işlemlerinin yapılacağı dosyayı yaratınız. 

-src
--Plugin
---Block

Daha sonra yaratmış olduğunuz dosyanızın başına namespace Drupal\modul_adi\Plugin\Block; tanımlamasını yapınız ve Block sonucunda görünmesi gereken verileri build fonksiyonu altında geri döndürünüz. block_adi.php ile bu dosyanının içerisinde bulunan class adınıda aynı adda oluşturmalısınız.

<?php
namespace Drupal\modul_adi\Plugin\Block;
use Drupal\Core\Block\BlockBase;

/**
 * Provides a 'contact' block.
 *
 * @Block(
 *   id = "block_adi",
 *   admin_label = @Translation("Custom Module Block"),
 *   category = @Translation("Custom Module Block")
 * )
 */
class block_adi extends BlockBase {
  /**
   * {@inheritdoc}
   */   
  public function build() {
    return array(
      '#type' => 'markup',
      '#markup' => "Bu Modulun Çıktısı: Drupart'a Hoşgeldin",
     );
  }
}
?>

Oluşturmuş olduğunuz block'un Block Layout'daki adını değiştirmek isterseniz @block tanımlaması altında bulunan bölümden değiştirebilirsiniz.

/**
 * Provides a 'contact' block.
 *
 * @Block(
 *   id = "block_adi _ Dosya adı ve class adıyla aynı olmalıdır.",
 *   admin_label = @Translation("Custom Module Block - Buralar Değiştirilebilir"),
 *   category = @Translation("Custom Module Block - Buralar Değiştirilebilir")
 * )
 */