简称: GPC
采用Action方法形参方式, 读取PHP全局变量的值, 包括 $_GET, $_POST, $_COOKIE
所有形参获取的GPC值会自动使用PHP内置函数 trim 过滤, 会更新PHP全局变量的原始值
备注: 形参顺序规则 与 实参顺序规则 无先后顺序, 如果形参太多, 可以使用 Asf\Sg 来解决问题
GPC 使用帮助, 有且只有小写 $g_, $p_, $c_ 才生效, 默认采用 $g_ 方式取值
关于形参默认值说明
<?php class IndexService { public function indexAction($g_user = 'default_value') { var_dump($g_user); // default_value } }
<?php class IndexService { public function indexAction($g_user) { var_dump($g_user); // null } }
<?php use Asf\AbstractService as Service; class IndexService extends Service { public function indexAction($g_user) { // No.1 var_dump($g_user); // No.2 var_dump($this->getRequest()->getQuery()); // No.3 var_dump(Asf_Sg::$inputs); } }
$_GET, $_POST, $_COOKIE 参数获取变得很简单
<?php class IndexService { public function indexAction($g_user, $p_pass, $c_cookieid, $orderid) { var_dump($g_user, $p_pass, $c_cookieid, $oderid); } }
<?php class IndexService { public function indexAction($g_user = 'test', $p_pass = 123456, $c_cookieid = 'str', $orderid = 'mm100') { var_dump($g_user, $p_pass, $c_cookieid, $oderid); } }
Constants 文件的定义方法, 这里就不列举了
<?php use Asf\Ensure; class IndexService { public function indexAction($g_user, $p_pass, $c_cookieid, $orderid) { Ensure::notNULL($g_user, Constants::ERR_PARAMS_NAME); Ensure::notNULL($p_pass, Constants::ERR_PARAMS_PASS); Ensure::notNULL($c_cookieid, Constants::ERR_PARAMS_COOKIEID); Ensure::notNULL($orderid, Constants::ERR_PARAMS_ORDERID); var_dump($g_user, $p_pass, $c_cookieid, $oderid); } }
Asf 提供了两种解决方法
<?php use Asf\Ensure; use Asf\Sg; use Asf\AbstractService as Service; class IndexService extends Service { public function indexAction() { var_dump(Sg::$inputs); var_dump(Sg::get('get.user')); var_dump(Sg::get('post.user')); var_dump(Sg::get('cookie.user')); var_dump($this->getRequest()); } }