ControllerInterface

ControllerInterface arayüzü CoreDB\Kernel\ControllerInterface isim uzayında yer alır.
ControllerInterface içeren BaseController sınıfı CoreDB\Kernel\BaseController isim uzayında yer alır. BaseController html olarak derlenen sayfalar için kullanılır.
BaseController'dan türeyen ServiceController sınıfı CoreDB\Kernel\ServiceController isim uzayında yer alır. ServiceController ajax servisleri ve API servisleri için cevap üretmek için kullanılır.
 
ControllerInterface üzerinde tanımlanması zorunlu metodlar ise şu şekildedir:

  • checkAccess() metodu sayfanın erişim kontrolünün yapılması içindir. Yönlendirici (Router) tarafından kontrol edilir. Eğer "false" belirtilir ise "403" erişim engellendi sayfası gösterilir.
  • processPage() metodu sayfanın çalışma yapısını kontrol eder. BaseController sınıfı ControllerInterface içeren nesneyi render ederken, ServiceController sınıfı sayfaya yapılan isteği işleyip json formatında cevap döner.
  • setTitle() metodu sayfanın başlığını atamak için kullanılır. ServiceController üzerinde bu metod kullanılmaz.
  • printMessages() metodu createMessage() metodu ile oluşturulan mesajların sayfada görüntülenmesini sağlar.
  • getTemplateFile() metodu kullanılacak olan twig dosyasının adını belirtmelidir. BaseController için varsayılan olarak "page.twig" dosyası kullanılır. ServiceController üzerinde bu metod kullanılmaz.
  • getUrl() statik metodu controller sınıfının urlsini elde etmek için kullanılır.
  • addJsFiles() metodu sayfaya urlsi belirtilen javascript dosya(sı)(ları)nı ekler. Bunlar <script></script> etiketleri ile sayfaya yazdırılır.
    Örnek kullanım: 
    $this->addJsFiles("assets/js/global.js");
     
    addMetaTag() metodu sayfaya metataglari eklemek için kullanılır.
    Örnek kullanım:
    $this->addMetaTag("charset", [
    "charset" => "utf-8"
    ]);
    addJsCode() metodu sayfaya saf javascript eklemek için kullanılır.
    Örnek kullanım:
    //Google analytics entegrasyonu
    $this->addJsCode(
     "window.dataLayer = window.dataLayer || [];
     function gtag(){dataLayer.push(arguments);}
     gtag('js', new Date());
     gtag('config', 'UA-********-*');"
    );
    addCssFiles() metodu sayfaya css dosyaları eklemek için kullanılır. Eklenen dosyalar <link rel='stylesheet'> etiketi ile sayfaya eklenir.
    $this->addCssFiles([
    "assets/css/global.css"
    ]);
    addFrontendTranslation() metodu sayfada javascrit tarafına çeviri yayınlanmasını sağlar.
    Örnek kullanım:
    $this->addFrontendTranslation("yes");