Yii: параметры для действия контроллера
В стремительно приближающемся релизе Yii 1.1.4 будет довольно приятная возможность. Теперь можно будет использовать $_GET-параметры как параметры действия контроллера.
Теперь вместо:
class PostController extends CController
{
public function actionCreate()
{
if(isset($_GET['category']))
$category=(int)$_GET['category'];
else
throw new CHttpException(404,'invalid request');
if(isset($_GET['language']))
$language=$_GET['language'];
else
$language='en';
// ... действительно полезная часть кода ...
}
}
можно будет так:
class PostController extends CController
{
/**
* Создание поста.
* @param integer $category ID категории нового поста
* @param string $language язык нового поста
*/
public function actionCreate($category, $language='en')
{
// ... действительно полезная часть кода ...
}
}
При этом, если в $_GET не оказалось указанного параметра и для параметра нет значения по умолчанию, будет выброшено исключение CHttpException.
Если в PhpDoc метода присутствуют типы параметров (поддерживаются integer` (`int`), `boolean` (`bool`), `float` (`double`) и `string`), происходит автоматическое приведение типа из $_GET к указанному.