PHP MVC: ZendFramework adamlar yapmak gibi etkili Kontrolörü / Görünüm Derneği uygulamak için nasıl!

2 Cevap php

I am making my own PHP-MVC framework. i have a question regarding Controller and View Association. I love the way Zend framework uses view within Controller as follow:

$this->view->data = 'Data here';

bu nedenle aşağıdaki gibi görünümünde kullanılabilir:

echo $this->data;

I am wondering how can i implement this association. I want to remove codes between /** **/ and want to replace with some magic functions. My codes for controller as as follow:

 class UserController extends Controller{
  /************************************/
  public function __construct(){
   $this->view = new View();
   $this->view->setLayout( 'home' );
  }
  function __destruct(){
   $this->view->render();
  }
  /************************************/
  public function index(){
   $this->redirect('user/login');
  }
  public function login(){   
  }
  public function register(){
  }
  public function forgotPassword(){
  }
 }

Thanks and best regards, -Navi

2 Cevap

Eğer gerçekten bu uygulamak için sihirli fonksiyonları gerekmez. Sadece yapabilirsiniz:

$this->view->var1 = 'val1';

Dizideki bir isim ve değer ve mağaza alır set veya assign denilen denetleyicisi bir yöntem oluşturun. Bu dizi aracılığıyla görünümü, döngü aramak ve görünümü nesneye atamak önce:

foreach ($this->viewVars as $viewVar) {
    $this->view->$viewVar['name'] = $viewVar['val'];
}

Sihirli yöntemi __ set () ve __ get () kullanın.

protected $ _DATA = array ();

public function __set($name, $value)
{
   $this->_data[$name] = $value;
}

public function __get($name)
{
   return $this->_data[$name];
}

Set verilmeyen değerler, vb alırken Sonra hata işleme uygulamak ..