Drupal 8 modülü geliştirmek

Selam. Yaklaşık 6-7 aydır Drupal 8 modülü geliştiren birisi olarak bu konu ile ilgili yeterli Türkçe kaynak olmadığını gördüm. Bu sebeple bu yazıyı hazırlamaya karar verdim. Yazıda popüler bir CMS uygulaması olan Drupal için custom module nasıl geliştirilir bundan bahsedeceğim. Anlatılacak çok fazla başlık olduğunu farkettiğimden dolayı bu konuyu bir kaç yazıya bölmeyi düşünüyorum.

Drupal Nedir?


Drupal, 2000lerin başında Belçikalı öğrenciler tarafından geliştirilmeye başlanmış ve PHP ile yazılmış açık kaynak kodlu bir içerik yönetim sistemidir. Şu anda bir çok tanınmış web sayfasının temelini oluşturmaktadır. Kullanıldığı popüler web sayfalarını incelemek için tıklayınız. Drupal içerisinde tıpkı diğer içerik yönetim sistemlerinde olduğu gibi bir modül, eklenti yönetim sistemi bulunuyor. Yüklediğiniz modüller ile web sayfanıza ekstra özellikler kazandırabiliyorsunuz.

Modül Geliştirme


Drupal 8 modülleri ana dizindeki “modules” dizininde bulunur. Core dosyasının altında da built-in gelen modülleri görebilirsiniz. Biz modülümüzü ana dizindeki modules dosyasının altında oluşturacağız. modules dizinini incelerseniz yüklediğiniz her modülün ayrı bir dizin altında olduğunu görebilirsiniz. Bu dizinin altına oluşturmak istediğimiz modülün makine ismiyle yeni bir dizin oluşturuyoruz.

Klasörü oluşturduktan sonra Drupale bu klasörde bir modül bulunduğunu söyleyip modül ile ilgili bilgiler vermeliyiz. Aksi taktirde admin/modules sayfasında modülümüzü görüntüleyemeyiz. Modülümüzün ana dizinine girip yeni bir dosya oluşturuyoruz. (Modülün ana dizini az önce /modules/ klasörü altında oluşturduğumuz “custom_module” dizinidir.)

custom_module.info.yml


Bu isimle birlikte yeni bir YAML dosyası oluşturuyoruz. İçerisine modülümüz ile ilgili bilgileri yazıyoruz. En basit haliyle aşağıdaki gibi bir dosya oluşturalım.

Yalnızca bununla sınırlı kalmayabilirsiniz. Info dosyası içerisinde modülünüzün hangi modüllere ihtiyaç duyduğunu, hangi Drupal sürümleri ile çalışabildiğini, modülün versiyonunu(boş bırakırsanız 1.0 olarak atanacaktır), Gerektirdiği PHP sürümünü yazabilirsiniz. Bu konu ile ilgili detaylı bilgi için tıklayınız.

Info dosyamızı oluşturup Drupale modülümüz hakkında bilgi verdikten sonra /admin/modules sayfası altındaki listede modülümüzü görebilmemiz gerek. Listeden modülümüzü seçtikten sonra “Install” butonuna basarak modülümüzü aktif hale getirebiliriz. Drupal hooklarını kullanabileceğimiz module dosyamızı modülümüzün ana dizininde oluşturalım.

custom_module.module


Bu dosya içerinde drupal hooklarını pata küte kullanarak basit bir modül yazabilirsiniz. Hookları kullanmadan önce hook kavramının ne olduğunu öğrenmek gerek. Hooklar, yazdığımız modülün Drupal ile etkileşime geçmesini sağlar. Örneğin sitedeki tüm formlarda yeni bir alan göstermek istersek hook_form_alter hookunu kullanabiliriz. Bu linkteki sayfadan Drupalde kullanabileceğiniz tüm hookları inceleyip açıklamalarına ulaşabilirsiniz. Örnek için biz hook_help hookunu kullanacağız.

custom_module.module dosyası içerisine aşağıdaki satırları ekleyip kaydedelim;

Drupalin sağlamış olduğu bu hook yardımıyla modülümüz için bir yardım sayfası oluşturuyoruz.

/admin/help/custom_module sayfasından hook yardımı ile oluşturduğumuz sayfayı inceleyebilirsiniz. Yazdığınız modüllerde yardım sayfası oluşturarak bu modülü kullanacak kişilere bilgiler verebilirsiniz.

Şimdilik bu iki dosya ile basit bir modül oluşturmuş olduk. Yazıyı burada tamamlıyorum. Diğer yazılarda Routing ve Form yapısından bahsedeceğim.

One thought on “Drupal 8 modülü geliştirmek

Yorum bırak Mustafa Cancel reply

Email adresiniz yayınlanmayacaktır.İşaretli alanları doldurmak zorunludur *