Los FW's lo manejan a través de helpers, no son mas que clases encargadas de hacer tareas comúnes a los controllers, para mantener el DRY, un ejemplo(siguiendo tus anteriores threads):
Código PHP:
Ver originalclass DaoHelper
{
...
public function findRecordOrException($id, $dao)
{
$dao = new $dao();
}
if( ! $dao instanceof IDao) {
throw new InvalidArgumentException(/***/);
}
$record = $dao->find($id);
if(false === $record) {
throw new RecordNotFoundException();
}
return $record;
}
public function findRecordOrRedirect($id, $dao)
{/***/}
public function findRecordOrLog($id, $dao)
{/***/}
...
}
luego en el controller
Código PHP:
Ver originalpublic function updateAction()
{
$id = $this->getQuery('id');
$helper = new DaoHelper();
try {
$record = $helper->findRecordOrException((int)$id, 'UserDao');
} catch(InvalidArgumentException $e) {
//handle Exception
} catch(RecordNotFoundException $e) {
//handle Exception
}
}
Saludos.