2009-03-07 5 views
1

Eylem kümemi şu şekilde ittiğim birkaç yanıt segmenti kullanıyorum:Zend Framework'de tüm yanıt bölümlerini nasıl alabilirim?

$userlogAction = clone($request); 
$userlogAction->setActionName('userlog')->setControllerName('index'); 
$actionStack->pushStack($userlogAction); 

Şu anki işlem için test ettiğimde şimdi:

$request = Zend_Controller_Front::getInstance()->getRequest(); 
$action = $request->getActionName(); 

Birinin adını alıyorum (rastgele?) eylem ama ben başka bir test etmek istiyorum.

Yığın üzerindeki son eylemi almak yerine, yığıntaki eylemler arasında belirli bir eylem olup olmadığını nasıl test edebilirim?

+0

O bir manyak. –

+0

Ve o çok saygısız ve kaba davranır! Çok fazla şimdi ... – markus

+0

Rich's Edits geçerli. Mantıklı olmadıklarına dair sebepleriniz varsa, onları gönderin. Aksi takdirde, kişisel olarak alma, günde yüzlerce yayın düzenler. –

cevap

2

Zend_Controller_Front::getRequest()'dan gelen istek kesinlikle rastgele değil, dağıtıcının şu anda işleme koyduğu istektir, örn. eylem denetleyicinizin eylem yönteminin çağrılmasına neden olan istek ve böylece görünüm komut dosyanızın yürütülmesine neden olan istek. Eylem yığını eklentisini kullanarak, yalnızca dağıtıcı tarafından tek tek işlemek için daha fazla istek ekleyin. Eğer eylem yığını üzerinde tüm istekleri almak istiyorsanız

doğrudan eklentisi eylem yığını sorgulamak zorunda: "MY mesajlar ZENGİN B DÜZENLEME DUR"

<?php 
$front = Zend_Controller_Front::getInstance(); 
$plugin = $front->getPlugin('Zend_Controller_Plugin_ActionStack'); 

if ($plugin) { 
    $stack = $plugin->getStack(); 

    foreach ($stack as $request) { 
     $action = $request->getActionName(); 
     // Do whatever you want with $action 
    } 
} else { 
    // Not using the action stack 
    $action = $front->getRequest()->getActionName(); 
} 
?>