我有一個最佳實踐問題。PRG BestPractice Zf2
它清楚Post/Redirect/Get的作用,但是處理它們的最佳實踐是什麼?
我認爲有2種方法來處理它們。
1.)我們首先在控制器動作 上調用prg插件。2.)我們首先驗證發佈數據,並且只有在成功時才重定向到prg-response?
我對這個問題,在
1)我們放大,因爲重定向的響應時間,這是在默認情況下,所以我認爲不是最好的解決
2)將創建一個開銷通過每次驗證的形式
你是什麼意思是更好的解決方案這種情況?
問候
UPDATE:
我的意思是,正常(標準)的情況下是這樣的 - http://framework.zend.com/manual/2.0/en/modules/zend.mvc.plugins.html#the-post-redirect-get-plugin。
$prg = $this->prg('url');
if ($prg instanceof Response) {
return $prg;
} elseif ($prg === false) {
return new ViewModel(array(...));
}
$form->setData($prg);
這意味着,在每個表單提交重定向之後執行。 現在,我的想法是這樣的:
$prg = $this->prg();
$form = $this->getFormLogin();
$data = ($prg instanceof ResponseInterface)
? $this->getRequest()->getPost()
: $prg;
if (false !== $data) {
$form->setData($data);
if (true === $form->isValid()) {
if ($prg instanceOf ResponseInterface) {
return $prg;
}
// Make something within the loginservice or something else
}
這背後的想法是,只有重定向的PRG只有形式是有效的,以節省響應時間和其他的東西(因爲引導設置等。 )
嗨,thx爲您的答案。在這種情況下我不明白的是,「比較訪問相同資源的時間」,在我的情況下,重定向url與調用者url相同。我指的是第2點)是,我排除重定向這麼長的數據是有效的,在這兩種方法的資源調用是相同的,只有重定向將排除,關於 – user3549136 2014-09-29 14:31:48
@ user3549136,我更新了我的答案。我不明白你真的問我什麼。你能通過使用上面的loginAction()來澄清你的問題嗎? – 2014-09-30 05:18:16
我已經更新了我的問題,希望能澄清我的問題?問題是在這種情況下,僅在有效的表單上處理PRG纔有意義?問候 – user3549136 2014-09-30 23:31:51