PHP MVC: Erken Aksiyon / Kontrolörleri çıkmak nasıl?

0 Cevap php

Bir PHP MVC çerçevede, nasıl ben cleanly ve akım kontrolörü / eylem elegantly çıkış, ancak normal komut dosyası yürütülmesine devam edebilir?

Örneğin, benim çerçeve normalde bu hatlarını şöyle diyelim:

  1. Kontrolör / Eylem Haritası URL
  2. Instantiate Controller, call Action (capturing output)
    1. Şeyler yapmak
    2. Görüntüle Render
    3. Eylem yöntemin sonunda, normal çalışmasına devam
  3. İşlem çıkış gerektiğinde
  4. Tarayıcıya çıktı gönder

Şimdi, Diyelim ki bir yerde, diyelim ki, farklı bir görünüm vermek, ya da bir başlık yönlendirme yapmak için "Do Stuff" adımda "normal" yürütme durdurmak istiyorum, ve ben Eylem vücudun geri kalanı işleme durdurmak istiyorum diyelim ancak "Süreç çıktı" adıma üzerine devam

Bunu nasıl en iyi yolu elde edebilirsiniz? Benim tek fikirler:

//in controller
protected function redirect($url) {
    header("Location: $url");
    exit();
}

ama bu tamamen çerçevenin yürütme kalan atlar, ve düz kullanıcıya çıktı tamponunda ne olursa olsun döker. Bir alternatif:

//in dispatcher
call_user_func_array(array($controller,$action),$params);
afterwards:
...

//in controller
protected function redirect($url) {
    header("Location: $url");
    goto afterwards;
}

Ancak, bu başvuru oluyor etiket tamamen başka bir dosyada özellikle çünkü, bana twitch yapar ve öğrendiğim her şeye karşı gider.

Peki, bunu başarmak için başka bir yolu var mı?

Not: Biz sadece zaten başka bir sayfaya yönlendiriliyorsunuz ve çıkış umurumda değil, çünkü yönlendirme örnek muhtemelen, exit() şekilde kullanmalısınız. Ben genel bir kullanım çözüm arıyorum.

0 Cevap