Sto iniziando con Zend Framework 3 e ho visto un esempio sul tutorial che si presenta così:
public function addAction()
{
$form = new AlbumForm();
$form->get('submit')->setValue('Add');
$request = $this->getRequest();
if (! $request->isPost()) { // <-------------- HERE!!!!
return ['form' => $form];
}
$album = new Album();
$form->setInputFilter($album->getInputFilter());
$form->setData($request->getPost());
if (! $form->isValid()) {
return ['form' => $form];
}
$album->exchangeArray($form->getData());
$this->table->saveAlbum($album);
return $this->redirect()->toRoute('album');
}
Ora, considerando quello che Robert C. Martin dice su SRP (da wikipedia ):
A class or module should have one, and only one, reason to change.
Dal mio punto di vista, date le specifiche per le modifiche al modulo di creazione (forse ora dobbiamo caricare i dati in una casella a discesa), ciò influenzerebbe la richiesta GET. Tuttavia, date le specifiche per le modifiche al reindirizzamento (ora reindirizziamo a /index
invece che a /details
) ciò influirebbe sulla richiesta POST.
Poiché entrambi sono nello stesso metodo, questo viola l'SRP o mi manca qualcosa?
Disclaimer: vengo da Laravel, dove abbiamo 1 metodo per ogni richiesta; quindi avere un controllo come if($request->isPost) {}
è sbagliato. Ma questa è la documentazione ufficiale di Zend Framework 3, quindi forse mi manca qualcosa.