2
Zend Framework에서 URL 입력 ($_GET
컨테이너)을 필터링하는 가장 좋은 방법은 무엇입니까?Zend Framework의 URL 입력 필터링
여기에 내 현재의 구현이다 : 나는 page
, order
및 dir
매개 변수를 취하는 indexAction
와 BookController
있습니다. 먼저이 매개 변수를 가져 와서 기본값을 _getParam()
으로 지정합니다.
각 매개 변수에 대해 특정 매개 변수의 유효성을 검사하고 필터링하는 메서드를 내 서비스 계층에 만듭니다. 입력이 유효한 경우 필터링 된 값이 반환되고, 그렇지 않으면 FALSE가 반환됩니다. 컨트롤러에서
: 서비스 층
class Service_Book
{
public function validatePageFromUrl($page)
{
$filters = array(
'page' => array(
'HtmlEntities',
'StripTags',
'StringTrim'
)
);
$validators = array(
'page' => array(
'int'
)
);
$data['page'] = $page;
$input = new Zend_Filter_Input($filters, $validators, $data);
if ($input->isValid())
{
return $input->page;
}
else
{
return FALSE;
}
}
public function validateOrderFromUrl($order)
{
$filters = array(
'order' => array(
'HtmlEntities',
'StripTags',
'StringTrim'
)
);
$validators = array(
'order' => array(
array('InArray', 'haystack' => $this->getColumnNames())
)
);
$data['order'] = $order;
$input = new Zend_Filter_Input($filters, $validators, $data);
if ($input->isValid())
{
return $input->order;
}
else
{
return FALSE;
}
}
public function validateDirFromUrl($dir)
{
$filters = array(
'dir' => array(
'HtmlEntities',
'StripTags',
'StringTrim'
)
);
$validators = array(
'dir' => array(
array('InArray', 'haystack' => array('asc', 'desc'))
)
);
$data['dir'] = $dir;
$input = new Zend_Filter_Input($filters, $validators, $data);
if ($input->isValid())
{
return $input->dir;
}
else
{
return FALSE;
}
}
}
"귀하의 코드는 조금 어렵습니다"는 의미는 무엇입니까? –