Warning: Undefined array key "HTTP_ACCEPT_LANGUAGE" in /var/www/vhosts/bilgigunlugum.net/httpdocs/index.php on line 43
bgmvc

BG MVC Model View Controller eğitim serisi yayında...

Ana sayfa > Programlama > Bgmvc > Ana denetleyici (Controller) sınıfı

Ana denetleyici (Controller) sınıfı

Denetleyici sınıfı oluşturma

core dizini altındaki Controller.php dosyası içinde tanımlanan Controller sınıfı, app/controllers dizini altındaki denetleyici dosyalarında yer alan tüm sınıfların türetildiği bir sınıftır.

C:\wamp\www\bgmvc\core\Controller.php


<?php 
namespace Core;

use Core\{View, Config, Request};

class Controller {
    private $_controller_name, $_action_name;
    public $view, $request;

    public function __construct($controller, $action) {        
		$this->_controller_name = $controller;
        $this->_action_name = $action;
        $view_path = strtolower($controller) . '/' .$action;
        $this->view = new View($view_path);
        $this->view->set_layout(Config::get('default_layout'));
        $this->request = new Request();
        $this->onConstruct();
    }

    public function onConstruct(){}
}

Controller sınıfı içinde 4 adet değişken oluşturulur:

  • $_controller_name
  • $_action_name
  • $view
  • $request

app/controllers dizini altındaki denetleyici dosyalarından herhangi birinde yer alan sınıflardan birisinden bir nesne oluşturulduğunda, oluşturulan nesnenin tanımlandığı sınıfın türetildiği Controller sınıfının __construct() fonksiyonu otomatik olarak çağrılarak, $controller_name ve $action_name değerleri parametre olarak geçirilir.

Çağrılan __construct() fonksiyonu ile:

  1. $controller_name ve $action_name değerleri Controller sınıfının sırasıyla $_controller_name ve $_action_name değişkenlerine atanır.
  2. $controller ve $action değerleriyle View sınıfından bir nesne oluşturularak, Controller sınıfı $view değişkenine atanır.
  3. Config sınıfından okunan default_layout ('default') değeri View nesnesinin set_layout() fonksiyonu ile yine View nesnesinin $_layout değişkenine atanır.
  4. Request sınıfından bir nesne oluşturularak, Controller sınıfı $request değişkenine atanır.